Les Bases Essentielles de GDScript pour Créer des Jeux avec Godot
1. Deplacement de base d'un personnage
Utilite : Permet de deplacer un personnage sur les axes X et Y avec le clavier.
Exemple :
```gdscript
extends CharacterBody2D
var speed = 200
func _physics_process(delta):
var direction = Vector2.ZERO
if Input.is_action_pressed("ui_right"):
direction.x += 1
if Input.is_action_pressed("ui_left"):
direction.x -= 1
if Input.is_action_pressed("ui_down"):
direction.y += 1
if Input.is_action_pressed("ui_up"):
direction.y -= 1
velocity = direction.normalized() * speed
move_and_slide()
```
2. Detection de collision avec is_on_floor()
Utilite : Verifie si le personnage est sur le sol, utile pour sauter.
Exemple :
Les Bases Essentielles de GDScript pour Créer des Jeux avec Godot
```gdscript
if is_on_floor() and Input.is_action_just_pressed("ui_accept"):
velocity.y = -300
```
3. Utiliser les signaux (ex: bouton clique)
Utilite : Reagir aux evenements dans l'interface utilisateur.
Exemple :
```gdscript
func _on_Button_pressed():
print("Bouton clique !")
```
4. Creer un projectile avec instance()
Utilite : Creer un objet dynamique a partir d'une scene (comme une balle).
Exemple :
```gdscript
var bullet_scene = preload("res://Bullet.tscn")
func shoot():
var bullet = bullet_scene.instantiate()
bullet.position = position
get_parent().add_child(bullet)
```
Les Bases Essentielles de GDScript pour Créer des Jeux avec Godot
5. Gerer le score avec une variable globale
Utilite : Conserver et mettre a jour un score entre les scenes.
Exemple :
Dans un autoload (singleton appele Global.gd) :
```gdscript
var score = 0
```
6. Detecter des touches avec Input.is_action_pressed()
Utilite : Reagir aux entrees clavier personnalisees.
Exemple :
```gdscript
if Input.is_action_pressed("ui_left"):
position.x -= 10
```
7. Changer de scene avec change_scene_to_file()
Utilite : Passer d'une scene a une autre.
Exemple :
```gdscript
get_tree().change_scene_to_file("res://scene2.tscn")
```
8. Utiliser un Timer pour un delai
Utilite : Declencher une action apres un certain temps.
Les Bases Essentielles de GDScript pour Créer des Jeux avec Godot
Exemple :
```gdscript
func _on_Timer_timeout():
print("Temps ecoule !")
```
9. Lire une animation avec AnimationPlayer
Utilite : Lancer une animation definie dans le node AnimationPlayer.
Exemple :
```gdscript
$AnimationPlayer.play("run")
```
10. Faire apparaître des ennemis (spawn aleatoire)
Utilite : Generer des objets de maniere dynamique a differents endroits.
Exemple :
```gdscript
var enemy_scene = preload("res://Enemy.tscn")
func spawn_enemy():
var enemy = enemy_scene.instantiate()
enemy.position = Vector2(randf() * 800, randf() * 600)
add_child(enemy)
```
Les Bases Essentielles de GDScript pour Créer des Jeux avec Godot
Mini Projet Final : Jeu de tir simple en 2D
Objectif : Deplacer un personnage, tirer des projectiles et marquer des points en touchant des ennemis.
Contenu :
- Deplacement du joueur
- Tir avec `shoot()`
- Apparition d'ennemis avec `spawn_enemy()`
- Detection de collision entre balle et ennemi
- Incrementation du score
Extrait de code de base :
```gdscript
# Player.gd
func _process(delta):
if Input.is_action_just_pressed("shoot"):
shoot()
func shoot():
var bullet = preload("res://Bullet.tscn").instantiate()
bullet.position = position
get_parent().add_child(bullet)
# Bullet.gd
func _on_body_entered(body):
if body.name == "Enemy":
Les Bases Essentielles de GDScript pour Créer des Jeux avec Godot
body.queue_free()
queue_free()
Global.score += 1
```
Ce mini projet peut servir de base a un jeu de type *arcade shooter*. À toi de l'enrichir !