allow long pressing jump
This commit is contained in:
parent
225a55bacd
commit
4c870105a8
3 changed files with 25 additions and 9 deletions
|
@ -26,10 +26,8 @@ func move():
|
||||||
|
|
||||||
|
|
||||||
func _on_VisibilityNotifier2D_viewport_entered(viewport: Viewport) -> void:
|
func _on_VisibilityNotifier2D_viewport_entered(viewport: Viewport) -> void:
|
||||||
print("viewport_entered")
|
|
||||||
emit_signal("viewport_entered", self)
|
emit_signal("viewport_entered", self)
|
||||||
|
|
||||||
|
|
||||||
func _on_VisibilityNotifier2D_viewport_exited(viewport: Viewport) -> void:
|
func _on_VisibilityNotifier2D_viewport_exited(viewport: Viewport) -> void:
|
||||||
print("viewport_exited")
|
|
||||||
emit_signal("viewport_exited", self)
|
emit_signal("viewport_exited", self)
|
||||||
|
|
|
@ -3,7 +3,8 @@ extends KinematicBody2D
|
||||||
var speed = Vector2.ZERO
|
var speed = Vector2.ZERO
|
||||||
|
|
||||||
export var jump_speed = 1100.0
|
export var jump_speed = 1100.0
|
||||||
export var gravity = 45.0
|
export var gravity = 60.0
|
||||||
|
export var jump_time = 0.2
|
||||||
export var max_lives = 1
|
export var max_lives = 1
|
||||||
|
|
||||||
enum {
|
enum {
|
||||||
|
@ -25,17 +26,20 @@ var state = RUN
|
||||||
var au_sol = true
|
var au_sol = true
|
||||||
|
|
||||||
var current_lives = max_lives
|
var current_lives = max_lives
|
||||||
|
var pressing_jump = false
|
||||||
|
|
||||||
onready var animation = $AnimatedSprite
|
onready var animation := $AnimatedSprite
|
||||||
onready var bonus_texture = $BonusControl/Sprite
|
onready var bonus_texture := $BonusControl/Sprite
|
||||||
onready var bonus_tween = $BonusControl/Tween
|
onready var bonus_tween := $BonusControl/Tween
|
||||||
onready var bonus_timer = $BonusControl/Timer
|
onready var bonus_timer := $BonusControl/Timer
|
||||||
|
onready var jump_timer := $JumpTimer
|
||||||
|
|
||||||
signal hit()
|
signal hit()
|
||||||
signal die()
|
signal die()
|
||||||
signal score()
|
signal score()
|
||||||
|
|
||||||
func _ready():
|
func _ready():
|
||||||
|
jump_timer.wait_time = jump_time
|
||||||
stop()
|
stop()
|
||||||
|
|
||||||
|
|
||||||
|
@ -48,6 +52,7 @@ func _physics_process(delta):
|
||||||
speed = Vector2.ZERO
|
speed = Vector2.ZERO
|
||||||
speed.y -= jump_speed
|
speed.y -= jump_speed
|
||||||
animation.play("man_jump")
|
animation.play("man_jump")
|
||||||
|
if not pressing_jump:
|
||||||
state = IDLE
|
state = IDLE
|
||||||
IDLE:
|
IDLE:
|
||||||
pass
|
pass
|
||||||
|
@ -55,9 +60,14 @@ func _physics_process(delta):
|
||||||
move_and_collide(speed*delta)
|
move_and_collide(speed*delta)
|
||||||
|
|
||||||
|
|
||||||
func _input(event):
|
func _input(event: InputEvent):
|
||||||
if player_enabled and state == RUN and event.is_action_pressed(jump_key):
|
if player_enabled and state == RUN and event.is_action_pressed(jump_key):
|
||||||
|
jump_timer.start()
|
||||||
|
pressing_jump = true
|
||||||
state = JUMP
|
state = JUMP
|
||||||
|
elif event.is_action_released(jump_key):
|
||||||
|
jump_timer.stop()
|
||||||
|
pressing_jump = false
|
||||||
|
|
||||||
|
|
||||||
func _on_Area2D_body_entered(body):
|
func _on_Area2D_body_entered(body):
|
||||||
|
@ -109,3 +119,7 @@ func _on_Timer_timeout() -> void:
|
||||||
bonus_tween.stop_all()
|
bonus_tween.stop_all()
|
||||||
bonus_tween.interpolate_property(bonus_texture, "modulate", null, Color(1, 1, 1, 0), 0.3, Tween.TRANS_CUBIC, Tween.EASE_IN_OUT)
|
bonus_tween.interpolate_property(bonus_texture, "modulate", null, Color(1, 1, 1, 0), 0.3, Tween.TRANS_CUBIC, Tween.EASE_IN_OUT)
|
||||||
bonus_tween.start()
|
bonus_tween.start()
|
||||||
|
|
||||||
|
|
||||||
|
func _on_JumpTimer_timeout() -> void:
|
||||||
|
pressing_jump = false
|
||||||
|
|
|
@ -85,6 +85,10 @@ texture = ExtResource( 22 )
|
||||||
[node name="Timer" type="Timer" parent="BonusControl"]
|
[node name="Timer" type="Timer" parent="BonusControl"]
|
||||||
wait_time = 1.5
|
wait_time = 1.5
|
||||||
|
|
||||||
|
[node name="JumpTimer" type="Timer" parent="."]
|
||||||
|
one_shot = true
|
||||||
|
|
||||||
[connection signal="body_entered" from="Area2D" to="." method="_on_Area2D_body_entered"]
|
[connection signal="body_entered" from="Area2D" to="." method="_on_Area2D_body_entered"]
|
||||||
[connection signal="body_exited" from="Area2D" to="." method="_on_Area2D_body_exited"]
|
[connection signal="body_exited" from="Area2D" to="." method="_on_Area2D_body_exited"]
|
||||||
[connection signal="timeout" from="BonusControl/Timer" to="." method="_on_Timer_timeout"]
|
[connection signal="timeout" from="BonusControl/Timer" to="." method="_on_Timer_timeout"]
|
||||||
|
[connection signal="timeout" from="JumpTimer" to="." method="_on_JumpTimer_timeout"]
|
||||||
|
|
Loading…
Reference in a new issue