2

我正在学习 Godot 游戏引擎,我试图制作一个可以行走但不能穿过其他物体的球,但球会继续穿过其他物体。

这是代码:

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)

场景(图片): 场景

怎么了?

4

1 回答 1

3

切勿在 KinematicBody2D 中使用 set_pos()。您需要使用 move()。

于 2017-09-07T11:30:50.437 回答