Construct2 初學入門教程!

1

Index

Tagged

Contributors

Stats

131,179 visits, 168,441 views

Tools

Translations

License

This tutorial is licensed under CC BY 4.0. Please refer to the license text if you wish to reuse, share or remix the content contained within this tutorial.

Published on 6 Feb, 2016. Last updated 25 Feb, 2019

添加遊戲功能

通過上邊的學習,我們已經學會了添加事件,教程到這,已經很長了,我們會發現教程看起來很囉嗦,太細,做起來一下子就完了,所以接下來我們稍微簡化下。記住添加條件或動作的步驟如下:

1、按兩下添加新事件,點擊Add action連結添加一個動作。

2、在對話方塊中按兩下要添加條件/動作的物件

3、選取要添加的條件/動作

4、如果有需要的話,輸入參數

接下來教程中以下面的格式來表述:

Add condition System -> Every tick

Add action Player -> Set angle towards position -> X: Mouse.X,Y: Mouse.Y

讓角色可以射擊

當玩家點擊的時候,可以發射子彈。這可以通過Spawn an object動作來實現,該動作在同樣的位置和角度(相對於角色)創建新的物件實例。子彈的Bullet movement屬性將會使它向前飛出。製作如下事件:

條件:Mouse->On click->Left clicked(the default) //滑鼠->點擊->左擊(默認)

動作:Player->Spawn another object->For Object,choose the Bullet //Play物件->產生另外的物件->物件,選擇子彈層,輸入1(“Main”圖層),Image point(子彈的發射起點)保持默認為0。如下:

如果你運行遊戲,你將看到子彈從角色圖片的中心發出,並不是從槍口發出。我們來修改下,在工程或物件面板中右擊player物件選擇Edit animations編輯動畫。

在彈出的圖片編輯器中,選擇Set origin and image points工具

看到image points對話方塊,物件的原點以紅點顯示

這是物件的原點(如果你旋轉物件,將繞著這個點),點擊綠色的+號按鈕添加一個點,該點以藍點顯示。我們在角色圖片槍口位置處左擊,將該點放置於槍口位置:

關閉圖片編輯器,按兩下事件表中早前添加的Spawn an object動作,更改Image point為1.在面板中可以看到序號的,默認的原點為0,其他添加的一次1,2。。。等。如下:

運行遊戲。此時子彈已經修改為從槍口發射。此時,子彈沒有做其他任何事。接下來我們來添加碰撞事件,用來消滅敵人。

添加事件如下:

條件:Bullet->On collision with another object->pick Monster。 //子彈->於其他物件碰撞->選擇Monster怪物。

動作:Monster->Destroy //怪物->消滅

動作:Bullet->Spawn another object->Explosion,layer 1 //在圖層1 碰撞的位置產生新物件-爆炸特效

動作:Bullet->Destroy //子彈銷毀

爆炸特效

運行遊戲,嘗試射擊一個怪物,我們可以看到碰撞發生,爆炸特效也產生了,杯具的是,有個大大的黑色邊框,好難看!

不用擔心,我們可以去掉黑框,在工程面板或者物件面板點擊Explosion object爆炸特效物件。在它的屬性面板裡設置Effect屬性為Additive(疊加,玩過PS的知道,黑色顏色值為0,疊加後就不起作用,就看不到了,具體的去百度下吧)。再次嘗試遊戲可以看到,完美了

讓怪物聰明一點

(添加怪物智慧AI,專業說法,囧,本例可沒那麼高深)

當下怪物只會向右移動。我們來讓他們更有趣些。首先讓他們產生在隨機的位置。

條件:System->On start of Layout //系統->畫布啟動時

動作:Monster->Set angle->random(360) //怪物->設置角度->0-360隨機度數

Condition: System -> On start of Layout

Action: Monster -> Set angle -> random(360)

此時,怪物依然移出畫布,再也看不到,接著我們再來修改,讓怪物移動邊緣處的時候,自動往回移動,並且添加智慧,讓怪物朝著玩家角色移動(自然是角色沒掛的時候)。

條件:Monster->Is outside layout //判斷怪物是否要離開畫布

動作:Monster->Set angle toward position->For X,Player.X - for Y,Player.Y //設置怪物朝向角色的座標

再次運行遊戲。此時你可以看到怪物在畫布裡朝著不同的方向移來移去,最終都會朝著角色圍過來。這個智慧的行為咱們不程式設計看不到代碼(就算程式設計也太難,囧,要不也不找這軟體了哈),將就著看吧,似乎不錯了!

此我們的角色還是無敵的,怪物卻是太脆落了,子彈一碰就掛了,接著我們通過instance variables執行個體變數來修改這些。

  • 0 Comments

Want to leave a comment? Login or Register an account!