我正在尝试拖放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
最后我想要的是能够垂直或水平地拖放刚体,而不是两者都是对角线。
答案 0 :(得分:1)
您必须在RigidBody2D的属性下进入可视化编辑器,并将第一个属性设置为"模式:字符"。 你运作" _integrate_forces"在" Mode:Rigid"中不会一直调用。当它停止时,发动机停止调用它。但它始终在" Mode:Character"中被调用。这将解决您的问题。