godot 像素平臺(tái)游戲4 signal-1
????無(wú)論是unreal還是cocos還是unity,都沒(méi)好好的解釋signal這個(gè)概念。除了unreal的藍(lán)圖非常清晰的解釋了signal之間的概念,畢竟都連連看,指向誰(shuí),要干啥,都一目了然了。
????godot的signal的設(shè)計(jì)理念突出兩個(gè)詞:簡(jiǎn)單+直接。
? ? 一、創(chuàng)建一個(gè)area2D
????1、創(chuàng)建貼圖和碰撞體

????再次強(qiáng)調(diào),area是godot為了方便管理才這么說(shuō)的,然而area在碰撞引擎里面只是一個(gè)類型,確實(shí)是一個(gè)超前的理念。
????2、導(dǎo)入圖片,并調(diào)整碰撞礦大小
????

????3、創(chuàng)建一個(gè)腳本
????

????什么都不寫(xiě)
二、鏈接信號(hào)
????1、鏈接信號(hào)

????鏈接好后,會(huì)自動(dòng)增加 _on_body_enterd的函數(shù)
????2、修改代碼

????3、拖入world.tscn

????4、運(yùn)行
????

?三、更多操作
????1、給角色添加一個(gè)var Hp = 4

????2、碰撞godot頭后,角色hp-1,然后顯示出來(lái),godot頭隱藏

運(yùn)行


總結(jié)
signal就是一個(gè)很簡(jiǎn)單的觸發(fā)器。
他的本質(zhì)就是在_on_body_entered后運(yùn)行一些數(shù)據(jù)。
如果是把hide()改為release(),gogot的頭基本上就是一個(gè)扣血道具,當(dāng)然也可以+1。
當(dāng)然不推薦直接操作數(shù)據(jù),最好給player添加一個(gè)
add_HP(int need_add){
????hp+=need_add;
????hp.max(6);
}
這樣操作數(shù)據(jù),避免很多bug。