enemies now get squashed by rocks

This commit is contained in:
pennyrigate 2023-01-09 21:50:02 -05:00
parent 416982d88e
commit 2cb646ce32
14 changed files with 110 additions and 28 deletions

View file

@ -0,0 +1,3 @@
[gd_scene format=2]
[node name="Climber" type="Node2D"]

View file

@ -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():

View 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

View file

@ -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

View file

@ -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"]

View file

@ -74,8 +74,6 @@ func _physics_process(delta):
velocity.y = 0
#Apply velocity
move_and_slide(velocity,Vector2.UP)
Debug.print(get_owner().filename)
func _process_idle():
if anims.get_current_animation() != "idle": anims.play("idle")
@ -94,7 +92,6 @@ func _process_walk():
for i in get_slide_count():
var collision = get_slide_collision(i)
if collision.get_collider().is_in_group("pushable"):
print(collision.get_collider())
collision.get_collider().push(collision.normal)
func _process_idle_walk():