不過這套引擎,並不是只能作這樣類型的遊戲,以下教程,我們將換換口味,用CitrusEngine來製作一個直式捲軸設計遊戲(老玩家都知道的1943),透過實作這個遊戲,讓你更理解如何自己定義遊戲中的元件。
首先準備一下素材,筆者在網路上找這了這張圖片XD
處理一下,拿來當範例使用(建議你可以自己準備,因為我不會畫圖,只好拿人家的圖來玩..)
這次我們順便來試試CitrusEngine在行動裝置上效能如何,用你的FlashDevelop打開一個AIR Mobile AS3 APP專案。(我是用FlashDevelop4.4.2)
開好之後先輸出一次,有打開一個空白的模擬器畫面,確認工作無誤。
一開始開發,我們先在模擬器上作測試,等到有一個成果,再試著發佈到行動裝置上..
首先得去下載我們需要的CitrusEngine SWC,到CitrusEngine官網的下載頁,這次我們不需要用到Box2D,所以下載Citrus + Starling + Feathers就行了。
下載好了之後,放到你的專案裡,並記得把它Add to Library。
接下來改一下Main.as
package { import citrus.core.starling.StarlingCitrusEngine; import flash.desktop.NativeApplication; import flash.events.Event; import flash.display.Sprite; import flash.display.StageAlign; import flash.display.StageScaleMode; import flash.geom.Rectangle; import flash.ui.Multitouch; import flash.ui.MultitouchInputMode; /** * ... * @author Cain */ public class Main extends StarlingCitrusEngine { public function Main():void { stage.scaleMode = StageScaleMode.NO_SCALE; stage.align = StageAlign.TOP_LEFT; stage.addEventListener(Event.DEACTIVATE, deactivate); // touch or gesture? Multitouch.inputMode = MultitouchInputMode.TOUCH_POINT; // entry point setUpStarling(true, 1, new Rectangle(0, 0, stage.fullScreenWidth, stage.fullScreenHeight)); state = new MainStarlingState(); // new to AIR? please read *carefully* the readme.txt files! } private function deactivate(e:Event):void { // make sure the app behaves well (or exits) when in background NativeApplication.nativeApplication.exit(); } } }打開手機專案,實際上,FlashDevelop已經幫你加上一些可能必要的程式碼,所以我們也只要稍加修改就可以讓它支援CitrusEngine。
首先把Main改成繼承StarlingCitrusEngine (17行)。
然後啟動Starling(30行),考慮手機上的效能,最好還是使用Starling,第一個參數先設成true,把效能顯示打開,第3個參數場景大小,由於各行動裝置上的解析度不一,所以這裡直接抓整個螢幕大小stage.fullScreenWidth, stage.fullScreenHeight。
(31行)我們設定一個場景state,這個Class等等作,先打上...
(38行)的NativeApplication.nativeApplication.exit();註解先取消,我們希望這個遊戲退出前景時就關起來。(關於這裡,你可以自己選擇,如果你不希望接個電話就關閉,你可以先註解起來)
再來我們new一個舞台場景MainStarlingState
package { import citrus.core.starling.StarlingState; /** * ... * @author Cain */ public class MainStarlingState extends StarlingState { public function MainStarlingState() { super(); } override public function initialize () : void { super.initialize(); //以下開始寫吧... } } }場景很單純,這個MainStarlingState繼承StarlingState,然後複寫它的 initialize(),初始化後你就可以開始快樂的開發行動裝置遊戲了。
如果你真的懶得自己作,可以下載我寫好的專案..
Flash遊戲引擎 CitrusEngine (八) 開始你的第一個行動APP遊戲吧 - 試著製作一個CitrusEngine角色元件
沒有留言:
張貼留言