我正在学习戈多游戏引擎,我试图制作一个可以行走但不能穿过其他物体的球,但是球会继续穿过其他物体。
以下是代码:
extends KinematicBody2D
export var viteza = 140
func _ready():
set_fixed_process(true)
func _fixed_process(delta):
delta *= 5
var motion = Vector2()
if Input.is_key_pressed(KEY_UP):
motion[0] = 0
motion[1] = -1
if Input.is_key_pressed(KEY_DOWN):
motion[0] = 0
motion[1] = 1
if Input.is_key_pressed(KEY_LEFT):
motion[0] = -1
motion[1] = 0
if Input.is_key_pressed(KEY_RIGHT):
motion[0] = 1
motion[1] = 0
motion = motion * viteza * delta
set_pos(get_pos() + motion)
场景(图片): Scene
有什么问题?
答案 0 :(得分:3)
切勿在KinematicBody2D中使用set_pos()。你需要使用move()。