PDA

Voir la version complète : [NDS][Aide] Petits problèmes ...


Chat-Minou
28/02/2006, 12h20
Bonjour,

Voila, avec un pote on s'est lancé dans la programmation d'un homebrew sur DS avec la PALib et on rencontre quelques difficultés. J'ai donc deux questions principalement :

- Je souhaiterais afficher sur l'écran du haut un sprite assez important en taille (un peu comme ceux des personnages dans le jeu Phoenix Wright). J'ai cru comprendre que le maximum pour un sprite est de 64x64, en lisant les autres topics.
Donc, quelle est la meilleure solution :
1 - Creer plusieurs sprites de taille 64x64 max et les "recoller" à l'écran.
2 - intégrer le personnage sur le background et gérer l'affichage à l'aide des méthodes du background.
3 - Une fonction faite pour ça que j'aurais manqué ???


- J'ai mis récemment à jour la PALib avec la version 0.998b. Il me semble que j'avais une version 0.7 avant, de mémoire. Mais maintenant quand je teste mon homebrew, tout est ultra ralenti. Je suppose donc que certaines fonctions que j'utilise ont été mises à jour. Ma question est un peu vague mais sachant que j'utilise les fonctions basiques permettant l'affichage d'un background, de sprites et la gestion du stylet, quelqu'un aurait-il une idée de ce qui serait à l'origine de ce ralentissement ?


Merci par avance pour vos réponses ... :)

thoduv
28/02/2006, 12h34
Moi je pense qu'un background dédié au personnage pourrait faire l'affaire. Mais si tu veux utiliser des sprites il te faudra effectivement "coller" plusieurs sprites de 64x64.

Pour ton ralentissement : tu utilise quel matos pour tester ? Emulateur ?

Chat-Minou
28/02/2006, 12h38
Non, je teste le tout sur ma DS.

Mollusk
28/02/2006, 12h47
Je ne a priori pas de raison pour que ca soit ralenti sur DS :S tu crois que tu pourrais m'envoyer une copie de ton template + une rom pour que je vois ce que ca fait chez moi ?

D'autant plus que je n'ai pas trop touché les fonctions de base (j'ai ajouté d'autres fonctions pour les remplacer parfois), donc... :/

Sinon, comme l'a dit thoduv les 2 sont possibles. Tout dépend en fait de ce que tu auras en plus à l'écran :
- Si tu affiches les persos sur l'écran du haut, et qu'à part ca tu as juste un fond (belle image genre phoenix right et tout), je te conseillerais d'utiliser des sprites, ca économisera la mémoire pour les fonds et le nombre de fond, tu pourras alors utiliser 1 ou 2 fonds pour le décor, et un pour le texte et tout... Mais ca pompera pas mal de mémoire sprites, donc c'est en supposant que tu n'en aies pas trop besoin
- Si tu affiches du 'jeu' sur l'écran du haut, avec pleins de sprites et tout, tu risques d'avoir besoin d'économiser la mémoire des sprites, et donc utilise un fond par perso (si tu veux en avoir 2 en meme temps), ou un seul fond que tu mets à jour pour changer de perso.

J'avais fait un truc similaire dans un projet, j'avais opté pour des sprites, avec des petits bouts de sprites en plus pour la bouche et tout histoire de pouvoir animer tout ca sans avoir à recopier toute l'image...

Chat-Minou
28/02/2006, 13h29
Je ne peux rien t'envoyer pour le moment parce que je suis au boulot et que tout est chez moi. Je vais quand même y regarder de plus près et si je galère trop, je t'enverrai tout ce qu'il faut.


Pour les personnages sur l'écran du haut, chacun va avoir des animations différentes mais pas d'animations précises comme le mouvement de la bouche. C'est plutôt tout le personnage qui va prendre une pose spéciale par exemple. Le background sera toujours le même à priori donc pas de changement de décor/lieu (du moins dans un premier temps). Par contre, il y aura effectivement du "jeu" sur cet écran là, donc quelques sprites à afficher (pas plus de 10 au total).

Par rapport aux exemples que tu m'as cité ci-dessus, il faudrait que je choisisse plutôt la deuxième solution (1 fond que je met à jour suivant les expressions du perso ou quand je change de perso), non?

Mollusk
28/02/2006, 13h31
Si effectivement tu dois changer toute l'image, ca sera peut-etre plus simple avec un fond, ouais.

Chat-Minou
28/02/2006, 13h34
Merci beaucoup pour toutes ces réponses claires et rapides :)