2016/03/15

FireMonkey 學習日記06 --【骰子搖搖樂實作】(中)

繼上回一時衝動,決定自己要寫 App 之後,就要來動手了!

首先,必須先去 Embarcader 官網,下載最新試用版的 Delphi,而且還要申請一個新的帳號,目前一個帳號可以試用30 天,每個版本都以一次為先。

對目前的我來說,我只想快點玩遊戲,什麼30天,3天都嫌久了!

究竟,Delphi 是否可以完成這不可能的任務呢?


3 天熟成 App!



在下載的過程中,一些前置工作是一定要做的,首先,


















要先許願 (認真)  圖片來源:巴士單機遊戲


看到這裡,你可能以為我在騙人,可是我認真的跟你說,寫程式不是目的,目的在於背後的那個動機,你的動機越強大,成果就會越快達到!


骰子嘛,總是要有個很像真實骰子的照片為基礎,玩起來才會有感覺。

可是找了半天,沒有找到可以使用的圖片。


最後,我決定自己畫,但要怎麼樣才能畫出來呢?

是不是可以「臨摩」大師級的方法?一個優雅的語言背後,肯定是有堅實的大師們在支撐著這塊語言市場。

果不其然,很幸運的,我找到前人留下來的程式碼:23 Beginner's Programs - DrawDice: draws random dice images.


原來使用 Canvas 就可以畫出來,真是太棒了!

只是,在這邊,有個關鍵的問題,來源程式碼是基於 VCL Framework,但現在要改寫在行動平台上,就必須使用 FireMonkey Framework,這裡有個本質上的差異:

VCL Canvas 是一種畫布上的畫筆,只能在 TBitBmp 下工作的物件。
FireMonkey Canvas 則是任何地方都可以畫。


在改寫的過程中,只有幾處須知:

VCL / FireMonkey
Canvas.Pen / Canvas.Stroke or Canvas.Draw
Canvas.Brush / Canvas.Fill


改寫起來相當的訊速,改寫前後的程式碼如下圖:
VCL 原始資料

改寫成 FireMonkey 版本
改寫上我大概花了 3 小時的時間,還蠻久的,但看到成果後,嗯……這一切都是值得的!

先看看在 Windows 下 Debug 的結果吧!
主畫面

設定好骰子數

進入搖骰子畫面

按下 Play,搖出骰子


沒錯,如你所見,就是這麼簡單,使用Delphi,很快就可以寫出一支像樣的程式,而且絕對沒有雜七雜八的內容物。


是不是有激起你的程式魂呢!


想看看 Android 的執行結果?快來下載做好的 APK 吧!Dice for Android





但,事情還沒結束,原因在於「太不像」實體遊戲了,至少要有「搖」的感覺吧!


果然小朋友玩了兩下後,就不想玩了,看來還是得加上搖搖搖的手感才行。

至於如何寫?我們下回再續 ^_____^

~To be continued~

沒有留言:

張貼留言

How to use URLEncode in Delphi

URL編碼,也稱【百分號編碼(Percent-encoding)】 由於 URL 不能直接接受 UTF8 文字,所以要先轉成百分號編碼後,如此網址才能順利送給 HTTP Server 從 Indy 加入 Delphi 後,就可以用 IdURI.TIdURI 單元進行編碼 ...