Lethn This is the enemy's code
extends KinematicBody
var Health = 90
var speed = 20
var point = Vector3 (NewFPC.global_transform.basis.x, NewFPC.global_transform.basis.y, NewFPC.global_transform.basis.z)
var direction = Vector3()
func _ready():
pass
func _process(delta):
var direction
if Health <= 0:
translate(Vector3(0.1, 0, 0))
if point.distance_to(transform.origin) > 1:
direction = point - transform.origin
direction = direction.normalized() * speed
else:
direction = point - transform.origin
move_and_slide(direction)
and this is the players code
extends KinematicBody
var interaction = 1
var gravity = Vector3()
var gravity_speed
var gravity_speed_normal = 7
var gravity_speed_fast = 60
var jump = 200
var jump_speed = Vector3()
var speed
var gravity_1_2
var defult_speed = 10
var sprint = 18
var stamina = 50
var mouse_sensitivity = 0.3
var direction = Vector3()
var movement = Vector3()
var run_speed = 50
var damage = 30
onready var colision = $CollisionShape
onready var head = $Head
onready var camera = $Head/Camera
onready var rey_cast = $Head/Camera/RayCast
onready var Progress = $ProgressBar
func _ready():
Input.set_mouse_mode(Input.MOUSE_MODE_CAPTURED)
func _input(event):
if event is InputEventMouseMotion:
rotate_y (deg2rad(-event.relative.x * mouse_sensitivity))
head.rotate_x(deg2rad(-event.relative.y * mouse_sensitivity))
head.rotation.x = clamp(head.rotation.x, deg2rad(-89), deg2rad(89))
func _physics_process(delta):
speed = defult_speed
gravity_speed = gravity_speed_normal
Attack()
select()
jump_speed = Vector3()
gravity = Vector3()
direction = Vector3()
if Input.is_action_pressed("Move"):
direction -= transform.basis.z
elif Input.is_action_pressed("Move_back"):
direction += transform.basis.z
if Input.is_action_pressed("Move_left"):
direction -= transform.basis.x
elif Input.is_action_pressed("Move_right"):
direction += transform.basis.x
if Input.is_action_pressed("Jump") and is_on_floor():
jump_speed += transform.basis.y
elif not is_on_floor():
gravity -= transform.basis.y
if Input.is_action_pressed("Run") and stamina >= 0 and is_on_floor():
Progress = stamina
speed = sprint
stamina -= interaction
$ProgressBar.set_percent_value_int (float(stamina))
elif gravity_1_2 == 2 and not is_on_floor():
gravity_speed = gravity_speed_fast
if is_on_floor():
gravity_1_2 = 0
elif not is_on_floor():
gravity_1_2 = 1
direction = direction.normalized()
move_and_slide(direction * speed, Vector3.UP)
move_and_slide_with_snap(jump_speed * jump, Vector3.UP)
move_and_slide(gravity * gravity_speed, Vector3.UP)
func select():
if Input.is_action_just_pressed("Select"):
if rey_cast.is_colliding():
var target = rey_cast.get_collider()
if target.is_in_group("entitys"):
target.Info -= interaction
func Attack():
if Input.is_action_just_pressed("Attack"):
if rey_cast.is_colliding():
var target = rey_cast.get_collider()
if target.is_in_group("Enemys"):
target.Health -= damage
func _on_Timer_timeout():
if stamina <= 50 and not Input.is_action_just_pressed("Run"):
stamina += 5
func _on_Timer2_timeout():
if gravity_1_2 == 1 and not is_on_floor() :
gravity_1_2 = 2