Made refinement to CRT enemy movement logic.

This commit is contained in:
Henry 2026-02-28 18:32:40 +00:00
parent 004e1063b8
commit 448009b6e4
5 changed files with 37 additions and 37 deletions

View file

@ -24,7 +24,7 @@ const TILE = 32
@onready var screensize = get_viewport_rect().size
@onready var timer = $MoveTimer
@onready var crt = get_node("CRT")
@onready var crt = $CRT
func _ready():
timer.start()
@ -57,25 +57,28 @@ func _on_direction_timer_timeout():
direction = Vector2(0,1)
can_shoot = true
vulnerable = true
#$DirectionTimer.start()
1:
$CRT.frame = 1
direction = Vector2(1,0)
can_shoot = false
vulnerable = false
#$DirectionTimer.start()
2:
$CRT.frame = 2
direction = Vector2(-1,0)
can_shoot = false
vulnerable = false
#$DirectionTimer.start()
$DirectionTimer.start()
func _on_shoot_timer_timeout():
if can_shoot == true:
var b = bullet_scene.instantiate()
get_tree().root.add_child(b)
b.start(position)
$ShootTimer.wait_time = randf_range(4, 20)
#$ShootTimer.wait_time = randf_range(4, 20)
$ShootTimer.start()
else:
@ -85,38 +88,43 @@ func _process(delta):
if stunned == true:
return
position += direction * speed * delta
if stunned == false:
position += direction * speed * delta
if position.x > screensize.x + 32:
start(start_pos)
if position.y > screensize.y + 32:
start(start_pos)
func hit_detection():
if exploding: return
exploding = true
EventBus.enemy_hit.emit(5)
speed = 0
$ImpactCRT.play()
$AnimationPlayer.play("explode")
#set_deferred("monitoring", false)
await $AnimationPlayer.animation_finished
queue_free()
EventBus.enemy_died.emit()
if vulnerable == true:
exploding = true
EventBus.enemy_hit.emit(5)
speed = 0
$ImpactCRT.play()
$AnimationPlayer.play("explode")
#set_deferred("monitoring", false)
await $AnimationPlayer.animation_finished
queue_free()
EventBus.enemy_died.emit()
if vulnerable == false:
block()
func block():
if blocking: return
blocking = true
#if blocking: return
#blocking = true
stunned = true
await get_tree().create_timer(5).timeout
shader_active = true
crt.material.set_shader_parameter("toggle", 1.0)
await get_tree().create_timer(1).timeout
shader_active = false
await get_tree().create_timer(5).timeout
crt.material.set_shader_parameter("toggle", 0.0)
shader_active = false
stunned = false