37 lines
942 B
GDScript
37 lines
942 B
GDScript
extends StaticBody2D
|
|
## Кирпичный блок: разбивается при ударе снизу, даёт очки и обломки.
|
|
|
|
var broken: bool = false
|
|
|
|
func _ready() -> void:
|
|
collision_layer = 1
|
|
collision_mask = 1
|
|
|
|
func on_hit_from_below() -> void:
|
|
if broken:
|
|
return
|
|
broken = true
|
|
GameManager.add_score(50)
|
|
_spawn_debris()
|
|
queue_free()
|
|
|
|
func _spawn_debris() -> void:
|
|
var parent := get_parent()
|
|
if parent == null:
|
|
return
|
|
for i in range(4):
|
|
var debris := RigidBody2D.new()
|
|
debris.collision_layer = 0
|
|
debris.collision_mask = 0
|
|
var cs := CollisionShape2D.new()
|
|
var shape := RectangleShape2D.new()
|
|
shape.size = Vector2(8, 8)
|
|
cs.shape = shape
|
|
debris.add_child(cs)
|
|
debris.global_position = global_position
|
|
debris.linear_velocity = Vector2(-120.0 if i < 2 else 120.0, -260.0)
|
|
parent.add_child(debris)
|
|
var t := debris.create_tween()
|
|
t.tween_interval(0.6)
|
|
t.tween_callback(debris.queue_free)
|