Files
foxfox/scripts/question_block.gd

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)