|
Les collisions et la profondeur
Oui, c'est la meilleurs solutions je pense. Les textures sur toute une surface ça encombre un peu trop je trouve. Enfin, c'est le genre de trucs que je risque de faire en dernier de toute façon
Citation :
____________________ Aujourd'hui, je vais parler de la mise en place du système de collision et du système de profondeur. La profondeur des joueurs et des objets Dans un jeu en 2D comme ça, il faut gérer la profondeur sur l'axe nord-sud. En gros, si un objet est plus bas qu'un autre, il doit se retrouver devant ce dernier. Pour mettre en place un tel système, j'ai découpé l'espace de jeu en petite case de 20 pixels sur 20 pixels. Comme ceci : Quand le joueur se déplace sur l'axe Y et qu'il change de ligne, ça déclenche la mise à jours de la profondeur du dit joueur. C'est à dire qu'on regarde sa position en fonction des autres objets du monde et on ajuste sa profondeur. Par exemple, si le joueur est plus bas qu'une table ça donne ceci : Alors que si le joueur est plus haut, il se retrouve derrière : Le fait d'avoir découpé l'espace en petit carré de 20x20 permet de déclencher ce genre de mise à jours beaucoup moins souvent que si j'avais testé ça pixel par pixel, ce qui économise beaucoup de ressource. L'inconvénient, c'est que les objets doivent être attachés sur cette grille pour éviter d'avoir des chose comme un joueur légèrement plus bas qu'un objet mais de quand même rester derrière. Ce genre de problème se produira en revanche entre les joueurs, mais bon, comme ils seront souvent en mouvement, ça sera moins désagréable. Au pire, je peut toujours rétrécir le quadrillage. En revanche, un autre problème s'est posé à moi au bout d'un moment. Dans le dernier screen, on peut voir que je suis plus bas que la chaise posée sur la table mais que je suis quand même derrière celle-ci. En fait, j'ai du mettre en place un système de liaison entre les objets pour ce genre de cas, où un objet est en fait posé sur un autre objet. Ca me permet de prendre en compte la position d'un seul objet pour calculer la profondeur de tout un groupe d'objet. On le vois bien sur ce screen : Les deux bouteilles d'eau sont à la même position sur l'axe Y mais celle de droite est liée à la table ce qui la place devant mon personnage. De cette façon, on voit bien qu'elle est en fait posée sur la table, alors que l'autre est posée par terre. Les collisions J'ai profité de ce quadrillage pour mettre en place mon système de collision. J'ai créé un truc tout bête qui prend en compte la taille de l'objet pour marquer certaines cases du quadrillage comme étant "non franchissable". Comme le montre ce petit screen (Les cases vertes ne peuvent plus être traversées) : Si un objet est trop petit, il ne déclenche pas de collision avec les joueurs, comme le montre la petite bouteille en haut à gauche. Comme pour la profondeur, le fait d'utiliser un quadrillage permet d'économiser des ressources plutôt que de gérer les collisions pixels par pixels. D'autant que pour ce genre de vue, ya pas besoin d'avoir un truc ultra précis Tout ceci se fait dynamiquement. C'est à dire que sur flash, j'ai une scène qui représente un niveau où je place mes différents objets à l'arrache. Ensuite, c'est le jeu en se lançant qui reconstruit le monde en rendant les objets sélectionnable, en les attachant au quadrillage et en créant les zones de collision suivant la taille de l'objet. Ca va me permettre de créer du contenu rapidement sans trop d'effort à paramétrer chaque objet avec des valeurs numériques De plus, ce quadrillage me servira plus tard pour gérer le pathfinding des zombies. Ca permettra de rendre les objets infranchissable pour les zombies et ça me donne des idées de gameplay autour des barricades et autres joyeusetés du genre Prochaine étape : le tapage de zombie |
29/10/2008, 22h17 |
Aller à la page... |
[Journal de bord] Création d'un petit jeu de zombies
Suivre Fil fermé |
|
Partager | Rechercher |
|
Citation :
Citation :
Puis, après des dizaines de version, j'en suis arrivé à un serveur java sur un seul thread utilisant java.nio. Serveur beaucoup plus performant mais pas facile à programmer, j'ai toujours pas de version vraiment stable, donc bon... Tu as pas mal d'exemple sur le net comme celui-ci. Le problème c'est que quasi totalité de ces exemples sont pour la plupart bugué et explose avant d'atteindre un certain nombre de connecté. |
30/10/2008, 21h51 |
|
|
Citation :
http://www.bytearray.org/?p=128 Qui devait sortir chez O'Reilly France, mais qui a ferme ses portes entre temps, du coup l'auteur l'a sorti en open source. Apres l'aide de flash est superbe aussi comme le dit tigrounette. Cote web www.kirupa.com est un très bon site, les tips of the day sur le forum sont une vraie mine de bonne ressources et astuces. En français la communauté mediabox est de loin la plus active et propose un large panel de tuto et sur le forum ya de très bon expert qui répondent aux questions. -> http://flash.mediabox.fr/ Et cote optimisation : http://www.rozengain.com/blog/2007/0...optimizations/ ya plein de link en bas aussi |
31/10/2008, 14h23 |
|
Alpha & Oméga
|
Merci pour toutes ces références.
Pour Tigrounette, concernant le serveur, NEL ne pourrais pas te rendre service ? |
31/10/2008, 15h54 |
|
|
Oui, j'arrive pas à faire quelque chose de propre tout en collant à l'ambiance. Mais bon, ya de grande chance que cette interface change au bout du compte ^^
|
09/11/2008, 18h41 |
|
#184254
Invité
|
Message supprimé par son auteur.
|
15/11/2008, 17h14 |
|
#184254 |
|
Les déplacements des zombies
Hop, la suite La semaine dernière, j'ai migré le jeu sur la nouvelle version de flash (flash CS4) et j'ai regardé un peu les nouveautés et les choses qui pourront m'être utile, donc ça a pris un peu de temps.
____________________ Maintenant, je vais parler du système de déplacement des zombies. Au départ, je pensais utiliser un algorithme A*, mais bon, je trouvais un peu dommage que les zombies ne se coincent pas dans le décors, ben oui c'est des zombies et il sont bêtes Donc plutôt que de leurs permettre d'éviter les zones de collision, j'ai décider de les faire avancer en ligne droite et de s'arrêter lorsqu'ils rencontrent un obstacle. Ca me permet d'économiser pas mal de ressources et d'effectuer ces calculs directement sur le serveur. Et les joueurs pourront se servir du décors pour éviter les zombies, et pourquoi pas faire des barricades. Un petit exemple en screen : Sur ce screen, le zombie ne cherchera pas à contourner la table. De plus, j'ai ajouté une autre petite variable : l'intelligence des zombies. Cette variable (qui change d'un zombie à l'autre) définie la durée entre chaque décision d'un zombie. Par exemple, si elle est définie sur 1, le zombie pourra changer de direction toute les 1 secondes. Ca va rendre certain zombie très bête (genre le zombie qui va là ou un joueur se trouvait ya 10 secondes) et d'autres plus "nerveux" qui pourront suivre les déplacements d'un joueur assez rapidement. Aussi, chaque zombie à une vitesse de déplacement différente, accentuant cet aspect. Une autre screen pour la route |
18/11/2008, 14h24 |
Suivre Fil fermé |
Connectés sur ce fil1 connecté (0 membre et 1 invité)
Afficher la liste détaillée des connectés
|