Proto-Type
Proto-Type
Voici une démo que j'ai présenté au dernier concours de l'AJVA. Cette Démo n'est pas finit et ne le sera jamais car comme indiqué c'est un prototype. Le but était de crée un moteur de shoot them up entièrement scriptable en XML. Je lache le code source car je recode le moteur (qui est loin d'être finit)en C++ en gardant le principe du XML.
Coté code 4,1K ligne de code, il compile sous linux avec le subsystem OpenGL mais les collisions sont aléatoire car pas de pixel perfect. J'utilise beaucoup de lib disponible sur Chronos et incleu dans le code sources generé.
Sources.
Les graphisme sont la propriété de l'auteur (voir crédits), aucune réutilisation sans son consentement.
Pour DL l'exécutable c'est Ici : (windows only)
http://www.doujin-spirit.com/oldies/Proto-Type.rar
Coté code 4,1K ligne de code, il compile sous linux avec le subsystem OpenGL mais les collisions sont aléatoire car pas de pixel perfect. J'utilise beaucoup de lib disponible sur Chronos et incleu dans le code sources generé.
Sources.
Les graphisme sont la propriété de l'auteur (voir crédits), aucune réutilisation sans son consentement.
Pour DL l'exécutable c'est Ici : (windows only)
http://www.doujin-spirit.com/oldies/Proto-Type.rar
Nop aucun bonus que des tirs. Le jeux est assez gourmand notamment a cause de la texture de fond. C'est scripté a larache étant donné que tout a été fait en une semaine. D'ailleurs c'est assez simple quand on a fait le niveau une fois et qu'on a remarqué comment ne pas se faire toucher. Pour les collisions je vais passer en quadtree le pixel perfect de pure est trop gourmand.

tu stockes la texture dans un tableau de byte (1=collision 0=non)
pour les collisions , pour se type de jeu un simple bouding box suffit
tu récupères l'intersection des 2 box , si il se rentre dedans tu lis que la partie qui se chevauche , si tab_A() = 1 & tab_B() = 1 alors collisions. Simple, rapide.

Le top 4 a été donné hier a la Japan Expo.
1 - Invaders Resurrection
2 - Sukubus
3 - LightDroid V2
4 - Ocean's Keeper
A croire que il y avait du challenge, d'ailleurs je n'ai pas respecté le cahier des charges car le niveau a une fin et il fallait un jeu infinissable (mais bon sans le boss, la démo aurait une autre saveur :p).
Par contre aucune idée pour le restant des jeux, enfin personnellement jetait sur place et j'ai trouvé l'organisation (si on peut appeler cela une organisation) du stand était faite avec des pieds.
1 - Invaders Resurrection
2 - Sukubus
3 - LightDroid V2
4 - Ocean's Keeper
A croire que il y avait du challenge, d'ailleurs je n'ai pas respecté le cahier des charges car le niveau a une fin et il fallait un jeu infinissable (mais bon sans le boss, la démo aurait une autre saveur :p).
Par contre aucune idée pour le restant des jeux, enfin personnellement jetait sur place et j'ai trouvé l'organisation (si on peut appeler cela une organisation) du stand était faite avec des pieds.
je ne suis pas a la maison, je te ferai un jolie dessin tout a l'heureCpl.Bator a écrit :![]()
tu stockes la texture dans un tableau de byte (1=collision 0=non)
pour les collisions , pour se type de jeu un simple bouding box suffit
tu récupères l'intersection des 2 box , si il se rentre dedans tu lis que la partie qui se chevauche , si tab_A() = 1 & tab_B() = 1 alors collisions. Simple, rapide.

-
- Messages : 4312
- Inscription : mer. 28/janv./2004 20:58
- Localisation : Clermont ferrand OU Olsztyn
- Contact :
@CLP : oui j'avais comprit ^^'.
je vais prendre l'exemple du vaisseau principale

Je divise l'image en quatre partie car chacune des partie contient des pixel visible. Dans la partie en haut a droite nous avons 1 2 3 et 4. seul 4 est crée an tant que sous arbres car il contient des pixels, les autres zone sont ignoré. En cas de collision le principe est simple je test sur les zone existante si elle entre en contacte et ce récursivement jusqu'à arriver a la zone la plus petite en collisions. Une fois ceci fait je regarde si les pixel se chevauchant on une opacité supérieur a 0. résultat : si aucune collision mais un chevauchement des images très peu de calcul a réaliser et si une collision on isole les zone concerné ce qui diminue les tests.
En fait plutôt une liste. Le principe c'est sadjes a écrit :Je crois qu'il avait compris... Tu implémenterais comment le quadtree pour les tirs? En stockant au fur et à mesure dans un tableau? Je vois pas trop...

je vais prendre l'exemple du vaisseau principale

Je divise l'image en quatre partie car chacune des partie contient des pixel visible. Dans la partie en haut a droite nous avons 1 2 3 et 4. seul 4 est crée an tant que sous arbres car il contient des pixels, les autres zone sont ignoré. En cas de collision le principe est simple je test sur les zone existante si elle entre en contacte et ce récursivement jusqu'à arriver a la zone la plus petite en collisions. Une fois ceci fait je regarde si les pixel se chevauchant on une opacité supérieur a 0. résultat : si aucune collision mais un chevauchement des images très peu de calcul a réaliser et si une collision on isole les zone concerné ce qui diminue les tests.
-
- Messages : 1307
- Inscription : dim. 08/juil./2007 18:32
- Localisation : Toulouse
tu devrais faire un tour au forum shump, là tu apprendrai que pour les collisions, faut pas s'embêter: un seul rectangle de collision suffit. Pour les derniers manic shooter, un minuscule rectangle se trouve au centre de chaque boulettes... ... et même chose pour le ship du joueur.cha0s a écrit :@CLP : oui j'avais comprit ^^'.