Meilleure réponse
Pour un plateforme 2D (côte à côte), le moyen le plus simple de penser comment pour ce faire, les joueurs se transformeraient et feraient basculer le Sprite Renderer de cette façon et la vitesse de conversion de cette façon également. Il ny a vraiment pas de recherche de chemin dans un jeu de plateforme pour un ennemi. Un exemple serait quelque chose comme:
[SerializeField] Transform player;
[SerializeField] SpriteRenderer rend;
[SerializeField] float speed;
void Update()
{
if(player.pos.x < transform.position.x)
{
renderer.flipX = true;
transform.Translate(new Vector2(-speed, 0f));
}
else
{
renderer.flipX = false;
transform.Translate(new Vector2(speed, 0f));
}
Réponse
Lun des projets sur lesquels je travaillais quand javais le temps (= entre deux jobs: d) était un 2d de bas niveau à lancienne très classique Moteur de jeu basé sur des sprites, adapté aux plates-formes et autres. Juste parce que.
Cest en fait une chose assez amusante à aborder, écrire votre propre moteur 2d, il est suffisamment petit pour que vous puissiez le faire travaillez par vous-même en quelques mois r que des années, donc ce nest pas comme un gros moteur 3D où cest un projet de tarte dans le ciel où vous narrivez jamais à faire un jeu avec lui. Il est toujours tout à fait raisonnable, même sil est un peu anachronique, de lancer votre propre moteur 2d.
La plupart de mon moteur de jeu (écrit en C ++, au-dessus de Win32 ordinaire) consistait en: - une classe graphique (un canevas de bas niveau où vous pouvez dessiner des lignes, des polygones ou des pixels bruts) - classe de sprite, pour dessiner des animations et des sprites en combinant des éléments dune image, ainsi que dessiner du texte bitmap - classe de jeu de mosaïques, pour gérer les arrière-plans de jeu de mosaïques - une hiérarchie de classes dinterface utilisateur avec des composants simples ( boutons, panneaux, listbox, etc.) - un moteur physique simple (rien dextraordinaire, juste quelque chose qui vous permet de déplacer des objets avec une certaine vitesse et de déclencher une collision avec dautres objets et le décor) - une classe sonore simple - le jeu principal machine à états de boucle / jeu qui liait tout cela ensemble, envoyait des messages de souris et de clavier, envoyait des événements aux objets de linterface utilisateur, rendait tous les sprites, mettait à jour tous les objets de physique, etc. cest fondamentalement le "cœur" du Jeu. Si vous souhaitez comprendre le fonctionnement des jeux de base (et implicitement des moteurs de jeu), concentrez-vous sur ce domaine, la gestion de létat du jeu, les événements du jeu et la boucle principale de mise à jour / dessin. - le code de dessin Win32 dépendant de la plate-forme dans juste un petit fichier
Jai également écrit des convertisseurs de fichiers, un éditeur de jeu de tuiles et un éditeur danimation en utilisant .NET / C ++ / CLI pour aller avec eux. La majeure partie du travail consistait à écrire les classes de sprite et de physique, ainsi que léditeur de sprite.