Pesquisar este blog

Inimigo simples que segue a localizacão do Player - GD SCRIPT

 extends KinematicBody


var enemyHP :=3

var damage :=1

var attackDistance := 3.0

var attackRate := 1.0

var enemySpeed := 50.0


var vida


var velocity := Vector3.ZERO


onready var timer := $attackTimer as Timer

onready var player := get_node("/root/cenario/player")


const UP = Vector3.UP



func _ready() -> void:

timer.wait_time = attackRate

timer.start()

vida = get_tree().current_scene

func _physics_process(delta: float) -> void:

var distance = translation.distance_to(player.translation)

if distance > attackDistance:

var direction = (player.translation - translation).normalized()

velocity = Vector3(direction.x, 0, direction.z)

velocity = move_and_slide(velocity, UP)

func takeDamage(damage):

enemyHP -= damage

if enemyHP <= 0:

queue_free()


func _on_attackTimer_timeout() -> void:

if translation.distance_to(player.translation) <= attackDistance:

player.takeDamage(damage)

vida.count_hp()



func _on_inimigmorreu_body_entered(body):

if (body.name =="Player"):

print(body.name)