#define USE_TI92PLUS // Produce .9xz File
#define OPTIMIZE_ROM_CALLS // Use ROM Call Optimization
#define SAVE_SCREEN // Save/Restore LCD Contents
#include <tigcclib.h> // Include All Header Files
#include "extgraph.h" //utilise extgraph
#include "sprites.h" //inclue mon fichier ou g stocké mes sprites
#define key_esc _rowread(0x2FF)&0x40 //macro pour pas a avoir a se faire chier a reecrire _rowread(0x2FF)&0x40 mais juste ecrire key_esc
void attend(int); // declare la fonction attend chourrée a thomas nussbaumer je crois en asm
// Main Function
void _main(void)
{
INT_HANDLER save_int_1; //ça c pour detourner le int_handler pour utiliser rowread (obligatiore)
short a;
void *vir0=malloc(3840);
void *vir1=malloc(3840); //allocations de deux ecran virtuels (gris clair + gris foncé)
save_int_1 = GetIntVec (AUTO_INT_1); // ces deux lignes servent a utliser rowread en niv de gris (obligatoire)
SetIntVec (AUTO_INT_1, DUMMY_HANDLER); // pareil
if (!GrayMode(GRAY_ON)) return; // active les gris, pareil que GrayOn();
a=0;
while (!(key_esc))
{
DrawGrayRect2B(0,0,239,127,4,1,vir0,vir1); //dessine un rectangle rempli en gris foncé
[10]GraySprite32_MASK(30,30,32,hawk[a],hawk[a+1],hawk[a+2],hawk[a+2],vir0,vir1);[/10] // affiche le sprite32 en gris et masqué sure l'ecran virtuel
FastCopyScreen(vir0,GetPlane(0)); copie les deux ecrans virtuels a l'ecran de la ti
FastCopyScreen(vir1,GetPlane(1));
a+=3;
if(a==18)a=0;
attend(10); // pour que aille pas trop vite ;)
}
GrayMode(GRAY_OFF); // fin des gris
free(vir0); // libere la mem utilisée pour les ecrans virtuels
free(vir1);
SetIntVec (AUTO_INT_1, save_int_1); // remet l'auto int 1 prealablment detourné
}
// fonction en asm, laisse tomber
asm("attend: movem.l %d0-%d3,-(%sp)
move.w (20,%sp),%d2
move.l #31,%d1
move.l #31,%d3
_wl2_: move.w #1551,%d0
_wl1_: rol.l %d3,%d1
dbra %d0,_wl1_
dbra %d2,_wl2_
movem.l (%sp)+,%d0-%d3
rts" );
et tu déclares le tableau de pointeurs (ton "indirection")
unsigned *hawk[]={&img1,&img2,&img3,&img4,&img5,&img6,&img7,&img8};
et les sprites32 sont prealablement declarés:
unsigned long img1[]={.......};
[edit]Edité par liquid le 17-12-2001 à 15:55:33[/edit]