Code:Takoyaki
code:Main
extends Node2D
@onready var _label = $Label
func _ready():
pass # Replace with function body.
func _process(delta):
var cnt = 0
for child in get_children():
if "Tako" in child.name:
cnt += 1
if cnt == 0:
_label.visible = true
code:Tako
extends Area2D
const EXPLOSION_OBJ = preload("res://src/Explosion.tscn")
const MOVE_SPEED = 200
var _screen = Rect2()
var _velocity = Vector2()
func _ready() -> void:
_screen = get_viewport_rect()
_velocity.x = randf_range(-1, 1)
_velocity.y = randf_range(-1, 1)
func _process(delta: float) -> void:
position += _velocity * MOVE_SPEED * delta
if position.x < 0:
position.x = 0
_velocity.x *= -1
if position.y < 0:
position.y = 0
_velocity.y *= -1
if position.x > _screen.size.x:
position.x = _screen.size.x
_velocity.x *= -1
if position.y > _screen.size.y:
position.y = _screen.size.y
_velocity.y *= -1
func _on_input_event(viewport, event, shape_idx):
if event is InputEventMouseButton:
if event.is_pressed():
var explosion = EXPLOSION_OBJ.instantiate()
explosion.position = position
get_tree().root.add_child(explosion)
queue_free()
code:Explosion
extends Sprite2D
const SPEED = 37 * 1.5
var _pasttime = 0.0
func _process(delta):
_pasttime += delta
frame = int(_pasttime * SPEED)
if frame >= 38:
queue_free()