forked from team-sg/hero-mark-2
laser wall enemy
This commit is contained in:
parent
c2d473a993
commit
95da126f17
5 changed files with 105 additions and 2 deletions
33
objects/enemy/laser_wall.gd
Normal file
33
objects/enemy/laser_wall.gd
Normal 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()
|
29
objects/enemy/laser_wall.tscn
Normal file
29
objects/enemy/laser_wall.tscn
Normal 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
|
Loading…
Add table
Add a link
Reference in a new issue