43 lines
1.3 KiB
GDScript3
43 lines
1.3 KiB
GDScript3
|
extends KinematicBody2D
|
||
|
|
||
|
var vitesseDeplacement = 500
|
||
|
var vitesseBalle = 2000
|
||
|
|
||
|
var balle = preload("res://scenes/Balle.tscn")
|
||
|
|
||
|
func _ready():
|
||
|
pass
|
||
|
|
||
|
func _process(delta):
|
||
|
var deplacement = Vector2() # déplacement du personnage
|
||
|
|
||
|
if Input.is_action_pressed("haut"): # vers le haut
|
||
|
deplacement.y -= 1
|
||
|
if Input.is_action_pressed("bas"): # vers le bas
|
||
|
deplacement.y += 1
|
||
|
if Input.is_action_pressed("gauche"): # vers la gauche
|
||
|
deplacement.x -= 1
|
||
|
if Input.is_action_pressed("droite"): # vers la droite
|
||
|
deplacement.x += 1
|
||
|
|
||
|
deplacement = deplacement.normalized() # empeche de doubler la vitesse en diagonale
|
||
|
deplacement = move_and_slide(deplacement * vitesseDeplacement) # vitesse
|
||
|
look_at(get_global_mouse_position()) # regarde le curseur
|
||
|
|
||
|
if Input.is_action_just_pressed("clicGauche"):
|
||
|
tir()
|
||
|
|
||
|
func tir():
|
||
|
var objectBalle = balle.instance() # création object balle
|
||
|
objectBalle.position = get_global_position() # récupération de la position
|
||
|
objectBalle.rotation_degrees = rotation_degrees # récupération du degré de rotation
|
||
|
objectBalle.apply_impulse(Vector2(), Vector2(vitesseBalle, 0).rotated(rotation)) # lancement de la balle
|
||
|
get_tree().get_root().call_deferred("add_child", objectBalle) # ajout de la balle
|
||
|
|
||
|
func mort():
|
||
|
get_tree().reload_current_scene()
|
||
|
|
||
|
func _on_Area2D_body_entered(body):
|
||
|
if "Ennemi" in body.name: # collision avec l'ennemi
|
||
|
mort()
|