添加行為
Behaviors類似于flash中的行為(動作),是預先封裝的功能函數。例如,我們添加一個Platform行為給一個物件,添加Solid行為給地板,遊戲運行時,該物件就可以象platformer遊戲(例如:超級瑪麗)中的角色一樣跳來跳去。你也可以通過事件來達到同樣的效果,但是這需要較長的時間,而且該預置的行為已經很好。
Construct2具有以下行為:
8 Direction movement: 這個行為可以讓你實現給角色添加方向移動(方向鍵)的功能。
Bullet movement:這個行為讓物件朝著它當前的角度移動,比如,本例中玩家射出的子彈的移動行為,不要被這名字迷惑了,它不只適用於子彈,也可以應用於怪物等移動。在Contruct2裡所有的移動行為都是通過添加速度向前行進。
Scroll to:這個行為可以讓運行時畫布隨著物件移來移去(滾動)。這個行為很適合於角色。
Bound to layout:這個行為可以防止物件離開畫布區域。這個行為對於角色來說也很重要。
Destroy outside layout:當物件離開畫布區域時,就將其銷毀。比如本例中的子彈,如果不銷毀的話,雖然子彈離開畫布區域了,但是依然暫用記憶體。所以我們需要及時銷毀不再需要的物件。
Fade:這個行為可以給物件添加淡出效果,用於爆炸等特效的消失。
接下來我們就來給物件添加相應的行為。
如何增加行為
我們給角色player添加8 direction movement行為:選中player,在properties bar屬性面板裡,找到Behaviors分類,點擊Add/Edit彈出Behaviors行為對話方塊。
在對話方塊中,點擊綠色+號-添加行為圖示,在彈出的“Add behavior”對話方塊中按兩下8 direction movement。
接著以同樣的方法給player添加Scroll To和Bound to layout行為,此時"player:Behaviors"對話方塊如下:
關閉行為對話方塊。點擊運行查看遊戲!此時我們已經可以移動角色,螢幕也跟隨角色移動,而且通過設置Bound to layout行為後,角色也不能移出畫布區域。
希望你安裝了相容HTML5的外掛程式,另外,請確保你是使用最新版的火狐,Chrome,或是 Ie9。一旦你的遊戲運行後,請確保你可以用方向鍵移動玩家,而且銀幕會隨著玩家移動! 而且你不能使玩家走出畫布。
添加其他行為
我們以同樣的方法給其他物件添加相應的行為如下:
-給Bullet對象添加Bullet movement和Destroy outside layout行為。
-給Monster對象添加Bullet movement行為。
-給Explosion對象添加Fade行為。Fade行為預設會銷毀物件,所以不用擔心物件有沒有銷毀。
此時,我們再運行查看遊戲,會發現怪物一下子就飛出去了。我們來編輯下怪物的行為,選中Monster怪物對象。看到properties bar屬性面板中,我們會發現屬性欄裡多出了其他一些屬性,這些屬性是添加了行為後才有的。
更改speed速度為80(單位:圖元/秒)
同樣的方法給Bullet子彈物件的速度更改為400,Explosion對象的Fade行為的Fade out time淡出時間為0.5秒。
添加更多怪物
按住CTRL,拖拽Monster物件複製幾個實例。他們都是Monster對象類型的。
物件類型可認為是物件的類(學過程式設計的知道,沒學也沒事)。在事件系統中,我們主要處理的就是物件類型。例如:你創建了一個Bullet collides with Monster事件,將會檢測子彈與所有基於Monster物件類型的實例的碰撞,而不需要單獨為每個怪物添加碰撞事件。通過Sprites(精靈/元件),一個物件類型的實例將共用同一個圖片(紋理材質)。這樣遊戲在載入的時候只需載入一次該圖片即可。我們在以後的課程中再深入物件類型和實例。目前,就可以認為不同類型的敵人是不同類型的物件類型。遊戲中運行時創建的怪物物件都是相應物件類型的實例。(學過程式設計的都知道,本不想翻譯這段話的,想想還是翻了,不必太糾結這個)
使用Ctrl +拖拽 創建7到8個新的怪物實例(為了區分下,往下我們用實例來表述)。放置怪物的時候不要太靠近玩家。否則角色一下子就掛了!此時你的畫布類似如下:
接下來我們將通過Construct2的視覺化程式設計——事件系統,添加自訂功能函數。