Contenu du cours
Jeu de Combat dans Unity
Jeu de Combat dans Unity
Obstacles Générés Aléatoirement.
La classe Obstacle
gère les obstacles dans le jeu, en s'assurant qu'ils se repositionnent lorsqu'ils sortent de l'écran afin de maintenir un gameplay continu.
Méthodes
Méthode Start
private void Start()
{
lastObject = startingLastObject;
player = FindAnyObjectByType<PlayerMVT>().transform;
}
But : Initialise le dernier obstacle et trouve le transform du joueur.
Fonctionnement :
lastObject = startingLastObject;
: Définit lastObject
sur l'obstacle initial spécifié dans l'Inspector ;
player = FindAnyObjectByType<PlayerMVT>().transform;
: Trouve le transform du joueur en utilisant la méthode FindAnyObjectByType
.
Méthode OnBecameInvisible
private void OnBecameInvisible()
{
if (player == null) return;
if (transform.position.x >= player.position.x) return;
if (transform == lastObject) return;
Vector2 position = transform.position;
float random = Random.Range(0, 100);
if (random <= 50)
{
position.y = Random.Range(-2, 1);
}
else
{
position.y = Random.Range(15, 18);
}
position.x = lastObject.position.x + Random.Range(6f, 10f);
transform.position = position;
lastObject = transform;
}
But : Repositionnement de l'obstacle lorsqu'il sort de l'écran et que certaines conditions sont remplies.
Fonctionnement :
Le script vérifie d'abord l'existence du joueur (if (player == null) return;
), s'assure que l'obstacle est situé derrière le joueur (if (transform.position.x >= player.position.x) return;
), et évite le repositionnement consécutif du même obstacle (if (transform == lastObject) return;
).
Il récupère la position actuelle de l'obstacle (Vector2 position = transform.position;
), génère un nombre aléatoire (float random = Random.Range(0, 100);
) et ajuste la position y de l'obstacle en fonction de ce nombre.
Ensuite, il met à jour la position x par rapport au dernier obstacle (position.x = lastObject.position.x + Random.Range(6f, 10f);
) et met à jour lastObject
pour référencer l'obstacle actuel (lastObject = transform;
).
Résumé
- Initialisation : Définit le dernier obstacle initial et recherche le joueur ;
- Repositionnement : Lorsqu'un obstacle sort de l'écran et que des conditions spécifiques sont remplies, il est repositionné à une distance aléatoire devant le dernier obstacle avec une hauteur aléatoire ;
- Conditions : Garantit que les obstacles ne sont repositionnés que s'ils sont derrière le joueur et qu'il ne s'agit pas du même obstacle de façon répétée.
Cette configuration permet un flux continu d'obstacles dans le jeu, maintenant le défi et la variété pour le joueur.
Merci pour vos commentaires !