Pages: [1] 2 3   Bas de page
Imprimer
Auteur Fil de discussion: [NDS] Shmup NDS  (Lu 8788 fois)
0 Membres et 1 Invité sur ce fil de discussion.
Valryon Hors ligne
Full Member
***
Messages: 227


Voir le profil WWW
The World ends with you !

« 28 Octobre 2008, 03:10:28 »

Bonjour !

SHMUP est un shoot'em up réalisé avec PAlib qui propose aux joueurs plusieurs niveaux et surtout plusieurs styles graphiques pour chacun de ces niveaux. Le but est bien sûr de traverser les niveaux en évitant / dézinguant les ennemis et en détruisant le boss.

Mise à jour du 24/11/2008 : liens mis à jour, mon hébergeur ayant décidé de clore mon contrat

Nouvelle version : 1.0 OUT !

http://uppix.net/c/4/3/79346b27195b8a2738d47b28f0a65.bmp 

http://uppix.net/f/d/8/adbb5c3b7e7d39b47d3f3f381f3eb.bmp

Changelog :

- Une megabombe
- Correction de bugs

Bugs connus :

- Le boss bouge n’importe comment, ou plutôt, il ne bouge pas
- Les ennemis avant le boss disparaissent trop tôt, coupés par le boss
- Les animations sont soit absentes, soit défaillantes

N’hésitez pas à me faire part de vos remarques, critiques et/ou bugs trouvés, par e-mail ou sur sur mon blog smiley

Le projet sera un peu mis en veille pour le moment, j'aimerais sortir une version avec de nombreuses animations et tous les bugs corrigés mais j'ai une grosse fuite de mémoire et plus beaucoup de temps... Sad

Téléchargement (ROM, Code) :

http://www.valryon.fr/?page_id=10


Ce message a été édité pour être mis à jour et refléter ainsi l'avancement du projet Langue
« Dernière édition: 17 Mai 2009, 23:24:59 par Valryon » Journalisée

Etudiant en informatique développeur de homebrews :
- The Great Paper Adventure (PC - en cours)
- Shmup (NDS)
- Carton Slug, Tic et Tac SRFNDS, Echecs et Mat, et d'autres projets plus ou moins laissés pour morts...

Toutes les infos sur mon devBlog : http://www.valryon.fr
Mony Hors ligne
Hero Member
*****
Messages: 548


Voir le profil WWW
zOMG !!!1

« Réponse #1 : 28 Octobre 2008, 09:27:48 »

C'est un bon début déjà Wink
Bonne chance pour la suite Azn
Si t'as besoin d'aide, n'hésite pas Cheesy
Journalisée

Membre du club des joyeux guitaristes pas aidés et codeurs avec les pieds de Dev-Fr et pas du club des pieds pas guitaristes aidés de joyeux codeurs Dev-fr...

audio_world Hors ligne
Newbie
*
Messages: 3


Voir le profil
« Réponse #2 : 28 Octobre 2008, 11:19:32 »

Ha ben ça donne déjà une idée sympa!

Je vois que tu cherches un artiste pour les visuels, alors si tu cherches aussi un gars pour du son, je serai ravis de m'y pencher. Azn Je peux te sortir des zics en xm pour pas prendre trop de place. Undecided

Bonne continuation !
Journalisée
Valryon Hors ligne
Full Member
***
Messages: 227


Voir le profil WWW
The World ends with you !

« Réponse #3 : 28 Octobre 2008, 12:46:38 »

Pour le pb de l'erreur PAlib il nous suffit que tu nous montre ta boucle principale et on te donne la solution Smiley

L'erreur que l'on voit dans la première vidéo ? Je l'ai résolue  angel il fallait que j'utilise les GFx pour alléger un peu la mémoire avec mes 80 tirs... Et mon code est un gros bordel. J'ai comme gros défault de toujours essayer de coder des trucs "génériques", du coup ça fait un peu usine à gaz (y'a qu'à voir le nombre de sprites différents par niveau  Cheesy ). Par contre je suis satisfait de ma gestion de l'affichage de sprites et de tirs en masse, même si j'ai pas trop chargée la vidéo là.

Pour l'animation, c'est plus un problème d'algo qui me bloque.

Code:
Si pas d'animations autre que mouvement
Alors
       Si invincible
       Alors Jouer l'animation d'invincible

       Si touche
       Alors Jouer l'animation d'explosion

       etc...

       Si toutes les animations finies :
       Alors Jouer l'animation de mouvement (le vaisseau vole)

J'ai bien tenté de mettre un compteur pour savoir le nombre de frames à jouer, mais je n'arrive pas à gérer Langue Mais c'est pas grave, je sortirai une démo avec ce problème et ça sera plus facile pour le résoudre !

Ha ben ça donne déjà une idée sympa!

Je vois que tu cherches un artiste pour les visuels, alors si tu cherches aussi un gars pour du son, je serai ravis de m'y pencher. Azn Je peux te sortir des zics en xm pour pas prendre trop de place. Undecided

Je n'ai pas encore réfléchi au son... mais ma foi si tu te sens d'attaque à composer des musiques pour ce jeu je vais pas dire non Wink Pour les bruitages, je vais d'abord regarder du côté des banques de sons libres.



En tout cas merci de vos encouragements Smiley Je pense que ce projet arrivera à son terme, pas comme mon précédent (Carton Slug). En tout cas il est mieux parti !
Journalisée

Etudiant en informatique développeur de homebrews :
- The Great Paper Adventure (PC - en cours)
- Shmup (NDS)
- Carton Slug, Tic et Tac SRFNDS, Echecs et Mat, et d'autres projets plus ou moins laissés pour morts...

Toutes les infos sur mon devBlog : http://www.valryon.fr
Campanile Hors ligne
Elite Member
**
Messages: 871


Voir le profil WWW
sic

« Réponse #4 : 28 Octobre 2008, 13:17:29 »

Pour ton histoire d'algo et d'animation, tu peux tester la frame en cours, par exemple tu lances l'animation d'explosion, et quand ça revient à la frame 0, tu caches ton sprites et t'enchaines sur "le vaisseau vole". T'as un exemple dans palib un truc qui s'appelle paper mario ou un truc comme ça.
Pour le clignotage de l'invincibilité tu peux utiliser un compteur genre "time to live" que tu décrémentes à chaque tour.
Journalisée

L'expérience, c'est ni plus ni moins qu'une petite quantité d'information qui aurait été fort utile quelques secondes avant qu'on l'apprenne...
Valryon Hors ligne
Full Member
***
Messages: 227


Voir le profil WWW
The World ends with you !

« Réponse #5 : 28 Octobre 2008, 13:20:17 »

Pour ton histoire d'algo et d'animation, tu peux tester la frame en cours, par exemple tu lances l'animation d'explosion, et quand ça revient à la frame 0, tu caches ton sprites et t'enchaines sur "le vaisseau vole". T'as un exemple dans palib un truc qui s'appelle paper mario ou un truc comme ça.
Pour le clignotage de l'invincibilité tu peux utiliser un compteur genre "time to live" que tu décrémentes à chaque tour.

Oui, j'utilise un compteur pour l'invincibilité, qui décrémente à chaque frame. Je vais regarder du côté du Mario 3D alors ! Toutes mes anmations sont dans le même fichier, le même sprite. Il vaut mieux les séparer ?
Journalisée

Etudiant en informatique développeur de homebrews :
- The Great Paper Adventure (PC - en cours)
- Shmup (NDS)
- Carton Slug, Tic et Tac SRFNDS, Echecs et Mat, et d'autres projets plus ou moins laissés pour morts...

Toutes les infos sur mon devBlog : http://www.valryon.fr
Campanile Hors ligne
Elite Member
**
Messages: 871


Voir le profil WWW
sic

« Réponse #6 : 28 Octobre 2008, 13:56:05 »

Toutes mes anmations sont dans le même fichier, le même sprite. Il vaut mieux les séparer ?
J'ai retrouvé l'exemple, il est dans \3DSprites\PaperMario et la fonction c'est PA_3DGetSpriteAnimFrame(u8 sprite)
Si tu veux utiliser ça t'es obligé d'avoir toutes tes frames dans le même fichier...

Sinon tu peux gérer tes gfx à la main avec une frame par fichier, mais ça fait beaucoup de boulot qui n'est nécessaire que si tu as vraiment besoin d'optimiser l'utilisation de la mémoire vidéo, y'a un post de Mollusk qui explique ça trés bien, et que je retrouverais probablement dans un moment, je rajouterai le lien Tongue
Journalisée

L'expérience, c'est ni plus ni moins qu'une petite quantité d'information qui aurait été fort utile quelques secondes avant qu'on l'apprenne...
Smealum Hors ligne
Assassin
Administrateur
*****
Messages: 589


Voir le profil WWW
Assassin

« Réponse #7 : 28 Octobre 2008, 16:30:07 »

Ce post n'irait pas plutôt dans "Projets" sous "NDS" ? (je peux déplacer si nécessaire) En tout cas, bon courage pour ton projet. Wink
Journalisée

Valryon Hors ligne
Full Member
***
Messages: 227


Voir le profil WWW
The World ends with you !

« Réponse #8 : 28 Octobre 2008, 18:12:36 »

Ce post n'irait pas plutôt dans "Projets" sous "NDS" ? (je peux déplacer si nécessaire) En tout cas, bon courage pour ton projet. Wink

En effet, il devrait plutôt être là-bas Langue
Journalisée

Etudiant en informatique développeur de homebrews :
- The Great Paper Adventure (PC - en cours)
- Shmup (NDS)
- Carton Slug, Tic et Tac SRFNDS, Echecs et Mat, et d'autres projets plus ou moins laissés pour morts...

Toutes les infos sur mon devBlog : http://www.valryon.fr
EvilTroopa Hors ligne
Hero Member
*****
Messages: 520


Voir le profil WWW
1010011010 the Number of the Beast

« Réponse #9 : 28 Octobre 2008, 18:27:27 »

Tu as déjà fait la version ASCII ou c'est juste dans le menu pour plus tard ?

Parce que j'aurais bien aimé le voir dans la vidéo Azn

Sinon, c'est sympa, ça présage du bon Smiley
Journalisée

A mushroom a day, keeps the koopas away.
LapiNou_fou Hors ligne
Newbie
*
Messages: 8


Voir le profil
« Réponse #10 : 29 Octobre 2008, 14:04:30 »

olala cher confrère que vois-je?!?
Mais c'est génial! un shmup :')
Ton projet me donne envie de me remettre au développement NDS Smiley
Surment au retour des vacances. Sinon est ce que tu pourrais me passer quelques bouts de code parce que il y a des trucs, j'vois pas trop comment ça marche. Sinon pour le design jpeux peut-être mettre mes cours d'égo à contribution^^

[HS]j'ai acheter Metal Slug[/HS]
Journalisée

()  ()                                        ()  ()
 (O.o)            LapiNou Fou            (O.o)
(u  u)      \|/                      \|/      (u  u)
Rednalhgih Hors ligne
Newbie
*
Messages: 8


Voir le profil
« Réponse #11 : 29 Octobre 2008, 14:17:35 »

Je peux t'arranger une bonne partie du graphisme des sprites, du menu et de la GUI, suis un habitué des shmup Wink
Journalisée
Valryon Hors ligne
Full Member
***
Messages: 227


Voir le profil WWW
The World ends with you !

« Réponse #12 : 29 Octobre 2008, 17:34:00 »

olala cher confrère que vois-je?!?
Mais c'est génial! un shmup :')
Ton projet me donne envie de me remettre au développement NDS Smiley
Surment au retour des vacances. Sinon est ce que tu pourrais me passer quelques bouts de code parce que il y a des trucs, j'vois pas trop comment ça marche. Sinon pour le design jpeux peut-être mettre mes cours d'égo à contribution^^

[HS]j'ai acheter Metal Slug[/HS]


Je pensais bien que tu finirais par tomber dessus !
C'est en grande partie à toi que je pensais pour les sprites et les jolis menus whistle Je posterai le code en même temps que la démo, y'a des trucs pour lesquels je n'ai pas de solutions encore.

Je peux t'arranger une bonne partie du graphisme des sprites, du menu et de la GUI, suis un habitué des shmup Wink

Si t'as des projets / images déjà faites je veux bien jeter un coup d'oeil, pour avoir quelques idées Smiley

Tu as déjà fait la version ASCII ou c'est juste dans le menu pour plus tard ?

J'ai plein d'idées pour la version ASCII, grâce à un vieux projet étudiant que je vais pouvoir dépoussiérer ! Donc c'est pas encore fait mais ça ne saurait tarder... Dans la prochaine vidéo ? Peut-être. Dans la démo ? Oui !
Journalisée

Etudiant en informatique développeur de homebrews :
- The Great Paper Adventure (PC - en cours)
- Shmup (NDS)
- Carton Slug, Tic et Tac SRFNDS, Echecs et Mat, et d'autres projets plus ou moins laissés pour morts...

Toutes les infos sur mon devBlog : http://www.valryon.fr
Valryon Hors ligne
Full Member
***
Messages: 227


Voir le profil WWW
The World ends with you !

« Réponse #13 : 29 Octobre 2008, 18:57:24 »

Bon, j'ai commencé la version ASCII... Donc j'ai fait des megas switch qui rajoutent des centaines de lignes horribles pour charger les bonnes images en fonction du niveau...

Pour chaque univers il me faut 70 sprites   Embarrassed plus quelques sprites par niveaux (genre le background).
Je crois que mon idée de faire plein d'univers différents va être restreinte à 2, peut-être trois univers !

La ROM fait 1,3 Mo sans sons et avec 3 niveaux dont deux identiques (juste pour test).

Il va falloir que j'optimise tout ça je crois...

EDIT :
Un exemple :
Code:
//Fonction du niveau
switch(niveau->level)
{
case PAINT1:
case PAINT2:
//Fonction du type de l'ennemi
switch(v.type)
{
case 1:
PA_DualCreateSprite(v.nosprite,(void*)mechant11_Sprite,OBJ_SIZE_32X32,1,pal_mechant1,v.x>>8,v.y>>8 );
break;

case 2:
PA_DualCreateSprite(v.nosprite,(void*)mechant12_Sprite,OBJ_SIZE_32X32,1,pal_mechant2,v.x>>8,v.y>>8 );
break;

case 3:
PA_DualCreateSprite(v.nosprite,(void*)mechant13_Sprite,OBJ_SIZE_32X32,1,pal_mechant3,v.x>>8,v.y>>8 );
break;

case 4:
PA_DualCreateSprite(v.nosprite,(void*)mechant14_Sprite,OBJ_SIZE_32X32,1,pal_mechant4,v.x>>8,v.y>>8 );
break;

case 5:
PA_DualCreateSprite(v.nosprite,(void*)mechant15_Sprite,OBJ_SIZE_64X64,1,pal_mechant5,v.x>>8,v.y>>8 );
break;
}
break;

case ASCII1:
switch(v.type)
{
case 1:
PA_DualCreateSprite(v.nosprite,(void*)mechant21_Sprite,OBJ_SIZE_32X32,1,pal_mechant1,v.x>>8,v.y>>8 );
break;

case 2:
PA_DualCreateSprite(v.nosprite,(void*)mechant22_Sprite,OBJ_SIZE_32X32,1,pal_mechant2,v.x>>8,v.y>>8 );
break;

case 3:
PA_DualCreateSprite(v.nosprite,(void*)mechant23_Sprite,OBJ_SIZE_32X32,1,pal_mechant3,v.x>>8,v.y>>8 );
break;

case 4:
PA_DualCreateSprite(v.nosprite,(void*)mechant24_Sprite,OBJ_SIZE_32X32,1,pal_mechant4,v.x>>8,v.y>>8 );
break;

case 5:
PA_DualCreateSprite(v.nosprite,(void*)mechant25_Sprite,OBJ_SIZE_64X64,1,pal_mechant5,v.x>>8,v.y>>8 );
break;
}
break;
}


Et ça c'est simplement l'affichage des ennemis. Pour le chargement du niveau, c'est pire. Peut-être que je devrais écrire au maximum dans un fichier texte (la position des ennemis par exemple, pour l'instant codée en dur!) pour alléger le code et au chargement du niveau lire ce fichier ?
« Dernière édition: 29 Octobre 2008, 19:02:16 par Valryon » Journalisée

Etudiant en informatique développeur de homebrews :
- The Great Paper Adventure (PC - en cours)
- Shmup (NDS)
- Carton Slug, Tic et Tac SRFNDS, Echecs et Mat, et d'autres projets plus ou moins laissés pour morts...

Toutes les infos sur mon devBlog : http://www.valryon.fr
MasterDje Hors ligne
Diet Coke Addict
Global Moderator
*****
Messages: 3242


Voir le profil WWW
« Réponse #14 : 30 Octobre 2008, 09:22:34 »

mon gars, t'es mur pour bucher ce tuto là : http://www.dev-fr.org/index.php/topic,407.0.html

et ça va t'éviter un paquet de switch, avec un peu de chance Azn
Journalisée

Pages: [1] 2 3   Haut de page
Imprimer

Aller à: