33 lines
959 B
GDScript
33 lines
959 B
GDScript
extends "res://objects/enemy/enemy.gd"
|
|
|
|
|
|
export var jump_height: float
|
|
export var jump_distance: float
|
|
export var gravity: float
|
|
export var direction: float = 1.0
|
|
|
|
|
|
var velocity: Vector2 = Vector2.ZERO
|
|
var landed: bool = false
|
|
|
|
|
|
onready var body: Node2D = $Body
|
|
onready var sprite: Sprite = $Body/Sprite
|
|
|
|
|
|
func _physics_process(delta: float) -> void:
|
|
death_blood_offset = body.position + Vector2(0.0, -4.0)
|
|
if not landed:
|
|
velocity.y += gravity * delta
|
|
body.position += velocity * delta
|
|
if body.position.y >= 0.0:
|
|
landed = true
|
|
velocity = Vector2.ZERO
|
|
body.position.y = 0.0
|
|
sprite.frame = 1
|
|
direction *= -1.0
|
|
var tween = create_tween().set_process_mode(Tween.TWEEN_PROCESS_PHYSICS)
|
|
tween.tween_property(sprite, "frame", 0, 0.0).set_delay(0.5)
|
|
tween.tween_property(self, "velocity", Vector2(jump_distance * direction, -jump_height), 0.0)
|
|
tween.tween_property(self, "landed", false, 0.0)
|
|
tween.tween_callback(tween, "kill")
|