12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091 |
- extends KinematicBody2D
-
- var speed = Vector2.ZERO
-
- export var jump_speed = 1100.0
- export var gravity = 45.0
- export var max_lives = 1
-
- enum {
- RUN,
- JUMP,
- IDLE
- }
-
- enum {
- SCORE,
- TIME
- }
-
- var jump_key = "dialogic_next"
-
- var player_enabled = false
-
- var state = RUN
- var au_sol = true
-
- var current_lives = max_lives
-
- onready var animation = $AnimatedSprite
-
- signal hit()
- signal die()
- signal score()
-
- func _ready():
- stop()
-
-
- func _physics_process(delta):
- if player_enabled:
- match state:
- RUN:
- animation.play("man_run")
- JUMP:
- speed = Vector2.ZERO
- speed.y -= jump_speed
- animation.play("man_jump")
- state = IDLE
- IDLE:
- pass
- speed.y += gravity
- move_and_collide(speed*delta)
-
-
- func _input(event):
- if player_enabled and state == RUN and event.is_action_pressed(jump_key):
- state = JUMP
-
-
- func _on_Area2D_body_entered(body):
- if body is StaticBody2D:
- state = RUN
-
-
- func _on_Area2D_body_exited(body):
- if body is StaticBody2D:
- state = JUMP
-
-
- func start():
- show()
- player_enabled = true
-
-
- func stop():
- hide()
- player_enabled = false
-
-
- func hit():
- current_lives -= 1
- if current_lives > 0:
- emit_signal("hit")
- else:
- current_lives = 0
- emit_signal("die")
-
-
- func bonus():
- emit_signal("score")
|