我正在做Breakout游戏,这是一个类似于Pong的游戏,球从球拍上反弹,你必须瞄准,才能击中砖块.当你击中砖块时,你得了一分,砖块就消失了.我的每块砖都是Area2D
,因为我需要on_body_entered
信号.
extends Area2D
func _on_body_entered(body):
score += 1
queue_free()
当球击中砖块时,脚本运行,这正是我想要发生的.问题是砖块被击中后就消失了,球一直穿过它.我试图实现适当的碰撞,这样当砖块消失时,球就会反弹,类似于球击中球拍时的反弹(这是一个BeverterBody2D).
球也是一个健身器Body2D
extends CharacterBody2D
var speed: int = 6
func _ready():
var target_position = Vector2(575, 645)
var direction = global_position.direction_to(target_position)
velocity = direction.normalized() * speed
func _physics_process(delta):
var collision = move_and_collide(velocity)
if collision != null:
velocity = velocity.bounce(collision.get_normal())
根据这些信息,我如何在砖块上实现正确的逻辑,使球在消失时反弹?