forked from team-sg/hero-mark-2
enemies now get squashed by rocks
This commit is contained in:
parent
416982d88e
commit
2cb646ce32
14 changed files with 110 additions and 28 deletions
3
objects/enemy/climber.tscn
Normal file
3
objects/enemy/climber.tscn
Normal file
|
@ -0,0 +1,3 @@
|
|||
[gd_scene format=2]
|
||||
|
||||
[node name="Climber" type="Node2D"]
|
|
@ -27,8 +27,9 @@ func _on_Area2D_area_entered(area):
|
|||
Game.instance_node(Game.block_text,global_position.x,global_position.y,get_parent())
|
||||
#Die from rock/ get squashed
|
||||
if area.is_in_group("squash"):
|
||||
Debug.print("squash")
|
||||
var squasher = area.get_parent()
|
||||
if squasher.position.y + squasher.bottom.position.y < global_position.y:
|
||||
if squasher.global_position.y < global_position.y && squasher.velocity.y > 0:
|
||||
die()
|
||||
|
||||
func die():
|
||||
|
|
15
objects/enemy/enemy_climber.gd
Normal file
15
objects/enemy/enemy_climber.gd
Normal file
|
@ -0,0 +1,15 @@
|
|||
extends "res://objects/enemy/enemy.gd"
|
||||
|
||||
# Declare member variables here. Examples:
|
||||
# var a = 2
|
||||
# var b = "text"
|
||||
|
||||
|
||||
# Called when the node enters the scene tree for the first time.
|
||||
func _ready():
|
||||
pass # Replace with function body.
|
||||
|
||||
|
||||
# Called every frame. 'delta' is the elapsed time since the previous frame.
|
||||
#func _process(delta):
|
||||
# pass
|
|
@ -5,18 +5,38 @@ export var left_up_boundry = 0.0
|
|||
export var right_down_boundry = 0.0
|
||||
#Start direction
|
||||
export var direction = 1
|
||||
export var speed = 50
|
||||
export var slower_speed = 50
|
||||
export var faster_speed = 100
|
||||
#Move horizontal or vertical
|
||||
export(int, "Horizontal", "Vertical") var move_direction
|
||||
export var flip_sprite = true
|
||||
#Onreadys
|
||||
onready var startpos = position
|
||||
onready var sprite = $AnimatedSprite
|
||||
onready var raycast = $Area2D/RayCast2D
|
||||
onready var timer = $Timer
|
||||
|
||||
var speed = 50
|
||||
var go_fast = false
|
||||
|
||||
func _physics_process(delta):
|
||||
if move_direction == 0:
|
||||
move_side_to_side(delta)
|
||||
else: move_up_and_down(delta)
|
||||
#Speed up if in raycast
|
||||
if raycast.get_collider() != null:
|
||||
if raycast.get_collider().is_in_group("player"):
|
||||
go_fast = true
|
||||
timer.set_wait_time(0.5)
|
||||
timer.start()
|
||||
#chnage speed depedning on you know
|
||||
if go_fast:
|
||||
speed = faster_speed
|
||||
else:
|
||||
speed = slower_speed
|
||||
#flip raycast with sprite
|
||||
raycast.scale.x = sprite.scale.x
|
||||
|
||||
|
||||
func move_side_to_side(delta):
|
||||
#Move
|
||||
|
@ -39,3 +59,7 @@ func move_up_and_down(delta):
|
|||
if position.y <= startpos.y + (-left_up_boundry * 8):
|
||||
direction = 1
|
||||
if flip_sprite == true: sprite.scale.y = -1
|
||||
|
||||
|
||||
func _on_Timer_timeout():
|
||||
go_fast = false
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
[ext_resource path="res://scripts/1px_border.gdshader" type="Shader" id=1]
|
||||
[ext_resource path="res://graphics/enemy/snail.png" type="Texture" id=2]
|
||||
[ext_resource path="res://objects/enemy/enemy_move_sidesideupdown.gd" type="Script" id=3]
|
||||
[ext_resource path="res://objects/enemy/enemy_speedup_in_range.gd" type="Script" id=3]
|
||||
|
||||
[sub_resource type="ShaderMaterial" id=1]
|
||||
shader = ExtResource( 1 )
|
||||
|
@ -30,21 +30,28 @@ extents = Vector2( 4, 4 )
|
|||
|
||||
[node name="Snail" type="Node2D"]
|
||||
script = ExtResource( 3 )
|
||||
slower_speed = 10
|
||||
|
||||
[node name="AnimatedSprite" type="AnimatedSprite" parent="."]
|
||||
material = SubResource( 1 )
|
||||
frames = SubResource( 4 )
|
||||
frame = 1
|
||||
playing = true
|
||||
|
||||
[node name="Area2D" type="Area2D" parent="."]
|
||||
visible = false
|
||||
|
||||
[node name="CollisionShape2D" type="CollisionShape2D" parent="Area2D"]
|
||||
position = Vector2( 0, 1 )
|
||||
shape = SubResource( 5 )
|
||||
|
||||
[node name="RayCast2D" type="RayCast2D" parent="."]
|
||||
[node name="RayCast2D" type="RayCast2D" parent="Area2D"]
|
||||
enabled = true
|
||||
cast_to = Vector2( 32, 0 )
|
||||
collide_with_areas = true
|
||||
collide_with_bodies = false
|
||||
|
||||
[node name="Timer" type="Timer" parent="."]
|
||||
wait_time = 0.5
|
||||
one_shot = true
|
||||
|
||||
[connection signal="area_entered" from="Area2D" to="." method="_on_Area2D_area_entered"]
|
||||
[connection signal="timeout" from="Timer" to="." method="_on_Timer_timeout"]
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue