Link Le 11/01/2004 à 19:29 je mieux pour convertir ton nombre en chaîne , c'est le ROM_CALL sprintf qui devraît t'être pas mal utile... le seul inconvénient, c'est qu'il faut que tu prévois un espace assez grand...

Maintenant j'ai la flemme de garder une signature à jour sur ce site. Je n'ai même plus ma chaîne Exec sous la main.
C'est à mon avis inutile de gérer le cas particulier où le sprite est à une abscisse multiple de 8, parce que de toute façon, les autres cas seront plus lents à gérer, donc tu seras obligé de te baser dessus pour régler la vitesse de ton jeu si tu veux qu'il soit fluide.

« Quand le dernier arbre sera abattu, la dernière rivière empoisonnée, le dernier poisson capturé, alors vous découvrirez que l'argent ne se mange pas
. »
t'as besoin de 4 coordonnées, codées chacune sur un octet. Ces 4 octets peuvent être considérés colmme un longint (compris entre $0 et $FFFFFFFF) et non comme 4 octets séparés. Et on a $ABCDEFGH = $AB * $1000000 + $CD * 10000 + EF * $100 + GH

<<< Kernel Extremis©®™ >>> et Inventeur de la différence administratif/judiciaire ! (©Yoshi Noir)
<Vertyos> un poil plus mais elle suce bien quand même la mienne ^^
<Sabrina`> tinkiete flan c juste qu'ils sont jaloux que je te trouve aussi appétissant
random est une macro C, tu ne peux pas l'utiliser en ASM.
Il faut que tu utilises la fonction rand de TIGCCLIB, qui te retournera un nombre entre 0 et 32767, et que tu utilises cette valeur aléatoire pour obtenir ton nombre.

« Quand le dernier arbre sera abattu, la dernière rivière empoisonnée, le dernier poisson capturé, alors vous découvrirez que l'argent ne se mange pas
. »
BiHi Le 25/01/2004 à 15:02 Si tu regardes la doc tu peux voir que random est une macro. Donc tu ne peux pas l'appeller vu qu'elle n'est pas dans tigcclib.
Donc il faut que tu ailles dans les headers, que tu regardes le code de la macro et que tu le copie en ASM.
Edit: crosspost

;)
Si tu compiles avec TIGCC, tigcclib.a est automatiquement linké avec ton programme, donc tu n'auras rien besoin d'inclure.
Sinon, j'ai peut-être mal compris, mais tu ne peux pas copier le code C de la macro, il faut que tu réécrives un code équivalent en ASM. Enfin, la macro fai une ligne, donc ça devrait être simple... Au fait, pour info : diviser par 32768 <=> décaler de 15 bits vers la droite (ou bien swap + 1 rol)

« Quand le dernier arbre sera abattu, la dernière rivière empoisonnée, le dernier poisson capturé, alors vous découvrirez que l'argent ne se mange pas
. »
mulu.w #2,d0 est une instruction du 68000.
En assembleur, toute instruction que tu tapes correspond à une instruction du processeur.

« Quand le dernier arbre sera abattu, la dernière rivière empoisonnée, le dernier poisson capturé, alors vous découvrirez que l'argent ne se mange pas
. »
Dans ce cas, il faut que x soit constant au moment de la compilation.
Donc tu peux utiliser equ pour définir x.
Mais bon, tu n'es pas obligé de recopier tel quel le "code" Kevin. D'ailleurs ce n'est pas du code, c'est juste le principe.

« Quand le dernier arbre sera abattu, la dernière rivière empoisonnée, le dernier poisson capturé, alors vous découvrirez que l'argent ne se mange pas
. »
Si tu veux des nombres aléatoires entre 0 et 123-1=122, tu marques mulu #2*123,d0, ou tout simplement mulu #246,d0, ça revient au même.
la syntaxe move.s -(an),(an)+ n'existe pas
c'est soit move.s -(an),-(an), soit move.s (an)+,(an)+, tu peux regarder dans le 68k guide
la méthode, ça serait de faire lea -3840(a7),a7, puis des move.l (a0)+,(a7)+, ou qqc comme ça
pour le reste, je connais pas la fonction rand, donc je peux pas dire. Essaie de remplacer la fonction rand par moveq #1,d0:rts pour voir si c'est ça qui fait planter

<<< Kernel Extremis©®™ >>> et Inventeur de la différence administratif/judiciaire ! (©Yoshi Noir)
<Vertyos> un poil plus mais elle suce bien quand même la mienne ^^
<Sabrina`> tinkiete flan c juste qu'ils sont jaloux que je te trouve aussi appétissant