Vous n'êtes pas identifié.
une nouvelle version de virtual Boxe sort bientot ! il ne me reste juste à finir deux trois truc et de le tester.
mais j'ai un probeme de taille. Mes connaissance en C étant limitées, je ne sais pas comment mettre toutes les images (36 images en tout à cause du grayscale qui necessite deux images pour une ) dans un fichier *.dat et que je puisse y acceder rapidement et simplement dans mon jeu.
Le jeu atteint pour l'instant 54316KO. La limites fatidique approche et cela m'empeche de faire tout ce que je voulais faire, comme les options, rajouter des coups ...
Si quelqu'un pouvait m'apporter son aide, je lui en serait très reconnaissant !
@+
Hors ligne
Moi je peux pas aider mais j'ai quand même une question: pourquoi on est limité 64 Ko ? et sinon, est-ce qu'il est possible de créer un jeu en *.exe qui renverais à un autre *.exe comme en basic quand on utilise 2 programme pour une seule application. Parce que ça permettrais d'avoir des jeux de plus grosse taille. ça existe bien sur ordinateur alors pourquoi pas sur la graph 100.
PS: on sait jamais des fois que personnes n'y ai pensé avant moi, mais j'en doute.
Hors ligne
->Casioworld : juste savoir , pr les bmps t'a mi d sprite ou t'a fe plein de bmp code ??? parce que si t'a mi ke d bmp code ca prend plu de place : dc tente les sprites
e sinon BON COURAGE !
Hors ligne
euh bébert, ça dépend comment tu fais un sprite et la manière dont tu l'affiches. Un sprite de 16*16 pix/pix prend 256bits tandis que le même codé mot/mot en fait 16 seulement!
En plus en grayscale, une image ngb prend 2Ko! C'est vraiment rien du tout! ET puis C-W t'as largement la marge: 10Ko c'est très très large!
Pour golbatt:
on est limité à 64Ko pour la simple et mauvaise raison que l'on a que 256Ko de ram, si ton prog dépasse les 64Ko il n'est pas accepté par Rom dos qui va manquer de mémoire, enfin je crois que c ça en gros.
Pour les différents exe, c pas aussi simple qu'en basic! Il faut stocker les variables autrepart, comme dans la ram ou dans un fichier basic pour les re-loader plus tard.
allez @+
Hors ligne
10 KO tu en es vraiment sur ??? je vais continuer alors ...
:!: :!: :!: MAIS UNE VERSION TEST EST DEJA DISPONIBLE SUR MON SITE DANS LA PAGE DE NEWS :!: :!: :!:
ps: ne mettez pas lien direct, je n'aime pas parceque je me vais chier à faire un site et mettre un lien reduit mon boulot à neant. merci de votre compréhension
Hors ligne
Faite gaffe la g100+ elle m po tro les plus de 50ko.....
Hors ligne
c'est bien ce qui m'inquiete. et c'est pourquoi je propose une version de test pour savoir si elle fonctionne sur toute les graph100.
si lle fonctionne pas sur G100+ je pourrais eventuellement diminuer meme si je n'en suis pas vraiment sur.
voila et n'oublie pas de me dire ce que vous pensez du jeu :!:
Hors ligne
:ptdr: ma g100+ a très bien supporté les 59Ko! C'est juste les 63Ko qu'elle a pas tro voulu mais 59Ko passaient comme une lettre à la poste!
Maintenant je suis retombé à 52 avec leds maps amléatoires mais franchement faut pas s'inquiéter pour la taille à mon avis!
Hors ligne
ok je prends note !!! et sinon vous avez essayé ou bien sa interesse personne mon jeu :?:
Hors ligne
C'est bizzarre, g un abnormal program termination sur ma g100+ alors que le prog ne fait que 54Ko... :?
Encore plus bizarre, quand je le recompile il fait 59Ko!! pourtant TC est très bien réglé.
Enfin bon j'ai optimisé le jeu et il ne fait plus que 58Ko. Casioworld Réfléchis un peu!!! Y'a une Tonne de trucs redondants que tu aurais pu optimiser, dans 5min je vous fais un post avec ce que g changé.
Mais bon là g réussi à le lancer, et g trouvé qu'il était très très bien, mais tu devrais le ralentir un peu bcp bcp
Hors ligne
et j'oubliais un truc important pour ceux qui comme moi ont une g100+:
http://www.ifrance.com/fmw-productions/VB2.EXE
Bon test!
Hors ligne
Bon voici mon rapport de source
ce que j'ai changé:
ça:
//à mettre avant main unsigned char country[][15] = { "AMERICAIN","AUTRICHIEN","CHINOIS","ALLEMAND", "FRANCAIS","THAILANDAIS","ANGLAIS","AMERICAIN", "INCONNU" }; unsigned char names[][15] = { "BRYAN LEED","LUTZ IRMAN","FINAL ROUND"," HANZ WURZ", "FRANCK MILLET","MR ROCK","BJ STRIKE","MIKE TYSON","THUNDERBOLT" }; //le test du mode carriere disp_bmp(tournament1_1,0);disp_bmp(tournament1_2,2); if(round<=3) drawchiffre(4,13,round-1); else if(round>=4&&round<=6) drawchiffre(4,13,round-4); else if(round>=7&&round<=9) drawchiffre(4,13,round-7); print_abc(59,23,country[round-1]); print_abc(53,14,names [round-1]); if ( round==1 ) { enleve=5; energie=3; attente=300; nb_aleatoire=8; horloge=99; } if ( round==2 ) { enleve=5; energie=5; attente=250; nb_aleatoire=8; horloge=99; } if ( round==3 ) { enleve=5; energie=7; attente=200; nb_aleatoire=7; horloge=99; } if ( round==4 ) { enleve=4; energie=9; attente=200; nb_aleatoire=7; horloge=89; } if ( round==5 ) { enleve=4; energie=11; attente=150; nb_aleatoire=6; horloge=89; } if ( round==6 ) { enleve=3; energie=13; attente=150; nb_aleatoire=6; horloge=89; } if ( round==7 ) { enleve=3; energie=15; attente=100; nb_aleatoire=5; horloge=79; } if ( round==8 ) { enleve=3; energie=17; attente=100; nb_aleatoire=5; horloge=79; } if ( round==9 ) { enleve=2; energie=19; attente=50; nb_aleatoire=4; horloge=79; }
au lieu d'un truc encore 4 fois plus gros que ça! (je le mettrai pas c bcp trop gros)
ensuite ces routines:
void drawpunch(int x, int y, int nb) {int E,F; for(E=0;E<7;E++){ for(F=0;F<6;F++){ if(punch[nb][F][E]==2) black_pixel(x+E,y+F);}}}; void drawwarning(int x, int y) {int E,F; for(E=0;E<56;E++){ for(F=0;F<6;F++){ if(warning[0][F][E]==1) black_pixel(x+E,y+F); if(warning[0][F][E]==2) gray_pixel(x+E,y+F);}}}; void drawchiffre(int x, int y, int nb) {int E,F; for(E=0;E<4;E++){ for(F=0;F<5;F++){ if(chiffre[nb][F][E]==1) black_pixel(x+E,y+F); if(chiffre[nb][F][E]==2) gray_pixel(x+E,y+F);}}}; void drawpuissance(int x, int y) {int E,F; for(E=0;E<8;E++){ for(F=0;F<5;F++){ if(puissance[0][F][E]==1) black_pixel(x+E,y+F); if(puissance[0][F][E]==2) gray_pixel(x+E,y+F);}}};
un poil trop lourd n'est-ce pas?
voila qui est mieux:
void drawpunch(unsigned char x, unsigned char y, unsigned char nb) { unsigned char E,F; for(E=0;E<7;E++) for(F=0;F<6;F++) gpixel(x+E,y+F,punch[nb][F][E]); } void drawwarning(unsigned char x, unsigned char y) { unsigned char E,F; char color; for(E=0;E<56;E++) for(F=0;F<6;F++) { color=warning[0][F][E]; if(color!=0) gpixel(x+E,y+F,color); } } void drawchiffre(unsigned char x, unsigned char y, unsigned char nb) { unsigned char E,F; char color; for(E=0;E<4;E++) for(F=0;F<5;F++) { color=chiffre[nb][F][E]; if(color!=0) gpixel(x+E,y+F,color); } } void drawpuissance(unsigned char x, unsigned char y) { unsigned char E,F; char color; for(E=0;E<8;E++) for(F=0;F<5;F++) { color=puissance[0][F][E]; if(color!=0) gpixel(x+E,y+F,color); } }
Et au lieu de:
void emptybuf( void ) { while (bioskey(1)) getch(); }
ça:
#define emptybuf() while(bioskey(1)) getch();
en fait g trouvé que ça valait pas la peine de faire une fonction juste pour ça
g aussi remarqué des trucs, par exemple dans la fonction wait, tu as des types long, ce qui prend bcp de place! En regardant la ft main de ton prog
g remarqué que tu n'utilisais que très petits nombres de l'ordre du uchar. En les multipliant par 100 on tape dans les u_int, alors pourquoi mettre des long qui prennent plus de place?
je l'ai aussi changé.
J'ai aussi trouvé des trucs encombrants que j'ai réduits:
ça par exemple:
void aff_vie(int i,int j) { ghline (14,i,1,2); ghline (13,i,2,2); ghline (12,i,3,2); ghline (11,i,4,2); ghline (j,113,1,2); ghline (j,114,2,2); ghline (j,115,3,2); ghline (j,116,4,2); }
je l'ai remplacé par ça:
void aff_vie( int i, int j ) { int c; for(c=1;c<=4;c++) { ghline(15-c,i,c,2); ghline(j,117-c,c,2); } }
ce qui prend un peu moins de place!
Et je crois que c tout si ma mémoire est bonne!
Plus qu'à ralentir le jeu et ce sera parfait casioworld!
Bon courage!
++
Hors ligne
CasioWorld ? moi ton jeu m'interresse !!! alor si la version ke t'a publie e plu pousse ke la beta di le moi
e bonne continuation !
Hors ligne
le jeu etait presque fini, bon bah ... au boulot !!!
Hors ligne
pour ton truc sur le mode carriere, ca ne fait pas ce que ca fait à l'origine.
Tous les trois match, on rentre dans un nouveau tournois. mais en faite c'est stupide mon truc, je vais refaire deux trois truc et surtout supprimé 4 images qui ne servent à rien.
pour les optimisations, je n'avais pas cherché à optimiser mon prog mais je te remercie pour avoir fait mon boulot à ma place.
Hors ligne
...et comme me le disaient L@rk et 2072, FAIS DES ALINEAS et ECLAIRCIS ton code! Y'a des endroits c'est vraiment tout à la suite et c'est vraiment illisible! ça m donnait pas trop envie de lire la source si tu veux mon avis! En plus ton jeu sera mieux fini en l'optimisant de cette sorte
Hors ligne
lol...t'as posté pdt que je postais...
donc je réponds au post précédent:
C T vital d'optimiser le jeu car sinon je ne pouvais pas le lancer! Et aussi supprime la routine drawPict qui ne sert strictement à rien dans ton prog.
Hors ligne
une nouvelle version de 50204 octets :!: j'espere que celle ci marchera.
http://membres.lycos.fr/casioworldpage/vbtest.zip
Hors ligne
a march po ton lien
Hors ligne
lien non valide car bug percu au dernier moment :oops:
au fait j'ai rien compris à truc de wait donc j'ai pas modifié :!:
Hors ligne
bebert on a posté en meme temps !
mais maintenant le bug à disparu ! alors jouez et donnez moi vos avis !
Hors ligne
Ben c très simple!
ça:
void wait( long t ) { long i; for (i=0; i<=t*100;i++); }
devient:
void wait( unsigned int t ) { unsigned int i; for (i=0; i<=t*100;i++); }
tant que t*100<=65532
sinon faut remettre comme avant car tu auras dépassé la taille du u_int(16bits)
Hors ligne
Je sais, j'suis un peu à la bourre..
Mais, bon, je peux toujours te proposer une petite amélioration de code.
// avant main() int valeurs[5][9]= { 5,5,5,4,4,3,3,3,2, 3,5,7,9,11,13,15,17,19, 300,250,200,200,150,150,100,50, 8,8,7,7,6,6,5,5,4, 99,99,99,89,89,89,79,79,79}; // dans la fonction main() // au lieu de "if ( round==1 ) ... // if ( round==2 ) ... // if ( round==3 ) ... " enleve=valeurs[0][round-1]; energie=valeurs[1][round-1]; attente=valeurs[2][round-1]; nb_aleatoire=valeurs[3][round-1]; horloge=valeurs[4][round-1];
Ctout , @+
Hors ligne
avec les amélioration de casiomax, je n'avais pas remarqué qu'il avait oublié un truc qui devait s'afficher dans le mode carriere: les aptitude pour chaque adversaire.
vous pouvez téécharger une version sans bug:
http://membres.lycos.fr/casioworldpage/vbtest.zip
swiffer>> je prends note.
finalement ca a du bon de mettre en ligne ses sources !!! c'est vraiment pas compliqué ce que vous prposer, c'est meme enfantin à chaque fois, mais je ne pense jamais à optimiser.
@+
ps: je n'ai eu que des critique sur mes sources, quelqu'un aurait-il joué au jeu :?: pourrais je avoir son avis :?:
Hors ligne
bah oui mais pense à regrouper tes données sous forme de tableaux! ça simplifie énormément les choses! après tu te trouves un chtit algo pour convertir le numéro du round aux valeurs correspondantes, bref vrément pas compliqué! pense aussi comme je t'ai dit de modifier les types de données, par exemple au lieu de mettre des ints, mets des unsigned char ou des char! un int va jusqu'à 65532, t'as pas besoin de ces valeurs codées sur 16bits! utilise les chars qui vont jusqu'à 127 et qui sont codés sur 8 bits seulement donc gain de place!
Hors ligne