为什么_integrate_forces不起作用RigidBody2D的重力比例设置为0?

时间:2017-07-18 19:44:34

标签: godot

我正在尝试拖放RigidBody2D,但是我注意到如果我设置Gravity Scale = 0并且如果我将Gravity Scale设置为0.5,那么我的代码根本不起作用,但是如果我拖动它则可以工作并停止移动鼠标一秒钟,它会卡在它的位置,好像我把重力比例设置为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

最后我想要的是能够垂直或水平地拖放刚体,而不是两者都是对角线。

1 个答案:

答案 0 :(得分:1)

您必须在RigidBody2D的属性下进入可视化编辑器,并将第一个属性设置为"模式:字符"。 你运作" _integrate_forces"在" Mode:Rigid"中不会一直调用。当它停止时,发动机停止调用它。但它始终在" Mode:Character"中被调用。这将解决您的问题。