2016-12-28 62 views
4

我在擺弄Godot-Engine並嘗試了一個小遊戲。Godot發動機與KinematicBody碰撞不起作用

但我似乎無法得到有關碰撞的信息。

if is_colliding(): 
    print ("Collision with " + get_collider()) 
    get_node("Sprite").set_texture(walk_cycle_right_1) 
    move_state_right = 1 
    set_pos(Vector2(get_pos().x -10, get_pos().y)) 

它總是打印錯誤。我正在使用set_pos命令將我的角色(KinematicBody2d - >Sprite/CollisionShape2d)移動。

回答

2

對於運動體,您需要使用move或move_to觸發碰撞。 如果您確實需要使用set_pos,請檢查collisionshape2d.shape並自己執行碰撞檢查。

有在引入KinematicBody2D運動和collisiong處理上戈多文檔的例子:http://docs.godotengine.org/en/stable/tutorials/2d/kinematic_character_2d.html

爲KinematicBody2D類的完整定義可也是在戈多文件: http://docs.godotengine.org/en/stable/classes/class_kinematicbody2d.html?highlight=KinematicBody2D

+0

確定。謝謝;-) – Linuxer4Fun

+0

我用set_pos使衝擊波進入360方向。但是我怎麼用move()來實現呢? – Linuxer4Fun

+0

@ Linuxer4Fun你應該接受答案並提出另一個問題。不要在評論中提出不同的問題。 – sm4