第一個(gè)GoDot游戲,方塊碰撞
弄了動(dòng)畫以后,就當(dāng)然得開始交互了。 涉及的內(nèi)容一下子多了起來。

讀取玩家輸入(非IO)
作為游戲 自然要接受鼠標(biāo)鍵盤什么的輸入,官方教材是讓我們使用 process 來處理。
這樣做 會導(dǎo)致每一幀都嘗試去處理業(yè)務(wù),由于玩家的輸入是復(fù)雜的,所以你得做大量判斷,玩家是前進(jìn)還是后退,有沒有開槍什么的,甚至還要判斷是否有組合鍵。
我很奇怪為什么要這樣做,似乎有點(diǎn)浪費(fèi)資源
這是一個(gè)非常簡單的演示,讓玩家可以自己控制 上下兩個(gè)方向,同時(shí)防止滑出邊界

游戲內(nèi)的OBJ 之間的交互
這次只做一個(gè)非常簡單的碰撞檢測,剛才做的那個(gè)小方塊,會自動(dòng)前進(jìn)不受控制,我們只能控制上下,然后嘗試讓它去撞另外一個(gè)方塊,撞到了 就給你計(jì)分。
游戲教程 讓我們先new一個(gè) Area2D 的類,說只有這個(gè)類才能判斷 區(qū)域進(jìn)入事件 、區(qū)域離開事件。然后在下面new一個(gè)形狀 來聲明它的面積,當(dāng)然 游戲嘛。。。我還得給它弄上畫面,最后是這樣的

區(qū)域--形狀--畫面--動(dòng)畫設(shè)計(jì),其中動(dòng)畫設(shè)計(jì) 估計(jì)是不需要放里面的 也許可以全部動(dòng)畫都統(tǒng)一集中來管理? 不過無所謂了 這樣也很好的體現(xiàn)他們的關(guān)系
然后,游戲要我們new其他的物件,就是能夠撞我們的東西,稱之為 RigidBody2D
這個(gè)東西挺有趣的,你可以理解為真實(shí)物件,但引擎只會視為剛體來計(jì)算,不知道有沒有流體可以玩??
同時(shí)自帶重力系統(tǒng),很多手機(jī)上的模擬重力和碰撞的游戲 都可以做了。
然后碰撞事件也很簡單,只需要在對應(yīng)事件 on body enter 里面綁定我們的Func即可


我們可以看見, 引擎是有消息機(jī)制的,我們定義了一個(gè) Hit 事件,并且在撞擊后,將其Fire出去,讓其他控件來接收。就剛才說的,我不理解為什么要用 process 來處理,而不用消息機(jī)制來處理玩家的操作輸入。
游戲非常簡單 我就不發(fā)布了? 簡單來說就是控制一個(gè)方塊 去撞 另外一個(gè)會亂飛方塊 然后給你打分

我的目標(biāo)是做3D FPS,下次開始從3D場景試試看。
哦 對了 我是完全自學(xué)的,官網(wǎng)上有手冊可以下載,應(yīng)該沒有中文版,其中會附帶一些例子,學(xué)得有點(diǎn)慢,畢竟已經(jīng)不當(dāng)程序員很多年了。。。嘿嘿嘿