tag:blogger.com,1999:blog-2272945115412472622023-11-15T20:23:13.035+01:00Mon Dev-blog / Ma Collection VidéoludiqueCe blog me servira à garder une trace de ma collection de jeux pour consoles Nintendo, ainsi que de mes progrès en développement sur Nintendo DS.Delcahttp://www.blogger.com/profile/03641973043388395993noreply@blogger.comBlogger13125tag:blogger.com,1999:blog-227294511541247262.post-48142095256952291202011-02-20T20:39:00.003+01:002011-02-20T20:49:11.105+01:00Delca is back !Yo ! Ça fait un bail que je ne suis pas venu ici. Mais quand je viens, c'est pas pour rien.<br /><br />Vu que je suis encore en vacances, je me suis remotivé pour continuer à bosser sur WTN. Après 2h45 passées à faire des nouveaux sprites avec mspaint.exe (au pixel près, comme d'habitude), et un peu de temps passer à coder le tout, Cube peut maintenant "absorber" un canon, et lancer des bombes. Ces dernières explosent dès qu'elles touchent une surface quelconque. Il surfit maintenant de faire disparaitre l'explosion, et les ennemis qu'elle touche ; de faire quelques niveaux supplémentaires, qui utilise ce nouvel élément de façon originale, et je pourrais faire une nouvelle release publique (yeaaah, ça fera deux...).<br /><br />Ah oui, ça et ajouter un joli niveau fait en cours de spé physique, il y a bientôt un an... souvenirs souvenirs !<br /><br />Allez, je rend l'antenne pour cette fois. C'est tout pour aujourd'hui !Delcahttp://www.blogger.com/profile/03641973043388395993noreply@blogger.com0tag:blogger.com,1999:blog-227294511541247262.post-15999760301697303802009-08-30T20:22:00.003+02:002009-08-30T20:28:05.254+02:00Dev - Second projet - WTN : première beta publique!Hi,<br /><br />Ça y est, WTN est enfin disponible au grand publique! Vous pouvez aller voir la fiche du projet et le télécharger sur <a href="http://www.playeradvance.org/forum/showthread.php?t=33659">cette page</a>.<br /><br />Quelques remarques par rapport à mon dernier message :<br /><br />-La porte a été ajotée, avec pour l'instant le même sprite que celui de la plateforme mobile.<br />-L'ennemi volant s'anime, mais son IA n'est aps encore écrite donc il n'est pas présent.<br />-Le bouton Start permet d'afficher un "menu" sur l'écran supérieur.<br />-Le premier niveau est crée.<br /><br />Donc, il n'y a qu'un seul niveau et aucun boss (c'est dû à un problème d'IA pour ce dernier) sur cette première démo.<br /><br /><p>C'est tout pour aujourd'hui, à vous les studios.</p>Delcahttp://www.blogger.com/profile/03641973043388395993noreply@blogger.com0tag:blogger.com,1999:blog-227294511541247262.post-64236339889253492602009-08-26T14:09:00.002+02:002009-08-26T14:36:50.169+02:00Dev - Second projet - WTN : message rapideHi,<br /><br />Petite note rapide, pour signaler la remise en marche du compilateur de mon ordinateur, et donc la suite du développement de WTN. Derniers ajouts en date :<br /><br />-les missiles envoyés par le premier boss tournent sur eux-même.<br />-ajout d'un ressort, qui permet de sauter plus haut.<br />-menu principal qui fonctionne bien (on peut accéder au jeu...^^).<br /><br />A suivre :<br /><br />-ajout d'une porte, qui ne s'ouvre qu'avec une clé (logique, me direz-vous).<br />-ajout d'un nouveau type d'ennemi, le premier ennemi volant.<br />-interface correcte pour le menu de pause, ainsi que pour le début/fin de niveau et le game over.<br />-création du premier niveau (parce que jouer sur un niveau de test, c'est pas le fun absolu).<br /><br />Et qui sait, une release à la fin?Delcahttp://www.blogger.com/profile/03641973043388395993noreply@blogger.com0tag:blogger.com,1999:blog-227294511541247262.post-79252745308854928302009-06-09T16:08:00.002+02:002009-06-09T16:30:21.457+02:00Dev - Casio 35+ - PenduHi,<br /><br />Ah, ma connexion Internet... Il faut croire que sans elle, je suis perdu. Enfin bon, après de long mois d'absences, pour causes de tout plein de bugs/virus sur mon ordinateur, me voila enfin de retour! Bon, puisque mon ordinateur ne me permets toujours pas de compiler mes programmes .nds, je vais donc vous faire part d'un autre projet, récemment achevé, encore une fois sur Casio 35+.<br />Cette fois -ci, c'est lors d'une sortie scolaire (qui demande pourquoi j'avais ma calculatrice à ce moment là?) que mon projet a débuté. Pour tromper l'ennui, j'ai commencé à réfléchir à la structure que prendrais un tel programme. Voici plus ou moins ce que ça a donné :<br /><br /><div style="text-align: center;">Définition du mot à trouver<br />||<br />Récupération de la touche<br />||<br />Comparaison succesive avec les lettres du mot<br />// \\<br />Lettre trouvée Lettre incorrecte<br />|| ||<br />Affichage de la lettre Décrémentation du score<br />|| ||<br />Retour à la vérification Affichage du "pendu"<br /> ||<br /> Retour à la vérification<br /><br /><div style="text-align: left;">Tout de suite, le premier problème : la fonction pré-installée pour afficher du texte ne permet pas l'utilisation de variables comme argument = une fonction pour chaque lettre du mot, sois des longues heures de copies. J'utilise donc un bête copier-coller, puis je remplace une à une les coordonnées.<br />Avec un mot de 5 lettres (la base que j'ai choisie), on se retrouve déjà à utiliser 5 étiquettes sur 10 disponibles. Ça commence bien...<br />Puis viens ensuite la boucle de repérage de la touche pressée = 6 étiquettes.<br />On ajoute l'étiquette au début du programme, afin d'effectuer un retour à la fin du jeu = 7 étiquettes.<br />Celle qui me permet d'afficher à l'écran le pendu = 8 étiquettes.<br />Une autre pour détecter l'appui sur une touche après la fin du jeu = 9 étiquettes.<br />Ouf! je rentre tout juste dans mes comptes.<br />Deuxième problème majeur : L'impossibilité d'afficher du texte et un graphique (dont je me sers pour le pendu) simultanément. Qu'à cela ne tienne, je farfouille un peu et fini par trouver une fonction qui affiche des lettres sur un graphique. Problème : les arguments ne sont pas les mêmes que ceux de l'autre fonction..... Et c'est reparti pour un bon tour de changement de coordonnées...<br /><br />On en arrive donc à un petit pendu, codé en moins d'une semaine, qui affiche un pendu, laisse une dizaine de chances de trouver les lettres, va jusqu'à des mots de 5 lettres de long <s>et fais le café</s>.<br /><br /><br />Voila, c'était mon premier compte-rendu depuis un bon bout de temps. Bientôt, des nouvelles images de WTN! (si j'arrive à remettre en marche le compilateur...^^)<br /><br /></div></div>Delcahttp://www.blogger.com/profile/03641973043388395993noreply@blogger.com0tag:blogger.com,1999:blog-227294511541247262.post-43533275277541078582009-01-24T13:41:00.003+01:002009-06-09T16:08:39.450+02:00Dev - Casio 35+ - Mesure principaleBonjour à tous!<br /><br />L'actualité de mon second projet n'étant pas très passionnante pour le moment (ajout d'attaques pour le boss, animations à refaire...), je me permet une petite pause, afin de parler un peu de mon second programme en Basic.<br />A la vue du titre de l'article, chacun aura deviné que mon programme s'attaque à une partie du chapitre sur les angles orientés du programme de 1ère S : la mesure principale d'un angle.<br /><br />Résumé : la longueur du cercle trigonométrique est de 2π, l'angle de 360° correspond donc à 2π radians.<br />(Ainsi, 180°=π radians, 90°=π/2 radians, 45°=π/4 radians...). Conclusion logique, en ajoutant 2π à une mesure en radians, on fait faire un tour entier et l'angle obtenu est le même. Tout angle en radians appartient donc à l'intervalle [-π;π].<br /><br />Le but de ce programme est donc de donner la mesure principale d'un angle donné en radians sous la forme aπ/b. Commencé le jeudi 15 janvier, en cours de Mathématiques, (bien entendu...)<br />ce programme a finalement été achevé le vendredi 23 janvier. Ce projet est aussi le premier pour lequel j'ai essayer le travail en équipe : je profite donc de ce billet pour remercier Q. G. pour le travail qu'il m'a permis d'effectuer sur mon programme. Tout de suite, sa réaction :<br /><br />"Il marche pas ton programme, il est tout plein de bugs"<br /><br />A propos du temps nécessaire pour finaliser le programme : je n'ai travaillé dessus que pendant les cours de Mathématiques et de Physique-Chimie, ce qui explique le délai d'un peu plus d'une semaine.<br /><br />Je posterais le code quand j'aurais le temps de le recopier : en effet, je ne possède pas de câble permettant de relier ma calculatrice à l'ordinateur.<br /><br />C'est donc après tout ce discours inutile que je vous quitte, afin de continuer à travailler sur WTN!Delcahttp://www.blogger.com/profile/03641973043388395993noreply@blogger.com0tag:blogger.com,1999:blog-227294511541247262.post-6601633431590878652009-01-04T16:32:00.003+01:002009-01-05T17:57:58.859+01:00Dev - Second projet - WTN : compte-rendu n°1Bonjour à tous, <div><br /></div><div>Après plus d'un mois sans poster, il me semble qu'il fallait faire un petit article <strike>pour combler le vide</strike></div> pour ne pas faire de trop grande avancées sans garder de trace (voila, ça sonne quand même mieux comme ça). Voici donc les différentes avancées de mon projet effectuées pendant tout ce temps : <div><br /></div><div>-Ajout d'un nouveau type de sol : le sol <span class="blsp-spelling-corrected" id="SPELLING_ERROR_0">accélérant</span>. Sur ce sol, le joueur ne peux pas décider d'avancer dans la direction qu'il veut, il est comme poussé vers la droite de l'écran, avec une vitesse de déplacement supérieure à la vitesse à laquelle il avance normalement. Le joueur garde néanmoins la possibilité de sauter.</div><div><br /></div><div>-Ajout d'un nouveau type de <span class="blsp-spelling-error" id="SPELLING_ERROR_1">tile</span> (dans la <span class="blsp-spelling-error" id="SPELLING_ERROR_2">map</span> de collision) : le joueur perdra instantanément une vie si il touche ces éléments (pour les connaisseurs, ces <span class="blsp-spelling-error" id="SPELLING_ERROR_3">tiles</span> sont presque identiques aux pics, ou <span class="blsp-spelling-error" id="SPELLING_ERROR_4">spikes</span>, que l'on peut trouver dans les <span class="blsp-spelling-error" id="SPELLING_ERROR_5">Megaman</span>)</div><div><br /></div><div>-Ajout du premier boss (enfin!) : le design reste un peu brouillon (je suis pas graphiste, m*<span class="blsp-spelling-error" id="SPELLING_ERROR_6">rd</span>*!), mais l'essentiel est là. Le boss est contitué de 4 objets : </div><div><br /></div><div>-Le premier, sa tête, constitue la partie à viser. </div><div>-Les deuxième et troisième objets, les yeux, dont l'un est l'exact symétrique de l'autre.</div><div>-Le quatrième, la bouche, qui servira probablement pour une attaque.</div><div><br /></div><div>Il ne possède pour l'instant qu'une seule façon d'attaquer, mais je prevois l'ajout d'au moins 2 autres attaques. Il est pour l'instant impossible de l'attaquer de quelque façon que ce soit.</div><div><br /></div><div>Son unique attaque (mais très originale, vous verrez...) consiste simplement en... un tir dirigé vers le joueur. Oui je sais, c'est connu, mais ça marche toujours, et en plus, c'est facile à ajouter, alors voila.</div><div><br /></div><div>-Ajout d'une fonction de tir : Prévue à l'origine pour le premier boss (cité ci-dessus), j'ai finalement fait une fonciton plus générale, qui prends en argumentl'objet qui tire le missile, les coordonnées horizontales et verticales de la cible, et le type de missile qui doit être lancé. Ainisi, il sera possible d'utiliser cette fonction pour que le joueur puisse utiliser des tirs.</div><div><br /></div><div>Remarque : Pour ces tirs, il a fallut créer une IA qui leur permet de se déplacer, et une méthode de collision, qui change selon le tireur et le type de missile.</div><div><br /></div><div>Bien, je crois avoir fais le tour des ajouts. Passons maintenant à une petite check list, qui me permet de marquer les étapes importantes avant la premières release : </div><div><br /></div><div>-Ajout d'un menu de pause convenable : pour l'instant inexistant, j'ai déjà fait quelque chose de rudimentaire dans mon premier projet; il faut que je vois si je peux m'en servir comme base pour ce jeu.</div><div><br /></div><div>-Création d'au moins 3 niveaux convenables : je n'ai pour l'instant que des niveaux qui conviennent à mes tests, donc sans aucun défi.</div><div><br /></div><div>-Ajout d'un nouveau type d'ennemi : sans doute un ennemi volant, j'attends d'avoir réfléchi un peu plus la dessus pour en dire plus.</div><div><br /></div><div>-Ajout d'un autre objet absorbable par le héros : surement un de ceux que j'ai déjà dessiné, mais je reste encore indécis.</div><div><br /></div><div>-Ajout d'un véritable écran titre : pour l'instant, une image fixe, dessinée avec des carrés par mes soins. A améliorer...</div><div><br /></div><div>Par contre, pour les sons, il faudra attendre encore un petit peu : non pas que je ne sache pas les utiliser, mais je n'en ai pas encore...</div><div><br /></div>Delcahttp://www.blogger.com/profile/03641973043388395993noreply@blogger.com0tag:blogger.com,1999:blog-227294511541247262.post-90634479779305051092008-11-22T18:28:00.002+01:002008-11-22T18:57:27.275+01:00Dev - Un ennemi plus intelligent<span style="font-size:100%;">Bonsoir à tous!<br /><br />Je me suis enfin décidé à faire un article après une assez longue absence. Je parlerais donc ici d'un nouvel ennemi que j'ai crée pour mon jeu et qui possède la particularité de ne pas tomber d'une plateforme lorsque celui-ci atteint le bord. Il préfère faire un demi-tour afin de mieux vous persécuter. Voici donc mon raisonnement :<br /><br />Mon ennemi se déplace normalement. il détecte si un sol se trouve en dessous de lui, et agit en conséquence : il arrête de tomber. Maintenant, réfléchissons : pourquoi cet ennemi tombe t-il? Réponse : parce qu'il y a une gravité et qu'il n'y a pas de sol en dessous de lui. On peut donc prévoir si l'ennemi tombera ou pas à la prochaine exécution du code : il suffit de tester, en plus du sol en dessous de lui, celui qui se trouve juste devant. On obtient donc un pseudo-code du genre :<br /><br /><blockquote>if (soldevant=1) ennemi->vitesse*=-1;</blockquote><br /><br /><br />Maintenant, voyons comment mettre cela en application en prenant comme base les fonctions de détection de collisions fournies sur <a href="http://www.palib.info/wikifr/doku.php?id=day15">ce wiki</a>.<br /><br />On détecte d'abord le sol à gauche du sprite avec ceci :<br /><br /><blockquote>(GetTile(fix_norm(bady->x)-2, fix_norm(bady->y)+bady->height)==0)</blockquote><br /><br />Puis à gauche avec :<br /><br /><blockquote>(GetTile(fix_norm(bady->x)+bady->weight, x_norm(bady->y)+bady->height)==0)</blockquote><br /><br />On s'aperçoit en testant que ces collisions sont testées en permanence : or, on a seulement besoin de les tester si l'ennemi se déplace dans la bonne direction. Ainsi, on ajoute à la condition :<br /><br /><blockquote>( (GetTile(fix_norm(bady->x)-2, fix_norm(bady->y)+bady->height)==0) && (bady->variables<0)</blockquote><br /><br />et<br /><br /><blockquote>( (GetTile(fix_norm(bady->x)+bady->weight, fix_norm(bady->y)+bady->height)==0) && bady->variables>0) )</blockquote><br /><br />Je précise que bady->variables correspond à la vitesse du personnage.<br /><br />Voila, on a maintenant un ennemi qui ne tombe pas des plateformes.<br /></span>Delcahttp://www.blogger.com/profile/03641973043388395993noreply@blogger.com0tag:blogger.com,1999:blog-227294511541247262.post-24577976193858949182008-10-22T18:40:00.004+02:002008-11-22T18:59:44.766+01:00Dev - Les plateformesC'est un des premiers ajouts que j'ai fait (après les pièces, les ennemis et la forme de clé). Malheureusement, je n'ai pas pensé à travailler sur les graphismes, alors j'ai fait un gros carré rouge, et je m'en contente pour le moment.<div>J'ai décidé de gérer les collisions avec la plateforme comme avec le sol : détecter si le héros touche la plateforme, et si elle se trouve sous ses "pieds". Cette méthode a été reprise du <a href="http://www.palib.info/wikifr/doku.php?id=day15">wiki de la PAlib</a> :</div><div><br /></div><div></div><blockquote><div>if (héros après le côté gauche) && (héros avant le côté droit){</div><div>if (point tout en bas du héros) && (vitesse>=0){</div><div>héros.y-=1<<8;}</div></blockquote><div></div><div><br /></div><div>Ensuite on recherche une plateforme en dessous : </div><div><br /></div><div><div></div><blockquote><div>if (héros après le côté gauche) && (héros avant le côté droit){</div><div>if (point tout en bas du héros<span class="Apple-style-span" style="font-weight: bold;">+1</span>) && (vitesse>=0){</div><div>vitesse verticale du héros=0;}</div></blockquote><div></div><div><br /></div><div>Avec ça, le héros peut marcher sur la plateforme <span class="Apple-style-span" style="font-weight: bold;">à l'arrêt</span>. Car si on mets la plateforme en mouvement, il se contente de tomber une fois qu'il est dans le vide.</div><div><br /></div><div>Les plateformes possèdent toutes un variable qui définit le sens dans lequel elles bougent(-1 pour gauche, 1 pour droite), et leur vitesse horizontale est de 2 pixels/frame.</div><div><br /></div><div>Donc, quand la plateforme est sous le héros, on ajoute à la position du héros la vitesse de la plateforme, multipliée par la variable qui contient la direction. Et on obtiens ceci : </div><div><br /></div><div><div></div><blockquote><div>if (héros après le côté gauche) && (héros avant le côté droit){</div><div>if (point tout en bas du héros<span class="Apple-style-span" style="font-weight: bold;">+1</span>) && (vitesse>=0){</div><div>vitesse verticale du héros=0;</div><div>héros.x+=(vitesse horizontale*variable du sens de déplacement)<<8;</div><div>}</div></blockquote><div></div><div><br /></div><div>On en arrive au dernier point important pour les plateformes, le changement de direction. En effet, si une plateforme continue de bouger sans jamais s'arrêter, elle ne servira pas à grand chose (sauf pour un niveau avec un scorlling horizontal forcé).</div><div><br /></div><div>Si comme moi, vous utiliser une carte de collision, le reste est très simple : il suffit de détecter la collision de la plateforme avec une tile ,spécifique, uniquement dédiée à cela. Ensuite, il faut simplement multiplier la variable de direction par -1, ce qui à pour effet de changer le sens de cette plateforme.</div><div><br /></div><div>Et voila, mon premier VRAI article sur le développement. Je ne suis pas spécialement doué pour expliquer mon principe de fonctionnement, mais je n'ai pas vu de tutoriel dédié à la création de plateforme, alors j'ai essayé d'expliquer du mieux que j'ai pu comment je m'y suis pris, en espérant que je puisse aider quelqu'un.</div><div><br /></div><div><u>Remarque :</u> </div><div><br /></div><div><br /></div><div>-Comme expliqué sur le <a href="http://www.palib.info/wikifr/doku.php?id=day15">wiki de la PAlib</a>, j'utilise les points fixes pour mes variables. C'est de là que viennent les "<<8".</div><div>-J'ai remarqué que le héros se déplaçait systématiquement de <span class="Apple-style-span" style="font-size:x-small;">(vitesse horizontale*variable du sens de déplacement) </span><span class="Apple-style-span" style="font-size:100%;">pixels lorsque la plateforme rentre en collision avec la tile qui lui permet de changer de sens (et qu'il est dessus, bien entendu). J'ai donc un peu bidouillé en rajoutant l'inverse de cette valeur quand le héros est sur la plateforme et que celle-ci se cogne contre un des fameuses tiles. Ça a marché, je me suis donc arrêté là. Si quelqu'un trouve une autre solution, qu'il m'en fasse part dans les commentaires.</span></div><div>-Pas d'images pour ce tuto : une image statique ne sert à rien, et faire un GIF ne m'est pas passé par la tête (en fait si, mais non).</div><div>Pas d'exemple non plus, mais vous en aurez un si je release un jour le code source de WTN.</div><div><br /></div></div></div><div><br /></div><div><br /></div>Delcahttp://www.blogger.com/profile/03641973043388395993noreply@blogger.com0tag:blogger.com,1999:blog-227294511541247262.post-65549275334678270802008-10-08T17:57:00.003+02:002008-10-13T19:14:33.490+02:00Dev - Second projet - WTNMe voici donc en direct pour vous parler en avant première de mon nouveau projet sur DS!<div><br /></div><div>Encore un projet de débutant (comme mon Pong), voici un court aperçu de ce que sera mon futur homebrew pour la Nintendo DS.</div><div><br /></div><div>Tout d'abord, je tien à préciser que j'ai tout fait tout seul : j'ai suivi deux tutos sur Internet, </div><div><a href="http://www.siteduzero.com/tutoriel-3-14189-apprenez-a-programmer-en-c.html">un pour apprendre le C</a>, et un autre pour créer un jeu de plateforme sur le Wiki de la PAlib, que j'utilise (en deux parties, <a href="http://www.palib.info/wikifr/doku.php?id=day13">ici</a> et <a href="http://www.palib.info/wikifr/doku.php?id=day15">ici</a>).</div><div>J'ai entièrement créer le reste du code, en n'utilisant jamais quelque chose que je ne comprenait pas, simplement en le copiant-collant.</div><div>J'ai aussi réalisé les "sprites" (si on peut les appeller ainsi...).</div><div><br /></div><div>Donc voila en gros ce que j'ai fait jusqu'a présent : </div><div><br /></div><div>-Déplacement du héros, saut.</div><div>-Deux types de plateforme, solide et traversable en sautant.</div><div>-Création et récupération de pièces.</div><div>-Création et déplacement d'un ennemi.</div><div>-Gestion des collisions avec les ennemis.</div><div>-Création d'un object "clé" : on peut monter dessus, et l'absorber en appuyant sur le bouton B.</div><div>-Possibilité d'attaquer sous forme de clé (bouton X).</div><div>-Possibilité de recracher la clé(Bas+B).</div><div>-Création de plateformes mouvantes horizontales.</div><div><br /></div><div>Il me reste donc à faire ceci avant d'espérer une première release publique : </div><div><br /></div><div>-Réparation des sprites lors de la mort du héros (ces derniers s'affichent bizarrement).</div><div>-Création d'un ou deux nouveau ennemis (inattaquables sur les côtés ou par le haut).</div><div>-Création d'un vide où le héros peut tomber.</div><div>-Création des plateformes mouvantes verticales.</div><div>-Ajout de la pause.</div><div>-Ajout d'un semblant de menu.</div><div><br /></div><div>Je vous laisserais des screens dès que je pourrais me connecter à mon ftp. Mais n'allez pas imaginez des graphismes de haut-niveau, mon perso c'est juste un rectangle rouge avec un oeil dessus.<br /><br />[EDIT]J'ai réussi à envoyer les screens. J'espère qu'ils vous donnent envie d'y jouer...<br /></div><div><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://delcaplane.societeg.com/Pre-demo1.bmp"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 200px;" src="http://delcaplane.societeg.com/Pre-demo1.bmp" alt="" border="0" /></a><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://delcaplane.societeg.com/Pre-demo2.bmp"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 200px;" src="http://delcaplane.societeg.com/Pre-demo2.bmp" alt="" border="0" /></a><br /></div><div><br /></div>Delcahttp://www.blogger.com/profile/03641973043388395993noreply@blogger.com0tag:blogger.com,1999:blog-227294511541247262.post-50275486972256678262008-10-05T14:13:00.004+02:002008-10-05T15:11:17.289+02:00Dev - Premier projet - Pong<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://delcaplane.societeg.com/SPB3.bmp"></a><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://delcaplane.societeg.com/SPB1.bmp"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 200px;" src="http://delcaplane.societeg.com/SPB1.bmp" border="0" alt="" /></a><br /><div style="text-align: right; "></div><span><span>Pour ce premier article sur le développement de hombrew sur DS, je vais parler de mon premier projet.<br /><br />A l'époque où j'ai débuté ce projet (décembre 2007 si je me souviens bien), je voulais simplement faire un simple pong : deux raquettes, une balle, un truc qui compte les points et basta. Mais au fil du temps, j'ai décidé de changer les sprites : quelques adapatations plus tard, me voila avec un superbe fond venant de Super Mario Bros., et les deux frères qui grimpent aux poteaux pour se renvoyer un boule de feu.</span></span><div><span><span><br />J'ai donc ensuite voulu changer l'affichage des scores. Après quelques réflexion, j'ai décidé de faire tomber des Goombas sur le château. Ça m'a pris du temps, vu qu'a l'époque, je ne maîtrisais pas les cartes de collisions. Mais j'en suis venu à bout, et le résultat me plaisait assez.<br /><br /><br /></span></span></div><div><span class="Apple-style-span" style="color: rgb(0, 0, 238); "><img src="http://delcaplane.societeg.com/SPB3.bmp" border="0" alt="" style="display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; text-align: center; cursor: pointer; width: 200px; " /></span></div><div><span><span><br />Ne restait donc qu'une IA assez faible pour être vaincu, mais assez forte pour faire durer un peu la partie. J'ai décidé de la faire se déplacer uniquement quand la balle est dans la partie droite de l'écran, ce qui limite son temps de réction. Si la balle ne peut pas être rattrapée, elle s'arrête.</span></span></div><div><br /></div><div><span><span><br />Tout content de la direction que prenait mon "jeu", j'ai inclus un nouveau mode de jeu, qui avait pour thème Kirby. Le but de cette sous-parite était de faire rentrer la pierre dans la bouche du Roi Golem, un des premiers boss de Kirby and the Amazing Mirror. Celui-ci ne l'ouvrant pas tout le temps, il faut attendre le moment propice pour appuyer sur le bouton A, afin que Kirby effectue une charge vers l'avant et propulse le rocher droit devant lui. La barre de vie de l'écran supérieur est celle du Roi Golem.<br /><br /></span></span><div><br /></div><div><span class="Apple-style-span" style="color: rgb(0, 0, 238); "><img src="http://delcaplane.societeg.com/KirbySS1.bmp" border="0" alt="" style="display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; text-align: center; cursor: pointer; width: 200px; " /></span></div><div><span><span><span class="Apple-style-span" style="color: rgb(0, 0, 238); "></span><br />A ce moment, je me rends compte que j'ai oublié une des choses les plus importantes dans un jeu : la pause. Je mets en place une boucle, dont on se libère en appuyant sur A pour rependre, ou sur B pour quitter. Miracle, enfin quelque chose qui marche du premier coup!</span></span></div><div><span><span><br />Vient ensuite la dernière partie : le menu principal. La première version permettait de faire son choix entre les deux versions avec le pad, le décor et la photo indiquant la séléction actuelle.J'ai voulu faire un menu tournant. Et c'est là que je me suis planté. Et que j'ai perdu une grande partie de ma motivation pour ce jeu.</span></span></div><div><span><span><br />De temps en temps, il m'arrive de reprendre le code et de le modifier un peu, pour ajouter des petit plus à un des modes de jeu. Mais ce n'est plus ma préoccupation principale.</span></span></div><div><span><span>Voila comment se termine mon premier historique d'un de mes projets, resté au stade de pré-projet, bien que j'ai releasé certaines versions. D'ailleur, <a href="http://delcaplane.societeg.com/PongDS.nds">voici le lien pour télécharger la dernière version en date</a>.</span></span></div><div>Je suis (presque) sur que je continuerais, mais quand?<br /></div><div><span class="Apple-style-span" style=" ;font-family:'Times New Roman';"><div style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 3px; padding-right: 3px; padding-bottom: 3px; padding-left: 3px; width: auto; font: normal normal normal 100%/normal Georgia, serif; text-align: left; "><div style="text-align: right; "><br /></div></div></span></div><div>(Et voila comment ne pas mettre une ligne de code dans une partie consacrée au dev sur DS...)</div></div>Delcahttp://www.blogger.com/profile/03641973043388395993noreply@blogger.com0tag:blogger.com,1999:blog-227294511541247262.post-76751494513200459672008-10-01T18:44:00.001+02:002008-10-05T15:24:40.290+02:00NES - Super Mario Bros.Premier jeu de ma collection NES, voici Super Mario bros., un grand classique.<div><br /></div><div><u>Sortie </u>: 1985</div><div><br /></div><div><u>Editeur :</u> Nintendo</div><div><br /></div><div><u>Nombre de joueur :</u> Deux (chacun son tour)</div><div><br /></div><div><u>Autre :</u> Premier opus de la série Super Mario bros., il marque la première apparition d'ennemis désormais récurrents, tels que les Goombas ou les Bloopers. Il s'est vendu à 40.24 millions d'exemplaires, selon <a href="http://vgchartz.com/games/game.php?id=6455">vgchartz.com</a>.</div><div><br /></div><div>Voici les photos de mon exemplaire, en état moyen pour la boîte : </div><div><br /></div><div><a href="http://www.flickr.com/photos/30994132@N02/2904386945/">http://www.flickr.com/photos/30994132@N02/2904386945/</a><br /></div><div><a href="http://www.flickr.com/photos/30994132@N02/2904391317/">http://www.flickr.com/photos/30994132@N02/2904391317/</a><br /></div><div><a href="http://www.flickr.com/photos/30994132@N02/2905239886/">http://www.flickr.com/photos/30994132@N02/2905239886/</a><br /></div><div><br /></div>Delcahttp://www.blogger.com/profile/03641973043388395993noreply@blogger.com0tag:blogger.com,1999:blog-227294511541247262.post-61544257138498083952008-10-01T18:13:00.001+02:002008-10-05T15:24:12.783+02:00NES!!Rien de mieux pour commencer ma collection!<br />J'ai donc reçu ce jour-ci une NES achetée sur eBay. J'ai eu du mal à trouver de NES en meilleur état pour le même prix. Après, j'ai peut-être loupé quelques affaires, mais bon...<br /><br />En tout cas, <a href="http://www.flickr.com/photos/30994132@N02/?saved=1">voilà quelques photos de la bête</a>.Delcahttp://www.blogger.com/profile/03641973043388395993noreply@blogger.com0tag:blogger.com,1999:blog-227294511541247262.post-29114550909300169542008-10-01T16:39:00.000+02:002008-10-01T16:45:44.125+02:00Premier message - Introduction<span class="Apple-style-span" style="font-family: 'Times New Roman'; "><div style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 3px; padding-right: 3px; padding-bottom: 3px; padding-left: 3px; width: auto; font: normal normal normal 100%/normal Georgia, serif; text-align: left; ">Bonjour à tous!<div><br /></div><div>Alors voilà, ayant récemment décidé de commencer une collection autour de Nintendo et de ses consoles, j'ai décidé de me créer un blog pour faire part de mes découvertes et pour garder une trace de mes activits et acquisitions.</div><div><br /></div><div>De plus, je suis aussi intéressé par le développement sur Nintendo DS, que j'ai commencé à apprendre et à exercer grâce à la <a href="http://www.palib.info/">PAlib</a>, de Mollusk (qui est remercié au passage pour cette magnifique lib). Je me servirais donc aussi de ce blog pour vous faire part de mes projets et de leurs avancements.</div><div><br /></div><div>Bonne visite à tous!</div></div></span>Delcahttp://www.blogger.com/profile/03641973043388395993noreply@blogger.com1