2017-09-06 2 views
2

Ich lerne Godot Spiel-Engine und ich habe versucht, einen Ball zu machen, der gehen kann und nicht durch andere Objekte gehen kann, aber der Ball durch die anderen Objekte gehen. HierKinematisches Objekt erkennt keine Kollisionen - Godot

ist der Code:

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) 

Die Szene (Bild): Scene

Was ist falsch?

Antwort

3

Verwenden Sie niemals set_pos() in einem KinematicBody2D. Sie müssen move() verwenden.