30 lines
735 B
GDScript
30 lines
735 B
GDScript
extends StaticBody2D
|
|
## Блок «?»: удар снизу выдаёт монету (очки) и подбрасывает блок.
|
|
|
|
signal hit
|
|
|
|
var coins: int = 1
|
|
var bumping: bool = false
|
|
|
|
func _ready() -> void:
|
|
collision_layer = 1
|
|
collision_mask = 1
|
|
|
|
func on_hit_from_below() -> void:
|
|
if bumping:
|
|
return
|
|
bumping = true
|
|
var start_y := position.y
|
|
var tween := create_tween()
|
|
tween.tween_property(self, "position:y", start_y - 10.0, 0.06)
|
|
tween.tween_property(self, "position:y", start_y, 0.06)
|
|
await tween.finished
|
|
if coins > 0:
|
|
coins -= 1
|
|
GameManager.add_score(200)
|
|
bumping = false
|
|
hit.emit()
|
|
if coins == 0:
|
|
# Блок исчерпан — визуально гасим
|
|
modulate = Color(0.6, 0.6, 0.6)
|