270

De toute façon, il ne sert à rien de passer au-delà de 15 à 20 FPS, car l'écran bave. 12 à 15 FPS suffisent: voir Duke68k, Ice Hockey 68k, FAT-Engine, etc.
avatarMembre de la TI-Chess Team.
Co-mainteneur de GCC4TI (documentation en ligne de GCC4TI), TIEmu et TILP.
Co-admin de TI-Planet.

271

Je distriburais cette version non achevée comme ça vous me direz quel FPS vous avez.
Parcontre j'attendrais la fin des vacances car là j'ai pris du retard dans le boulot...
Faut que je bosse!! : (

272

Mon hebergereur est en maintenance... mur

273

dtc comme qu'on dit :/
avatarProud to be CAKE©®™


GCC4TI importe qui a problème en Autriche, pour l'UE plus et une encore de correspours nucléaire, ce n'est pas ytre d'instérier. L'état très même contraire, toujours reconstruire un pouvoir une choyer d'aucrée de compris le plus mite de genre, ce n'est pas moins)
Stalin est l'élection de la langie.

274

Vu que lycos en chie je me suis fait une page perso sur Voila:

pour ceux qui veulent tester:
http://site.voila.fr/toto89t/dev/xiaoxiaoshow/DISTRIv0.58.zip

275

J'ai une question pour ceux qui s'y connaissent en ASSEMBLEUR:
L'un des principes de base de mon jeu est que j'affiche tout en vectoriel:
Cela me permet de faire facilement des rotations, des zooms et pleins d'autres effets interessants.
Mais pour cela, pour chaque point que j'utilise je dois faire des calculs (minimes) de changement de base et je me demendais si je gagnerais en vitesse si ces petits calculs qui se font tout le temps etaient programmés en assembleur.

D'ou ma questionsorryur quel type/genre de calcul ou d'operation l'assembleur est plus rapide que le C ??

276

L'assembleur sera toujours plus rapide, du fait que tu pourras toujours optimiser les structures de données et les calculs. Maintenant, il serait peut-être intéressant de ne réécrire en asm que les parties "critiques" du code, celles qui demandent vraiment des optimisations en vitesse.
avatarMon journal de bord <flux rss manuel> asTI68k : WIP </flux>

Le modernisme ne diffère guère de la libre pensée absolue que par sa prétention de demeurer catholique.

277

comme par exemple les operations qui se font à chaque affichage d'ecran...
mais ce ne sont que des operations de base qui se font pleins de fois:
des multiplications, des additions, des puissances...

278

oula oula du calme,

L'assembleur n'est pas "plus rapide" que le C vu que le C ne fait que generer une suite d'instruction assembleur, ce qui, par contre peu accelerer un programme, c'est la façon dont est faite le programme assembleur au final.
Donc l'asm n'est pas plus rapide sur certain calculs que le C, il est juste plus optimisé
(si on est bon en asm, sinon mieux vaus s'abstenir, un bon programmeur C optimisera mieux qu'un mauvais programmeur asm)



edit: correction de frappe de faute
avatarProud to be CAKE©®™


GCC4TI importe qui a problème en Autriche, pour l'UE plus et une encore de correspours nucléaire, ce n'est pas ytre d'instérier. L'état très même contraire, toujours reconstruire un pouvoir une choyer d'aucrée de compris le plus mite de genre, ce n'est pas moins)
Stalin est l'élection de la langie.

279

alors je ne songerais à l'assembleur que quand j'aurais optimisé au maximum en C.
Merci pour les infos!

280

sa n'empeche que tu peut te mettre a l'asm hein smile (ça fait tjrs du bien de comprendre comment fonctionne la machine smile)
avatarProud to be CAKE©®™


GCC4TI importe qui a problème en Autriche, pour l'UE plus et une encore de correspours nucléaire, ce n'est pas ytre d'instérier. L'état très même contraire, toujours reconstruire un pouvoir une choyer d'aucrée de compris le plus mite de genre, ce n'est pas moins)
Stalin est l'élection de la langie.

281

Godzil :
oula oula du calme,

j'aime bien Godzil qui arrive et qui prend tout le monde de haut neutral (En tout cas, c'est l'impression que je ressens.)
avatarMon journal de bord <flux rss manuel> asTI68k : WIP </flux>

Le modernisme ne diffère guère de la libre pensée absolue que par sa prétention de demeurer catholique.

282

Exemple de ralentissement: R_LIGHTGRAY,RECT_FILLED,LightP,DarkP); }L'affichage des barres de vie et d'energie:void aff_infobar2B (short live1d,short live1l,short live2d,short live2l,short mana1d,short mana1l,short mana2d,short mana2l,void*LightP,void*DarkP) {//live1d=niveau de remplissage dark pour la barre de vie à gauche ; mana2l=niveau de remplissage light pour la barre de mana à droite const short lrectwidth=(100-clock_percetage_of_screen)*LCDx/(2*100); const short rectheight=clock_percetage_of_screen*LCDy/(2*100); char temp[JoueurCharMax+1]="";strncat(temp,player[0].name,JoueurCharMax); const unsigned long textlen=JoueurCharMax; //=max(strlen(player[0].name),strlen(player[1].name)); //textlen=min(textlen,(unsigned long)JoueurCharMax); const short xxa=LCDx-textlen*(is89?4:6)-2; const short yya=rectheight+2; GrayDrawStrExt2B(0,yya,temp,A_REPLACE | A_SHADOWED ,is89?F_4x6:F_6x8,LightP,DarkP); temp[0]=0; strncat(temp,player[1].name,JoueurCharMax); GrayDrawStrExt2B(xxa,yya,temp,A_REPLACE | A_SHADOWED ,is89?F_4x6:F_6x8,LightP,DarkP); GrayDrawRect2B(0,0,lrectwidth,rectheight,COLOR_WHITE,RECT_FILLED,LightP,DarkP); GrayDrawRect2B(0,0,lrectwidth,rectheight,COLOR_BLACK,RECT_EMPTY,LightP,DarkP); short rect1lstart=(lrectwidth-2)*live1d/100+1; GrayDrawRect2B(1,1,rect1lstart,rectheight-1,COLOR_DARKGRAY,RECT_FILLED,LightP,DarkP); short xxb=rect1lstart+(lrectwidth-2)*(live1l-live1d)/100; if(live1l>live1d)GrayDrawRect2B(rect1lstart,1,xxb,rectheight-1,COLOR_LIGHTGRAY,RECT_FILLED,LightP,DarkP); const short xxc=LCDx-lrectwidth; GrayDrawRect2B(xxc,0,LCDx-1,rectheight,COLOR_WHITE,RECT_FILLED,LightP,DarkP); GrayDrawRect2B(xxc,0,LCDx-1,rectheight,COLOR_BLACK,RECT_EMPTY,LightP,DarkP); short xxd=LCDx-(lrectwidth-2)*live2d/100; GrayDrawRect2B(xxd,1,LCDx-2,rectheight-1,COLOR_DARKGRAY,RECT_FILLED,LightP,DarkP); short rect2dstart=xxd+1; short xxe=rect2dstart-(lrectwidth-2)*(live2l-live2d)/100; if(live2l>live2d)GrayDrawRect2B(xxe,1,rect2dstart,rectheight-1,COLOR_LIGHTGRAY,RECT_FILLED,LightP,DarkP); const short xxf=textlen*(is89?4:6)+2; const short mrectwidth=lrectwidth-xxf-1; const short xxg=xxf-2+mrectwidth-1; const short yyg=yya+rectheight; GrayDrawRect2B(xxf,yya,xxg,yyg,COLOR_WHITE,RECT_FILLED,LightP,DarkP); GrayDrawRect2B(xxf,yya,xxg,yyg,COLOR_BLACK,RECT_EMPTY,LightP,DarkP); short mrect1lstart=(mrectwidth-2)*mana1d/100+xxf+2; GrayDrawRect2B(xxf+1,rectheight+3,mrect1lstart-1,yyg-1,COLOR_DARKGRAY,RECT_FILLED,LightP,DarkP); short xxh=mrect1lstart+(mrectwidth-2)*(mana1l-mana1d)/100; if(mana1l>mana1d)GrayDrawRect2B(mrect1lstart,rectheight+3,xxh,yyg-1,COLOR_LIGHTGRAY,RECT_FILLED,LightP,DarkP); const short xxi=LCDx-1-xxf; GrayDrawRect2B(xxc,yya,xxi,yyg,COLOR_WHITE,RECT_FILLED,LightP,DarkP); GrayDrawRect2B(xxc,yya,xxi,yyg,COLOR_BLACK,RECT_EMPTY,LightP,DarkP); short xxj=xxc+1+mrectwidth*(100-mana2d)/100-3; GrayDrawRect2B(xxj,yya+1,xxi-1,yyg-1,COLOR_DARKGRAY,RECT_FILLED,LightP,DarkP); short mrect2dstart=xxc+1+(100-mana2l)*mrectwidth/100; if(mana2l>mana2d)GrayDrawRect2B(mrect2dstart-3,yya+1,xxj-1,yyg-1,COLO
J'ai l'impression d'etre maladroit dans ces calculs.
Si jai bien compris les const short ne sont calculés qu'une seule fois?
(et donc je ne perd pas du temps a re-calculer a chaque fois)

Si au premier regard vous voyez un manque de methode, dites le moi!
remarque: si je desactive ces barres de vie et d'energie je gagne +2FPS

LCDx=240 ou 160 suivant la TI
clock_percetage_of_screen=taille de l'espace vide entre les barres pour afficher le TIME LEFT

283

Comment tu calcule tes FPS ?
avatarProud to be CAKE©®™


GCC4TI importe qui a problème en Autriche, pour l'UE plus et une encore de correspours nucléaire, ce n'est pas ytre d'instérier. L'état très même contraire, toujours reconstruire un pouvoir une choyer d'aucrée de compris le plus mite de genre, ce n'est pas moins)
Stalin est l'élection de la langie.

284

bin à chaque frame que j'ai fini d'afficher j'incremente un compteur de 1 et chaque seconde j'affiche le compteur avant de le remettre à zero.

285

Ca au moins, c'est simple happy
avatarL'homme qu'a vu l'homme qu'a vu l'ours, qu'a mangé l'facteur..

286

J'ai voulue me faire une librairie qui contient pleins de fonctions utiles que j'utilise de temps en temps:
J'ai donc créé alib.h j'y ai mis toutes mes fonctions et je l'ai inclus à un de mes programmes (include "alib.h")

Normalement le compilateur prend les fonctions que j'utilise dans ma source, or si ma source est vide:

void main(void) { }

le programme compilé prend quand meme beaucoup de place au final:
j'ai l'impression que tout est chargé meme si je n'utilise rien!!

comment je pourrais faire pour resoudre ce probleme??

287

heu...
tu met les fonctions dans le alib.h ?
mettre du code dans un .h, c'est HORRIBLE !

et si tu inclus ton .h, bah c'est comme si tu mettais les fonctions dans le .c qui inclut le .h ; elles seront donc dans ton exécutable, qu'elles soient utilisées ou non.

si tu veux faire une _vraie_ librairie (bibliothèque, on dit, normalement... mais bon, la mauvaise traduction prend souvent le dessus), il faut :
- que tu fasse un fichier .c par fonction
- que tu compile le tout en un .a (genre option -ar de tigcc me semble)
- que tu fasses un .h dans lequel tu met les prototypes des fonctions
- que tu inclue (#include) le .h qui contient le sprototypes
- que tu ajoute au projet TIGCC ton .a (y'a un icone pour ça me semble)

et là, tu vas pouvoir utliser tes fonctions, et seules celles que tu utilise seront dans ton exécutable
(enfin, quand tu utilisera une fonction venant d'un fichier .c de départ, ça ajoutera à ton exécutable tout ce qu'il y avait dans ce .c ; d'où l'intéret de mettre une fonction par .c, sauf dans le cas où deux focntions sont intimement liées à la limite)
avatarTutorial C (TI-89/92+/v200) - Articles Développement Web (PHP, Javascript, ...)
« What is the sound of Perl? Is it not the sound of a wall that people have stopped banging their heads against? » - Larry Wall

288

AHhh...ouais,d'accord!
Eh bin je crois que grace a toi mon petit jeu va diminuer en taille!
Merci beaucoup!

Au fait, en ce moment j'essaye de trouver du temps pour programmer:
je devrais pas tarder à sortir une beta jouable.En suite je mettrais en pause jusqu'à ce que les concours soit passés...

289

de rien smile
bon courage !
avatarTutorial C (TI-89/92+/v200) - Articles Développement Web (PHP, Javascript, ...)
« What is the sound of Perl? Is it not the sound of a wall that people have stopped banging their heads against? » - Larry Wall

290

² courage
avatarL'homme qu'a vu l'homme qu'a vu l'ours, qu'a mangé l'facteur..

291

Merci : ), du courage je sens que je vais en avoir besoin (car il en reste encore beaucoup du temps avant la fin de l'année... #triste#)

Dans une bibliothèque je peux mettre n'importe quel type de fonction?
exple: une static inline...

292

Je crois que tu ne peux pas static inliner une fonction qui n'est pas dans le même fichier .c

293

Une fonction declaree en "static inline", c'est comme une macro : ca va dans le fichier header.

294

okay.merci.

295

296

Mon avis: tu devrais faire les screenshots en .gif.... grin

Sinon j'ai pas de caltos; le screen a l'air de traduire ton moteur, qui a l'air intéressant. En revanche il est vrai qu'un peu de sprites tout plein mignon ça rendrait 10000 fois mieux...

Courage!
avatarL'homme qu'a vu l'homme qu'a vu l'ours, qu'a mangé l'facteur..

297

"En revanche il est vrai qu'un peu de sprites tout plein mignon ça rendrait 10000 fois mieux..."
Non, l'écran baverais et tout et tout, on ne verrais rien. A mon avis il a fait un excellent choix de se passer de sprites smile

C'est quand même bcp trop lent (4fps sur VTI). A mon avis faudrait au moins doubler ce nombre.

298

Si tu le dis. smile
avatarL'homme qu'a vu l'homme qu'a vu l'ours, qu'a mangé l'facteur..

299

sur une vraie V200 c'est plus rapide: 7-8 FPS

300

Alors j'ai rien dit smile