-
Compteur de contenus
43 -
Inscription
-
Dernière visite
Type de contenu
Profils
Forums
Calendrier
Tout ce qui a été posté par Asthroth
-
Je ne suis pas expert en c, mais je pense que le soucis viens des tes character.h et room.h, qu'en pense tu?
-
-
Merci pour les encouragements je sens qu'avec la gestion du graphisme, je vais en avoir besoins
-
Mise a jour du post avec 2 nouvelles classes et un petit proto pour les mettre en pratique
-
[Resolu][Ndslib]Comment Déclarer Une Méthode Callback Dans Une Classe?
Asthroth a répondu à un(e) sujet de Asthroth dans Développement
Bon, j'ai réussi à résoudre mon soucis, voici la solution: class VirtualKeyboard { public: VirtualKeyboard(); ~VirtualKeyboard(); Keyboard *kbd; static void OnKeyPressed(int key) //méthode callback à chaque appuie sur une "touche" du clavier virtuel { VirtualKeyboard* Obj = reinterpret_cast<VirtualKeyboard*>( key ); return Obj->KeyboardFunc(key); } private: void KeyboardFunc(int key) { if(key > 0) iprintf("%c", key); } }; Et voici le site que j'ai trouvé pour avoir quelques explications un peu plus claires pour moi: http://alp.developpez.com/faq/cpp/?page=fonctions#CLASS_pblm_pointeur_fonction_membre -
[Resolu][Ndslib]Comment Déclarer Une Méthode Callback Dans Une Classe?
Asthroth a posté un sujet dans Développement
Bonjour à tous, j'ai des soucis pour "convertir" un bout de code en une classe et je pense que vous allez pouvoir l'aider étant donné que le problème est un pur problème de syntaxe C++, j'explique. J'ai un code qui fait appel à une callback, donc ca fonctionne très bien en l'état, mais par contre dès que je veux en faire une classe, ca coince. Voici le code "classique": #include <nds.h> #include <stdio.h> void OnKeyPressed(int key) { if(key > 0) iprintf("%c", key); } int main(void) { consoleDemoInit(); Keyboard *kbd = keyboardDemoInit(); kbd->OnKeyPressed = OnKeyPressed; while(1) { char myName[256]; iprintf("What is your name?\n"); scanf("%s", myName); iprintf("\nHello %s", myName); scanKeys(); while(!keysDown())scanKeys(); swiWaitForVBlank(); consoleClear(); } return 0; } Et voici ma classe, en commencant par le header: #ifndef DEF_VIRTUAL_KEYBOARD #define DEF_VIRTUAL_KEYBOARD #include <nds.h> class VirtualKeyboard { public: VirtualKeyboard(); ~VirtualKeyboard(); Keyboard *kbd; void OnKeyPressed(int key); //méthode callback à chaque appuie sur une "touche" du clavier virtuel }; #endif Puis le CPP qui en découle: #include "VirtualKeyboard.h" #include <nds.h> #include <stdio.h> //Constructeur VirtualKeyboard::VirtualKeyboard() { kbd = keyboardDemoInit(); kbd->OnKeyPressed = OnKeyPressed; } //destructeur VirtualKeyboard::~VirtualKeyboard(){} //méthode callback à chaque appuie sur une "touche" du clavier virtuel void VirtualKeyboard::OnKeyPressed(int key) { if(key > 0) iprintf("%c", key); } et voici enfin le message du compilateur: c:/devkitPro/Mes_Projets/ClasseKeyboard/source/VirtualKeyboard.cpp:11:22: error: cannot convert 'VirtualKeyboard::OnKeyPressed' from type 'void (VirtualKeyboard:(int)' to type 'KeyChangeCallback {aka void (*)(int)}' J'ai bien trouvé des explications sur le net, mais mes connaissances en c++ sont trop légères pour me permettre de comprendre ce qu'il faut faire. Je sais que le soucis viens de la déclaration de la callback (OnKeyPressed) mais je n'arrive pas à le résoudre. Auriez vous un petit peu de temps à me consacrer? merci d'avance. -
[Resolu][Ndslib]Probleme Avec Le Clavier Virtuel
Asthroth a répondu à un(e) sujet de Asthroth dans Développement
En fait, j'avais déjà chercher sur le net un fichier a ajouter mais sans succès. Je suis tomber sur un site ou une personne donne un lien pour télécharger une version de no$GBA avec des ROM en plus, j'ai tenter et ca passe Merci en tout cas pour ta réponse car sinon je ne serais pas retourner faire une recherche sur le web, c'est ton poste qui m'a fait penser a aller chercher une version plus recente que la mienne. -
Bonjour à tous, je rencontre un soucis pour la gestion du clavier virtuel de la DS, j'ai essayé les 2 exemple fournit avec devKitPro ainsi qu'un troisième trouvé sur le net, et systématiquement j'ai le message suivant de la par de no$GBA: Sorry, no$GBA needs a copy of the original GBA BIOS (file named gba.rom or no$gba.rom) to execute BIOS sound functions. Bon, je comprend pas vraiement de quoi il parle là, avez vous une idée? Merci d'avance. (je n'ai pas pu tester sur ma DS ne l'ayant pas disposition actuellement).
-
Mise à jour du post afin d'y consigner les avancées toujours asez lente, mais ca avance malgrès tout.
-
Petite mise à jour de ce sujet afin d'y consigner mon avancement. Bonne lecture à tous.
-
[Resolu][Ndslib]Comment Gérer Les Fichiers Grit?
Asthroth a répondu à un(e) sujet de Asthroth dans Développement
Bon, après pas mal d'essais, de recherches et d'arrachage de cheveux, j'ai enfin trouvé comment procéder: Nous allons partir de l'exemple animate_simple livré avec DevkitPro, le but n'est pas ici de valider du code mais de trouver comment utiliser Wingrit, voici comment je m'en suis sortie: Créer un répertoire ou mettre votre projet puis copier coller les fichiers et répertoires de l'exemple animate_simple cela afin de récupérer le code source. ajouter un répertoire include et renommer le sprites et sprites_tmpo par exemple. Vider le répertoire build et suppriemr le fichier .nds, normalement nous sommes dans de bonnes conditions pour tester Wingrit puisque nous avons supprimé les fichiers graphiques (en vidant le build) et supprimer le liens entre le compilateur (enfin grit) et les images PNG (en renommant le répertoire), d'ailleur si vous ouvrez le projet et tenté un make, ca compile pas. Maintenant prenez les images PNG, les ouvrir dans Wingrit pour les convertir avec les options suivantes: Gfx coché (ne rien changer) Meta/Obj: sqr puis 4 pour avoir du 32*32 Pal coché type de fichier*.C et h file coché. Cliquer sur Ok et faire cela pour toutes les images, ce qui vous génère un fichier C et H par image. Mettre les fichiers C dans le répertoire Source et les fichiers H dans le répertoire include, car si vous les mettez dans Build et que vous faites un clear, ils seront supprimé, et c'est pas le but de la manoeuvre. Ouvrir le projet sous DevkitPro puis ajouter le repertoire magique include, vous devriez voir les fichier H, et dans le source y voir les deux fichiers C. Faites Make, et là ca devrait passer. Vous pouvez maintenant tester le NDS, et si vous doutez, changer les images et refaites la manipe, vous verrez que ca marche bien Le fameux fichier Grit est là uniquement pour donner des instructions à Grit pour lui indiquer quoi faire, Wingrit permet justement de l'affranchir de cette étape. -
[Resolu][Ndslib]Comment Gérer Les Fichiers Grit?
Asthroth a répondu à un(e) sujet de Asthroth dans Développement
Bonjour JKilvan, en faite je pensais que certains sujets pourraient interresser d'autres membres, donc en faisant un sujet different cela pourrait faciliter la recherche de solutions pour un problème précis. J'ai déjà un sujet pour mon projet qui sera mis à jour au fur et à mesure de l'avancé de celui-ci (et j'avoue avancer doucement ). Mais je peux faire comme tu me l'as indiqué, cela ne me derange pas le moins du monde. Et sinon, pour mon soucis, pas de d'idée? -
Bonjour à tous, Je suis confronté à un problème concernant la gestion des sprites en ndsLib. Je reprends un exemple livré avec DevKitPro, celui avec les 2 petits sprites se baladant chacun sur un écran, afin de voir comment ça marche. J'en suis au tout début, la génération des fichiers, ceux fait à partir des images au format PNG, et déjà là, ça coince. Dans l'exemple, il y a un fichier sprite.grit qui décrit (il me semble) le format de l'image PNG et ainsi permettre au compilateur de générer les différentes fichiers. Et mon problème et justement de générer ce fameux fichier grit car si je le supprime, le compilateur semble se mettre dans un mode par défaut et ca marche, sauf que les sprites ne sont pas dans le bon format (ceux-ci ne me semble pas être à la bonne taille du coup ca fait un peu n'importe quoi) J'ai bien essayé d'utiliser Wingrit, mais je n'arrive pas à générer un fichier grit et du coup, quel que soit le format que je génère avec cet utilitaire, il n'est pas pris en compte. Donc soit il y a un truc à faire dans l'utilitaire (j'ai à peu pret essayé tous les formats qu'il propose et je n'arrive à rien) soit il y a un truc à paramétrer dans le compilateur (ou le makefile peut être) Si certains on déjà eu à faire cela, toute aide est la bienvenue, merci d'avance
-
[Resolu][Ndslib]Problème Avec Les #include
Asthroth a répondu à un(e) sujet de Asthroth dans Développement
Merci Badablek -
[Resolu][Ndslib]Problème Avec Les #include
Asthroth a répondu à un(e) sujet de Asthroth dans Développement
C'est bon, j'ai trouvé, étourderie de ma part (pourtant j'ai cherché, promis ), il manquant ceci dans l'un de .H: #ifndef DEF_TABDYN #define DEF_TABDYN Du coup, ca marchait moyen Par contre j'ai pas trouvé comment éditer le sujet du post pour marquer Résolu? -
Bonjour a tous, j'ai un soucis avec les #include, en faite si je mets plus de un #include dans mon code, j'ai un ereeeur de compilation, j'explique, je mais ceci: #include <nds.h> #include <stdio.h> #include <vector> #include <time.h> #include "TabDyn.h" Et tout va bien. J'ajoute un #include devant, et du coup il ne trouve plus ma classe. #include <nds.h> #include <stdio.h> #include <vector> #include <time.h> #include "Chrono.h" #include "TabDyn.h" c:/devkitPro/Mes_Projets/TableauDynamique/source/main.cpp: In function 'int main()': c:/devkitPro/Mes_Projets/TableauDynamique/source/main.cpp:37:14: error: 'Perso' was not declared in this scope c:/devkitPro/Mes_Projets/TableauDynamique/source/main.cpp:37:19: error: template argument 1 is invalid c:/devkitPro/Mes_Projets/TableauDynamique/source/main.cpp:37:19: error: template argument 2 is invalid c:/devkitPro/Mes_Projets/TableauDynamique/source/main.cpp:37:27: error: invalid type in declaration before ';' token c:/devkitPro/Mes_Projets/TableauDynamique/source/main.cpp:46:9: error: expected ';' before 'oTempo' c:/devkitPro/Mes_Projets/TableauDynamique/source/main.cpp:47:10: error: request for member 'push_back' in 'oPerso', which is of non-class type 'int' c:/devkitPro/Mes_Projets/TableauDynamique/source/main.cpp:47:20: error: 'oTempo' was not declared in this scope c:/devkitPro/Mes_Projets/TableauDynamique/source/main.cpp:53:43: error: invalid types 'int[int]' for array subscript c:/devkitPro/Mes_Projets/TableauDynamique/source/main.cpp:53:66: error: invalid types 'int[int]' for array subscript c:/devkitPro/Mes_Projets/TableauDynamique/source/main.cpp:53:89: error: invalid types 'int[int]' for array subscript c:/devkitPro/Mes_Projets/TableauDynamique/source/main.cpp:70:24: error: invalid types 'int[int]' for array subscript c:/devkitPro/Mes_Projets/TableauDynamique/source/main.cpp:70:62: error: invalid types 'int[int]' for array subscript c:/devkitPro/Mes_Projets/TableauDynamique/source/main.cpp:73:21: error: invalid types 'int[int]' for array subscript c:/devkitPro/Mes_Projets/TableauDynamique/source/main.cpp:74:25: error: invalid types 'int[int]' for array subscript c:/devkitPro/Mes_Projets/TableauDynamique/source/main.cpp:74:44: error: request for member 'erase' in 'oPerso', which is of non-class type 'int' c:/devkitPro/Mes_Projets/TableauDynamique/source/main.cpp:74:57: error: request for member 'begin' in 'oPerso', which is of non-class type 'int' c:/devkitPro/Mes_Projets/TableauDynamique/source/main.cpp:80:15: error: request for member 'size' in 'oPerso', which is of non-class type 'int' c:/devkitPro/Mes_Projets/TableauDynamique/source/main.cpp:83:40: error: request for member 'size' in 'oPerso', which is of non-class type 'int' make[1]: *** [main.o] Error 1 "make": *** [build] Error 2 > Process Exit Code: 2 > Time Taken: 00:00 Si je le met derrière (comme suit) tout va bien mais du coup c'est la classe qui se trouve (liée) à mon deuxème include qui n'est plus reconnu. Petit complément, Perso est le nom de ma classe dans le header TabDyn.h. #include <nds.h> #include <stdio.h> #include <vector> #include <time.h> #include "TabDyn.h" #include "Chrono.h" J'ai l'impression que mon problème viens du MakeFile, mais je ne suis pas assez coutumié avec lui pour m'en sortir, quelqu'un aurait-il une piste? Merci d'avance. Asthroth
-
Bonjour, mais je n'ai que cela à la maison, c'est ce qui m'a pousser a opté pour elle.
-
Bonjour à tous, je me présente, Asthroth, et j'ai découvers ce fort sympathique forum lors de lesrecherche sur le développement pour DS. Un beau jour je me suis dit "tiens et coment ca marche le dev sur DS?" Ayant pas mal de bouteille dans le dev, et au vue des exemple trouvé ca et là sur le net, je n'ai pas trouvé cela si complique=é que l'idée que je m'en faisait. Et j'ai commencé a m'y interressé et je suis tombé sur votre forum, l'esprit que je me fait du développement avait l'air d'être le même que vos membres. Et donc je me suis inscrit chez vous pour avoir un endroit et je sais que je trouverais une aide en cas de besoin. J'ai commencé par m'interressé à PALib, mais n'arrivant pas vraiment le faire fonctionné (et manquant cruellement de temps, mes emploies du temps étant tres plein) et comme j'ai cru comprendre qu'elle n'était plus maintenau, je opté pour NdsLib. J'ai trouvé dans votre boite à idée une idée (étonnant non) de jeux qui pourrait être sympa, et je me suis lancé. Pour le moment j'en suis essentiellement a me remettre en mémoire du C++ (ca doit bien faire 15 ans j'ai plus tapé une ligne de C, mais comme ca fait au moins aussi longtemps que je pratique le développement d'application, ca va, les automatismes reviennent vites) et j'en suis à reprendre les exemple livré avec DevKitPro et les arrangé selon mes besoins. Voila, je passerais mettre a jour ce post et, si vous le désiré, mettre mes petits prototypes en ligne. En tout ca, une chose est sure, je sens que je vais me trouve parfaitement à l'aise ici Amicalement. Asthroth. Mise à jour du 23/10/2013: Mon premier travail a été de retenir l'environnement de développement, j'ai opté pour ndsLib pour les raisons évoqué plus haut. Puis il m'a fallu trouver un ou des outils pour le graphisme, donc naturellement ce sera photoshop (ayant un peu l'habitude de m'en servir, je vais réapprendre un outil graphique) et pour la partie Ds ce sera Wingrit. Coté code pur, j'ai commencé à me remettre les mains dans le développement C++ en commençant par la création de classes très simple, une pour le compte à rebours (enfin pour le moment en fait plutôt chronomètre) et une pour la gestion du stylet. J'ai également fait un début de classe pour la gestion des personnages du jeu, le but étant surtout de valider la manipulation de tableau dynamique d'objets (chaque élément du tableau étant un objet représentant un personnage). La prochaine étape étant de faire un vrai compte à rebours (ce qui ne devrait pas être difficile), de faire en sorte que ma classe pour le stylet gère les boutons (pareil, c'est assez simple l'ayant déjà faire mais de façon procédurale) et le gros morceau, la gestion de graphisme au sein du code et là, ça va être un peu plus tendu je pense, mais ça devrait passer Mise à jour du 25/10/2013: J'ai donc égrémenté ma classe de timer afin de pouvoir en faire un ecompte à rebours et création d'une classe gérant les boutons, classe très succinte (elle ne fait que détecter l'appui sur un bouton et renvoie lequel) et qui évoluera au fur et à mesure que le besoin s'en fera sentir. Bon, donc maintenant il va afloir s'attaquer sérieusement à la partie graphique, mais également à la sauvegarde des données qui est essentielle pour un jeu. Mise à jour du 30/10/2013: Deux nouvelles classes. Le première me permet de gérer le clavier virtuel, toujours sympa de pouvoir nommer son avatar dans un jeu. La deuxième gère les sauvegardes, enfin pour le moment elle permet juste de créer une sauvegarde en utilisant la SRam de la console. Et pour mettre tout cela en pratique, un petit proto qui vous demande votre nom, le sauvegarde et le relit derrière. Donc pour le moment j'ai a ma disposition une classe pour l'ecran tactile, les boutons, la sauvegarde, le clavier virtuel et le compte à rebours (que je pense refaire car actuellement elle n'utilise pas les IRQ ce qui me semble tout de même un peu plus propre). Bon, bein aller, il me reste le gros morceau, comprendre comment fonctionne les divers graphismes sur une DS, j'ai commencé à m'y mettre un peu et ca à l'air tout de meme un peu ardue, mais bon, ca devrait passer. Mise à jour du 08/11/2013: Trois nouveaux protos me permettant de voir comment gérer un peu un background: * 1er proto: Gestion des "window" sur un background qui permet d'occulter une partie de l'ecran * 2eme proto: Gestion de quelques effets (rotation, scale, scroll) sur le background et cela sur les 2 écrans. * 3eme proto: Gestion des Fade in/out sur le background et cela sur les 2 ecrans, vers le noir et le blanc qui permet de faire des effets de transitions un peu plus sympa que de symplement switcher d'une image à l'autre. Il me reste encore pas mal de zones d'ombres sur ces background, mais je pense que je vais laisser pour le moment car ceci me suffit (du moins je pense) dans un premier temps, suffisent pour ce que j'ai besoin de faire. Prochaines étapes, corriger, suite à des remontées d'Alex, ma classe sur la SRam qui fonctionne sur un élumateur mais pas sur un linker, ce qui est dommage. Et m'attaquer à un second aspect graphique et non des moindre, les tiles et les maps, je sens que je vais encore bien galérer.....
