turning platforms have customizable start delay

This commit is contained in:
pennyrigate 2023-01-25 17:04:22 -05:00
parent 63cf47305b
commit 629bc75fbb
5 changed files with 188 additions and 41 deletions

View file

@ -1,25 +1,33 @@
extends Node2D
onready var anims = $AnimationPlayer
onready var timer = $Timer
onready var flip_timer = $FlipTimer
onready var delay_timer = $DelayTimer
export var time:float = 60
export var delay = 0.0
export(int, "Wood", "Yellow") var color
onready var time_ms = time * 0.0166666666666667 # Time is converted from frames @ 60fps to ms
func _ready():
#Autostart animationplayer
anims.play("idle")
timer.start(time_ms)
func _physics_process(delta):
pass
#Debug.print(timer.)
#Auto start if delay variable is zero
if delay == 0.0:
anims.play("idle")
flip_timer.start(time_ms)
else:
delay_timer.start(delay)
func _on_AnimationPlayer_animation_finished(anim_name):
#Return to idle after turn animation
if anim_name == "turn":
anims.play("idle")
timer.start(time_ms)
flip_timer.start(time_ms)
func _physics_process(delta):
Debug.print(delay_timer.get_time_left())
func _on_Timer_timeout():
func _on_FlipTimer_timeout():
anims.play("turn")
func _on_DelayTimer_timeout():
anims.play("idle")
flip_timer.start(time_ms)

View file

@ -119,7 +119,11 @@ shape = SubResource( 1 )
anims/idle = SubResource( 2 )
anims/turn = SubResource( 3 )
[node name="Timer" type="Timer" parent="."]
[node name="FlipTimer" type="Timer" parent="."]
[node name="DelayTimer" type="Timer" parent="."]
one_shot = true
[connection signal="animation_finished" from="AnimationPlayer" to="." method="_on_AnimationPlayer_animation_finished"]
[connection signal="timeout" from="Timer" to="." method="_on_Timer_timeout"]
[connection signal="timeout" from="FlipTimer" to="." method="_on_FlipTimer_timeout"]
[connection signal="timeout" from="DelayTimer" to="." method="_on_DelayTimer_timeout"]

View file

@ -1,4 +1,4 @@
[gd_scene load_steps=9 format=2]
[gd_scene load_steps=13 format=2]
[ext_resource path="res://scripts/1px_border.gdshader" type="Shader" id=1]
[ext_resource path="res://graphics/player/arrow.png" type="Texture" id=2]
@ -13,12 +13,50 @@ shader_param/border_corners = true
[sub_resource type="Curve" id=3]
_data = [ Vector2( 0, 1 ), 0.0, -0.139481, 0, 0, Vector2( 1, 0 ), -2.82064, 0.0, 0, 0 ]
[sub_resource type="CurveTexture" id=4]
width = 32
curve = SubResource( 3 )
[sub_resource type="ParticlesMaterial" id=5]
flag_disable_z = true
spread = 180.0
gravity = Vector3( 0, 0, 0 )
initial_velocity = 8.0
initial_velocity_random = 0.18
orbit_velocity = 0.0
orbit_velocity_random = 0.0
damping = 1.0
angle = 720.0
angle_random = 1.0
scale = 0.25
scale_random = 0.25
scale_curve = SubResource( 4 )
[sub_resource type="RectangleShape2D" id=2]
extents = Vector2( 5.5, 3.5 )
[sub_resource type="Curve" id=6]
_data = [ Vector2( 0, 1 ), 0.0, -1.45746, 0, 0, Vector2( 1, 0 ), 0.00323196, 0.0, 0, 0 ]
[sub_resource type="CurveTexture" id=7]
width = 32
curve = SubResource( 6 )
[sub_resource type="ParticlesMaterial" id=8]
flag_disable_z = true
spread = 180.0
gravity = Vector3( 0, 0, 0 )
initial_velocity = 30.0
initial_velocity_random = 0.5
orbit_velocity = 0.0
orbit_velocity_random = 0.0
damping = 50.0
angle = 720.0
angle_random = 1.0
scale = 0.3
scale_curve = SubResource( 7 )
color = Color( 1, 1, 0.290196, 1 )
[node name="ArrowProjectile" type="Node2D"]
script = ExtResource( 3 )
@ -27,23 +65,14 @@ material = SubResource( 1 )
z_index = -1
texture = ExtResource( 2 )
[node name="DustParticles" type="CPUParticles2D" parent="."]
[node name="DustParticles" type="Particles2D" parent="."]
show_behind_parent = true
position = Vector2( -4, 0 )
z_index = -1
amount = 24
local_coords = false
process_material = SubResource( 5 )
texture = ExtResource( 4 )
spread = 180.0
gravity = Vector2( 0, 0 )
initial_velocity = 8.0
initial_velocity_random = 0.18
damping = 1.0
angle = 720.0
angle_random = 1.0
scale_amount = 0.25
scale_amount_random = 0.25
scale_amount_curve = SubResource( 3 )
[node name="Hitbox" type="Area2D" parent="." groups=["arrow"]]
@ -51,24 +80,15 @@ scale_amount_curve = SubResource( 3 )
position = Vector2( -0.5, -0.5 )
shape = SubResource( 2 )
[node name="SparkParticles" type="CPUParticles2D" parent="."]
[node name="SparkParticles" type="Particles2D" parent="."]
position = Vector2( 4, 0 )
emitting = false
amount = 16
lifetime = 0.5
one_shot = true
explosiveness = 1.0
process_material = SubResource( 8 )
texture = ExtResource( 4 )
spread = 180.0
gravity = Vector2( 0, 0 )
initial_velocity = 30.0
initial_velocity_random = 0.5
damping = 50.0
angle = 720.0
angle_random = 1.0
scale_amount = 0.3
scale_amount_curve = SubResource( 6 )
color = Color( 1, 1, 0.290196, 1 )
[connection signal="area_entered" from="Hitbox" to="." method="_on_Hitbox_area_entered"]
[connection signal="body_entered" from="Hitbox" to="." method="_on_Hitbox_body_entered"]