1

Bonjour,

Je reviens exposer mon problème étant donné que dans le dernier nous n'avons parlé que du problème d'écriture dans un fichier...

Donc pour résumer la situation :

...
La compilation se passe bien, le gpe se lance et j'ai des trucs affiché mais :
Tout ce qui est lié à ma classe ne passe pas et fait planter le programme.
Explication : J'ai une classe Sprite et rien de ce qui est géré par cette classe ne marche...
Pourtant tout l'affichage fonctionne (carte + menu) mais aucun sprite ne s'affiche...
J'ai un main.cpp et un sprite.cpp et j'ai bien compilé avec g++...
...
Et les mêmes sources marchent nickel sur Windows...donc le problème est lié avec la gp2x...

Quand j'ai débuggé avec écriture dans un fichier ça ne m'avait rien donné je crois le dernier printf avant le premier "new Sprite(...)" passe et le premier printf dans le constructeur de ma classe Sprite (au tout début) ne passait pas je crois...

Pourtant, pensant que ça venait pas du code j'ai refait un projet de test vite fait avec une classe dedans et le code marchait...

Enfin je vous donne un lien pour télécharger un .rar dans lequel j'ai mis les sources avec le makefile que j'utilise...
Le code est crade et pas optimisé (surtout la classe) donc n'y tenez pas compte.. J'ai juste fait un peu d'espace pour que ce soit plus lisible et j'ai mis un commentaire pour trouver facilement la première initialisation d'un sprite ou ça plante...

Alors si quelqu'un de courageux pouvait jeter un coup d'oeil (pour ce problème), ça me ferais très plaisir...

Sheep_v0.1b_gp2x.rar

P.S : Il y a aussi un .exe dans le .rar pour voir le début mais je vous déconseille presque de le lancer si vous vous attendez à un bon jeu (ou même un jeu tout court...)...

P.P.S : Oui c'est censé être un jeu de mouton tout pourri je sais.... Mais c'est mon premier proj de jeu depuis longtemps et premier en SDL et pis...j'ai plein de truc à changer....et pis..j'ai pas le temps...et pis....bon d'accord j'ai pas d'excuse...je sors...

2

on dirait un cochon grin pas mla je connais ce principe de jeu c'est toujours simpa mais le mouton va trop lentement par rapport au boules

3

Tout le monde me dit que mon mouton ressemble à un cochon... Tout ça parcequ'il est un peu rose...
En plus c'est pas n'importe quel mouton, c'est un magicien (voir son chapeau)...

Sinon faut que je règle la vitesse mais je trouve ça bien lent comme ça, ça force à bien gérer son turbo...
Ce qui faut que j'améliore, c'est le déplacement des balles en premier lieu...Et l'aléatoire n'est pas aléatoire...
Et que je rajoute un écran d'intro, je change le compteur de vie, j'ajoute la gestion du temps, le game over etc. etc.

Mais bon j'ai encore pas mal de modifs à faire mais ca me saoûle que ça marche pas sur la gp2x parceque sinon je serais super motivé pour le finir...

Surtout que j'ai trop envie de commencer un 'vrai' projet de jeu pour cette console mais je me suis promis pour une fois que mon mouton ne sera pas qu'un test et que je ferais en sorte qu'il soit un peu fini avant de passer à autre chose...
Je commence facilement un projet mais le finir, c'est pas pareil...

Donc voilà j'espère que je capterai bientôt pourquoi ma classe passe pas parceque ça me gave...

4

pk ne le fais tu pas en C au lieu du C++ ?

tu peux tres bien faire ca avec les structures, et c'est aussi rapide.
En plus, je trouve qu'il y a trop de fonctions ne servant a rien, et surtout mal faite grin
avatar
pourquoi la mort ? parce qu'elle nous est si douce, au contraire de la vie :)

5

FagEmul :
En plus, je trouve qu'il y a trop de fonctions ne servant a rien, et surtout mal faite grin

Merci...
Les sources étaient là juste pour mon problème avec ma classe...
Et c'est une vieille version cause perte de data...et en travaux...m'enfin...
merci...
FagEmul :
pk ne le fais tu pas en C au lieu du C++ ?
tu peux tres bien faire ca avec les structures, et c'est aussi rapide.

Oui mais je me suis dit que j'avais jamais fait de vrai proj jeu en C++...
Je me disais que c'était l'occasion...
Enfin c'est pas grave....
Merci....

6

Moi j'ai pas encore ma Gp2x, donc je ne peux pas t'aider pour le code.
Par contre j'ai testé la version Windows et j'ai détecté plusieurs anomalies/bugs:
- La magie apparait des fois dans la zone de droite réservée aux scores. Faut revoir la limite de droite.
- J'ai l'impression que la magie ne s'affiche pas bien puisque on a l'impression que les différents frames sont affichés les uns sur les autres sans effacé le frame précédent (pas évident à expliquer). J'imagine que tu utilise une SDL_Surface pour la magie et que dessus tu y dessine les frames à tour de rôle, puis tu dessine la SDL_Surface sur l'écran. Il faudrait que tu efface ton SDL_Surface avant de dessiner le bon frame dessus, ou peut-être même dessiner la magie directement sur l'écran sans passer par une SDL_Surface intermédiaire.
- Dans les diagonales le mouton va plus vite que dans les horizontales et verticales. Faudrait penser à Pytagore pour réduire la vitesse dans les diagonales.
- Je suppose que quand une balle te touche t'es mort et le mouton clignotte. Le clignottement est bien trop rapide.
- De même pour la magie et le mouton, on n'apprécie pas bien tous les frames des séquences d'animation. C'est domâge vu le nombre de frames que tu as dans les BMP.

Pour le reste, j'imagine que c'est pas des bugs mais plustôt que ce n'est pas fini. La barre rouge elle sert à quoi?
Continue comme ça, c'est prometteur.
Mais pour l'instant je peut rien te dire pour le C++.

7


- La magie apparait des fois dans la zone de droite réservée aux scores. Faut revoir la limite de droite.

Ca vient de mon random qu'est pas correct je crois parce que la limite que je défini est bonne (SCREEN_L - MENU_L - SPRITE_L)...

- J'ai l'impression que la magie ne s'affiche pas bien puisque on a l'impression que les différents frames sont affichés les uns sur les autres sans effacé le frame précédent (pas évident à expliquer). J'imagine que tu utilise une SDL_Surface pour la magie et que dessus tu y dessine les frames à tour de rôle, puis tu dessine la SDL_Surface sur l'écran. Il faudrait que tu efface ton SDL_Surface avant de dessiner le bon frame dessus, ou peut-être même dessiner la magie directement sur l'écran sans passer par une SDL_Surface intermédiaire.


(pas évident à expliquer) -> Non j'ai très bien compris ce que tu voulais dire grin Moi aussi j'ai eu cette impression mais c'est lié à la transparence sur les contours des flammes qui fait cet effet je pense... Parceque le mouton utilise le même principe pour s'animer et n'a pas le même problème...

- Dans les diagonales le mouton va plus vite que dans les horizontales et verticales. Faudrait penser à Pytagore pour réduire la vitesse dans les diagonales.


Merci de l'info...c'est vrai que j'y avais pas pensé... Il faudrait que je change ça...

- Je suppose que quand une balle te touche t'es mort et le mouton clignotte. Le clignottement est bien trop rapide.


Oui c'est laid... Mais j'suis feignant...Au lieu d'utiliser un timer je l'affiche vide une fois sur deux (modulo 2) à chaque cycle donc ça va beaucoup trop vite...
C'est un des NOMBREUX trucs que je doit améliorer

- De même pour la magie et le mouton, on n'apprécie pas bien tous les frames des séquences d'animation. C'est domâge vu le nombre de frames que tu as dans les BMP.


Ah bon je le trouvais bien calibrer comme ça mais je peux changer ma variable speed...je ferai un test...
Il y a plein de truc qui sont modifiable en fait...
En fait la partie sprite est super générique pour gérer plein de cas...
En fait le jeu sera skinnable...On pourra avoir différent graph... Le sprite peut avoir n'importe quelle taille, n'importe quel nombre de frame pour composer son anim etc...

Pour le reste, j'imagine que c'est pas des bugs mais plustôt que ce n'est pas fini. La barre rouge elle sert à quoi?


Euh, c'est la jauge pour le turbo et c'est fonctionnel... (touche espace) grin

Continue comme ça, c'est prometteur.
Mais pour l'instant je peut rien te dire pour le C++.


Ouais je pensais pouvoir vite l'améliorer mais là je régresse plus qu'autre chose parceque j'ai repris tout mon code, j'ai mis au propre certains trucs et...
Je refait toute ma classe en structure en C (au départ je voulais faire plusieurs classes avec héritage et tout (genre sprite animé - sprite animé principal [contrôlé] - sprite fixe) mais bon...
Vu que ça marche pas ma classe sur la gp2x ça me saoûle et ça sert à rien que j'avance le reste...Donc là je passe du temps à tout casser et tout refaire...(remarque c'est pas plus mal d'un certain point de vue parceque j'utilisait pas bien les possiblités 'objet' lié à ma classe....)...résultat ce sera beaucoup plus propre tout en C...
Et pis j'crois que j'suis une guez en C++ j'doit pas avoir la bonne logique parceque je me demande tout le temps ou scinder les traîtement entre ceux propre au jeu (boucle principale) et ceux spécifiques aux sprites (classe)...et ça me pose des problèmes (trop de paramètres à passer aux méthodes ou doublon des variables entre celle privées à ma classe et celle pour contrôler l'objet dans ma boucle principale...)Enfin en gros ce sera mieux en C, je me poserai moins de question... grin
C'est bien mais c'est dur de coder proprement et d'avoir une bonne vision de son projet quand on peut jamais faire des sessions de + de 10 minutes dessus...

Enfin tout tes petits conseils et suggestions vont bien m'aider en tout cas...
Merci à toi et j'espère que j'aurais fini de tout passer en C ce week-end...
Et sinon je posterai peut-être la suite parcequ'il y a de très bon bétâ-testeur içi...
Par contre, PLUS JAMAIS je ne posterai de source pour un problème car les gens cherchent plus à critiquer qu'à aider...

8

faut voir aussi ceux qui codent en C et C++ , et pour ce dernier, doit pas y en avoir des masse. c'est vrai, pourquoi utiliser le C++ pour une chose quis e fait simplement en C ? grin
avatar
pourquoi la mort ? parce qu'elle nous est si douce, au contraire de la vie :)

9

je sait pas si la vanne a été faite mais bon... mieux vaut avoir un problemme avec classe qu'un probléme ridicule.... hum dehors
avatar
My sassy girl/citizen dog/Azumi/Devdas/The blade : Asian movie powwwaaa!!

AMIGA FOREVER

One duck some time may change every thing... Or just make you laugh a lot!!
Thanks Taliaferro thanks Barks

10

FagEmul :
faut voir aussi ceux qui codent en C et C++ , et pour ce dernier, doit pas y en avoir des masse. c'est vrai, pourquoi utiliser le C++ pour une chose quis e fait simplement en C ? grin

Arrête, Gallenza va se repointer ! grin
avatar
Kupee pee

11

Oh non pas de débat C / C++... par pitié grin
Sinon j'ai presque fini de recoder ma classe en C (structure)...et ça confirme que je suis une guez en C++, j'utilise pas bien les possiblités de l'objet etc. parceque là tout est plus simple...
Donc voilà c'est cool, mon code est dix fois plus propre maintenant, ça fait plaisir...
J'espère me "débarasser" de ce petit jeu / test rapidement pour pouvoir commencer bientôt un nouveau projet... et qui sera bien motivant je l'espère...