godot 案例解析 Twin Stick 2D Shoot Em Up -1

大致了解godot的操作后,就直接上案例把,完整的框架別人已經搭好了。
直接看main scene

????很直觀的,類吸血鬼幸存者的游戲,需要手動設計。
????大致分四部分
? ??1、UI
????2、main_character
????3、粉色方框的敵人生存區(qū)域
????4、碰撞墻體

? ? 一、UI? ??
????????直接看main_scene的代碼

????????很正常的初始化與顯示。有一個中間event展示不知道干嘛。
? ?二、character
????

大概分為五部分:
????1、碰撞體
????2、貼圖
????3、開火
????4、移動
????5、死亡
????①、碰撞體
如上圖,就是一個球形碰撞體,但是gun部分不碰撞。
????②、貼圖
如上圖,一個蛋,一根黑棍子
????③、開火
1、 如果火力全開,雙倍射速,持續(xù)10秒

2、如果shoot返回不為0,切計時器跑馬大于充能時間:
就bullet.instantiate()實例化一個子彈
把子彈加入到main_scene中,和character為姊妹關系
獲取bulletspawn的世界坐標(槍口的那個十字架)
設置bullet的direction(移動方向)為鼠標和他自己之間的向量方向(area_direction為bullet的自己的變量)
相機設置位移,其中位移是隨機-4~4的float的2D區(qū)間

? ?這兩種方法任選,不能var Bullet,必須說明它是scene,個人推薦@export,然后可以在操作界面中修改。

?④、移動


看向鼠標,調整自己的rotation,當然也可以
set_rotation(global mouse-global self ).normalize()


????
????⑤、死亡


就算把死亡刪了也沒關系。
????總結character:作者為了演示一些操作,真的是煞費苦心。
三、生成區(qū)域
????①、銀幣生成和大力丸生成

????②、生成敵人

tips:get node("animationplayer").play("spawn")并不是下面的function spawn()。
而是

????總結:animationplayer比unreal的差太遠太遠了。有總比沒有好一丁點吧。
四、墻體

????就碰撞體+貼圖
總結:毫無懸念的沒有難度,不過add_sibling和call_deferred需要注意下