2017-07-18 4 views
0

RigidBody2Dをドラッグ&ドロップしようとしていますが、Gravity Scale = 0に設定してもコードがまったく機能しないことがわかりました。また、Gravity Scaleを0.5に設定すると、私がしようとしています何秒間マウスを動かす停止し、私は最終的には0なぜ_integrate_forcesが動作しないのですか?RigidBody2Dには重力スケールが0に設定されていますか?

extends RigidBody2D 

var is_held = false 
func _ready(): 
    set_process_input(true) 

func _integrate_forces(state): 
    i = i + 1 
    var lv = state.get_linear_velocity() 

    if is_held: 
     lv = (get_viewport().get_mouse_pos() - get_pos()) * 16 

    state.set_linear_velocity(lv) 

func _input(event): 
    if event.type == InputEvent.MOUSE_BUTTON and not event.pressed and event.button_index == BUTTON_LEFT: 
     is_held = false 

func _on_food_input_event(viewport, event, shape_idx): 
    if event.type == InputEvent.MOUSE_BUTTON and event.pressed and event.button_index == BUTTON_LEFT: 
     is_held = true 

に重力のスケールを設定しなかったかのように、それはその場所に立ち往生して剛体をドラッグ&ドロップすることができることです垂直または水平のいずれかであり、両方でも斜めでもない。

答えて

0

RigidBody2Dのプロパティでビジュアルエディタを開き、最初のプロパティを "Mode:Character"に設定する必要があります。 関数 "_integrate_forces"は、 "Mode:Rigid"では常に呼び出されません。停止すると、エンジンが停止して呼び出されます。しかし、それは常に "Mode:Character"で呼び出されます。それがあなたの問題を解決します。

関連する問題