Pesquisar este blog

Personagem simples - Camera + pulo + teclado + mouse

 extends KinematicBody


#VARIAVEIS###################################################

##############################################################

##############################################################

var velocidade := Vector3.ZERO

var corrida := 10

var pulo := 10

var gravidade :=Vector3.DOWN * 12

var mouse_rotation := 0.05

var is_jumping := false





#MOUSE###################################################

##############################################################

##############################################################

func _unhandled_input(event: InputEvent) -> void:

if event is InputEventMouseMotion:

rotate_y(-lerp(0, mouse_rotation, event.relative.x / 10))








#GRAVIDADE###################################################

##############################################################

##############################################################

func _physics_process(delta: float)-> void:

velocidade += gravidade * delta

if is_jumping:

velocidade.y += velocidade.y

get_input()

velocidade = move_and_slide(velocidade, Vector3.UP, true)


#CONTROLE DO TECLADO###################################################

##############################################################

##############################################################

func get_input():

var velocidade_y = velocidade.y


velocidade = Vector3.ZERO

if Input.is_action_pressed("cima"):

velocidade += -transform.basis.z * corrida

if Input.is_action_pressed("baixo"):

velocidade += +transform.basis.z * corrida

if Input.is_action_pressed("esquerda"):

velocidade += -transform.basis.x * corrida

if Input.is_action_pressed("direita"):

velocidade += +transform.basis.x * corrida

velocidade.y = velocidade_y

#fazendo ele pular 

if Input.is_action_just_pressed('pulo') and is_on_floor():

velocidade.y=pulo