laser wall enemy

This commit is contained in:
Haze Weathers 2023-03-01 04:38:41 -05:00
parent c2d473a993
commit 95da126f17
5 changed files with 105 additions and 2 deletions

View file

@ -0,0 +1,33 @@
extends "res://objects/enemy/enemy_move_sidesideupdown.gd"
export var laser_rate = 1.0
export var laser_time = 0.5
onready var line = $Laser
onready var cast = $RayCast2D
onready var timer = $Timer
func _ready():
_disable_laser()
func _physics_process(delta):
if cast.is_colliding():
line.points[1].y = line.to_local(cast.get_collision_point()).y
line.visible = true
var collider = cast.get_collider()
if collider.is_in_group("player"):
collider.get_parent().die()
else:
line.visible = false
func _enable_laser():
cast.enabled = true
timer.wait_time = laser_time
timer.connect("timeout", self, "_disable_laser", [], CONNECT_ONESHOT)
timer.start()
func _disable_laser():
cast.enabled = false
timer.wait_time = laser_rate
timer.connect("timeout", self, "_enable_laser", [], CONNECT_ONESHOT)
timer.start()

View file

@ -0,0 +1,29 @@
[gd_scene load_steps=3 format=2]
[ext_resource path="res://graphics/enemy/laser_wall.png" type="Texture" id=1]
[ext_resource path="res://objects/enemy/laser_wall.gd" type="Script" id=2]
[node name="LaserWall" type="Node2D"]
script = ExtResource( 2 )
blood = false
flip_sprite = false
[node name="Sprite" type="Sprite" parent="."]
texture = ExtResource( 1 )
centered = false
[node name="Laser" type="Line2D" parent="."]
visible = false
position = Vector2( 4, 2 )
points = PoolVector2Array( 0, 0, 0, 8 )
width = 2.0
default_color = Color( 0.960784, 0.2, 0.258824, 1 )
[node name="RayCast2D" type="RayCast2D" parent="."]
position = Vector2( 4, 2 )
cast_to = Vector2( 0, 192 )
collide_with_areas = true
[node name="Timer" type="Timer" parent="."]
process_mode = 0
one_shot = true