0 Pluspunkte 0 Minuspunkte

Ich habe einen CharacterBody2D mit einem Script

func _physics_process(delta):
 var direction = Input.get_vector("ui_left", "ui_right", "ui_up", "ui_down")
 if direction:
  velocity = direction * speed
 else:
  velocity.x = move_toward(velocity.x, 0, speed)
  velocity.y = move_toward(velocity.y, 0, speed)
 velocity.y += gravity * delta
 move_and_slide()

Wie kann ich erkennen wenn der Player einen anderen StaticBody berührt?

von  

2 Antworten

0 Pluspunkte 0 Minuspunkte

Wenn du einen CharacterBody2D mit move_and_slide() oder move_and_collide() bewegst kannst du get_slide_collision_count() und get_slide_collision() benutzen.

var collisions = get_slide_collision_count()
for collision in collisions:
    print(get_slide_collision(collision))
von (640 Punkte)  
0 Pluspunkte 0 Minuspunkte

Dazu kannst du PhysicsShapeQueryParameters2D benutzen und eine Funktion schreiben.

func check_collision():
    var space_state = get_world_2d().direct_space_state
    var query = PhysicsShapeQueryParameters2D.new()
    query.shape = collision_shape.shape
    query.transform = global_transform
    var results = space_state.intersect_shape(query)
    for result in results:
        if result.collider:
            print("Kollision mit:", result.collider.name)
von (868 Punkte)