執行個體變數
Instance variables執行個體變數允許每個怪物存儲它自身的生命值。一個變數簡化了說就是一個可以改變的值。他們單獨存儲,分別帶他們相應的實例。
我們來為怪物添加health執行個體變數。在工程或物件面板選擇怪物monster(注意monster的意思就是怪物,本教程翻譯的時候好多地方都是這樣注釋的,因為實際製作中我們是用英文的)。亦或,在畫布中選取monster怪物物件。這樣屬性面板呈現的是怪物的相關屬性。在properties bar屬性面板的Instance variables分類下點擊Add/edit:
彈出執行個體變數對話方塊,類似於早前的行為對話方塊。本對話方塊允許你為對象添加或修改執行個體變數。點擊綠色+號按鈕來添加新變數。
在彈出的對話方塊中輸入變數名health,保持類型為Number(數字型),設置Initial value初始值為5。這使怪物擁有5個生命值。當他們被子彈射到時,生命值減1,直到為0,被消滅。
當我們點擊OK確定。變數就出現在執行個體變數對話方塊中以及屬性面板中,可以通過Add/Edit連結修改。
更改事件
切換到事件表(event sheet記得英文哦,教程中有些地方就寫中文了,軟體還是英文的,軟體是可以漢化,但是太費時間,等心情好再說)中,我們來更改怪物被消滅的事件。
找到事件Bullet-on collision with Monster.現在的動作是destroy monster,右擊該動作,選擇Replace。
彈出的對話方塊和新建動作的對話方塊一樣,選擇Monster->Subtract from(in the Instance variables catrgory)->Instance variable "health",並輸入值1。點擊Done確定。該動作呈現如下:
現在我們射擊怪物時,當子彈碰到怪物,怪物生命值減1,子彈爆炸消失,但我們得添加一個事件來檢測怪物的生命為0時,讓它消滅。添加如下事件:
條件:Monster->Compare instance variable->Health,Less or equal,0 //校對執行個體變數值是否<=0 不要用=0,連射可導致怪物生命值負數。
動作:Monster->Spawn another object->Explosion,layer1 //產生爆炸效果,你可以替換成怪物掛掉的效果
動作:Monster->Destroy //怪物消滅
運行遊戲,嘗試射擊
顯示分數並存檔
我們來添加分數顯示功能,讓玩家知道獵取了多少怪物,獲得了多少分數。我們需要另外一個變數,但此時我們熬添加一個全域變數global variable。假設我們的遊戲有好幾關,全域變數就可以累積分數。全域變數適用於整個遊戲,只有一個之存儲著。
右擊事件表底部,並選擇Add global variable。
輸入分數變數名Score。其他欄位默認即可,點擊OK確定。變數將從0開始計數。starting at 0.
現在全域變數呈現在事件表中:
注意:local variable區域變數限制於自身所在事件的作用範圍,現在我們不用考慮這個,本例不用。其實很多東西都是參考程式裡的,不過無所謂了,無視吧!
接著我們來添加動作,在Monster:health less or equal 0事件裡添加動作System->Add to(under Global & local variables)->Score,value 1.如下:
現在玩家就擁有分數了,每當怪物被殺掉,就可以增加1分,但現在我們運行遊戲依然看不到分數,我們需要一個文本物件。