swäl89 Le 12/05/2002 à 19:55Edité par yAro le 13/05/2002 à 18:07 je précise que je n'ai pas copié sur l'exemple, mais tt refait.
Sinon, pr ma source c'est du gros bordel, je vous la met:
---------------------
#define OPTIMIZE_ROM_CALLS // Use ROM Call Optimization
#define SAVE_SCREEN // Save/Restore LCD Contents
#include <tigcclib.h> // Include All Header Files
short _ti89; // Produce .89Z File
static unsigned char miss1[]={0xFE,0xD5,0xAB,0xFE,0x0,0x0,0x0,0x0};
static unsigned char miss2[]={0xFE,0xAB,0xD5,0xFE,0x0,0x0,0x0,0x0};
static unsigned short av1[]={0x3F00,0xF1E0,0x2500,0x3F00,0x1180,0x1FC0,0x3FF8,0x6B37,0x6B37,0x3FF8,0x1FC0,0x1180,0x3F00,0x2500,0xF1E0,0x3F00};
static unsigned short av2[]={0x3F00,0xCEE0,0x3B00,0x2100,0x1E80,0x1EC0,0x3038,0x5FCF,0x5FCF,0x3038,0x1EC0,0x1E80,0x2100,0x3B00,0xCEE0,0x3F00};
static unsigned char enn1[]={0xF,0x36,0x6A,0xD4,0xD4,0x6A,0x36,0xF};
static unsigned char enn2[]={0xF,0x3A,0x56,0xAC,0xAC,0x56,0x3A,0xF};
INT_HANDLER save_int_1;
int eh;
int ev;
int dir;
int pv;
int quitter;
int loop;
int aff[20]={0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
int missv[20]={0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
int missh[20]={0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
int wait=0;
int ph=4;
int delay=5;
int style=1;
int tirnum;
SCR_RECT screen_area={{0,0,159,99}};
void spenn()
{
Sprite8(eh,ev,8,enn1,GetPlane(DARK_PLANE),SPRT_XOR);
Sprite8(eh,ev,8,enn2,GetPlane(LIGHT_PLANE),SPRT_XOR);
}
void enn()
{
if(dir==1 && ev >= 0)
{
spenn();
ev=ev-1;
spenn();
}
if(dir==1 && ev == 0)
{
dir=0;
}
if(dir==0 && ev <= 90)
{
spenn();
ev=ev+1;
spenn();
}
if(dir==0 && ev == 90)
{
dir=1;
}
}
void intro()
{
ClrScr();
for(loop=0;loop<=4;loop+=2)
DrawClipRect(MakeWinRect(loop,loop,159-loop,99-loop),&screen_area,A_NORMAL);
FontSetSys(F_8x10);
DrawStrXY((LCD_WIDTH-DrawStrWidth("*DESTROY DEMO*", F_8x10))/2, 20, "*DESTROY DEMO*", A_NORMAL);
FontSetSys(F_6x8);
DrawStrXY((LCD_WIDTH-DrawStrWidth("Par Luc VAUVILLIER", F_6x8))/2, 43, "Par Luc VAUVILLIER", A_NORMAL);
FontSetSys(F_4x6);
DrawStrXY((LCD_WIDTH-DrawStrWidth("luc.vauvillier@freesbee.fr", F_4x6))/2, 59, "luc.vauvillier@freesbee.fr", A_NORMAL);
DrawStrXY((LCD_WIDTH-DrawStrWidth("http://ti-team.vvlr.com", F_4x6))/2, 69, "http://ti-team.vvlr.com", A_NORMAL);
DrawStrXY((LCD_WIDTH-DrawStrWidth("Compilé avec TIGCC le 1/04/2001", F_4x6))/2, 79, "Compilé avec TIGCC le 1/04/2001", A_NORMAL);
ngetchx();
ClrScr();
for(loop=1;loop<=120;loop+=2)
DrawClipEllipse(80,50,loop,loop,&screen_area,1);
}
void fond()
{
SetPlane(DARK_PLANE);
ClrScr();
SetPlane(LIGHT_PLANE);
ClrScr();
for(loop=0;loop<=160;loop+=1)
{
DrawPix(loop,random(100),A_XOR);
DrawPix(loop,random(100),A_XOR);
DrawPix(loop,random(100),A_XOR);
DrawPix(loop,random(100),A_XOR);
}
}
void sprite()
{
Sprite16(ph,pv,16,av1,GetPlane(DARK_PLANE),SPRT_XOR);
Sprite16(ph,pv,16,av2,GetPlane(LIGHT_PLANE),SPRT_XOR);
}
void tir()
{
for (loop=0;loop!=20;loop++)
{
if (style==1)
{
if (aff[loop]==1)
{
if (missh[loop]!=ph+16)
{
Sprite8(missh[loop],missv[loop],8,miss1,GetPlane(DARK_PLANE),SPRT_XOR);
Sprite8(missh[loop],missv[loop],8,miss2,GetPlane(LIGHT_PLANE),SPRT_XOR);
}
missh[loop]=missh[loop]+3;
Sprite8(missh[loop],missv[loop],8,miss1,GetPlane(DARK_PLANE),SPRT_XOR);
Sprite8(missh[loop],missv[loop],8,miss2,GetPlane(LIGHT_PLANE),SPRT_XOR);
}
if (missh[loop]>160)
{
aff[loop]=0;
}
}
if (style==2)
{
if (aff[loop]==1)
{
if (missh[loop]!=ph+16)
{
Sprite8(missh[loop],missv[loop],8,miss1,GetPlane(DARK_PLANE),SPRT_XOR);
Sprite8(missh[loop],missv[loop],8,miss2,GetPlane(LIGHT_PLANE),SPRT_XOR);
Sprite8(missh[loop],missv[loop]+9,8,miss1,GetPlane(DARK_PLANE),SPRT_XOR);
Sprite8(missh[loop],missv[loop]+9,8,miss2,GetPlane(LIGHT_PLANE),SPRT_XOR);
}
missh[loop]=missh[loop]+3;
Sprite8(missh[loop],missv[loop],8,miss1,GetPlane(DARK_PLANE),SPRT_XOR);
Sprite8(missh[loop],missv[loop],8,miss2,GetPlane(LIGHT_PLANE),SPRT_XOR);
Sprite8(missh[loop],missv[loop]+9,8,miss1,GetPlane(DARK_PLANE),SPRT_XOR);
Sprite8(missh[loop],missv[loop]+9,8,miss2,GetPlane(LIGHT_PLANE),SPRT_XOR);
}
if (missh[loop]>160)
{
aff[loop]=0;
}
}
}
}
void _main(void)
{
dir=1;
ph=4;
ev=50;
eh=150;
style=1;
quitter=0;
pv=50;
wait=0;
intro();
save_int_1 = GetIntVec(AUTO_INT_1);
SetIntVec(AUTO_INT_1, DUMMY_HANDLER);
GrayMode(GRAY_ON);
SetPlane(DARK_PLANE);
ClrScr();
SetPlane(LIGHT_PLANE);
fond();
sprite();
spenn();
do
{
SetPlane(DARK_PLANE);
enn();
for (loop=0;loop!=(2000);loop++){}
tir();
if(wait!=0){wait=wait+1;}
if(wait>10)
{
wait=0;
}
tirnum=0;
for (loop=0;loop!=20;loop++)
{
if(aff[loop]==1)
{
tirnum=tirnum+1;
}
}
if(_rowread(0x7E)&0x1 && pv>0) //Haut
{
sprite();
pv=pv-2;
sprite();
}
if(_rowread(0x7E)&0x4 && pv<84) //Bas
{
sprite();
pv=pv+2;
sprite();
}
if(_rowread(0x7E)&0x8 && ph<35) //Droite
{
sprite();
ph=ph+2;
sprite();
}
if(_rowread(0x7E)&0x2 && ph>0) //Gauche
{
sprite();
ph=ph-2;
sprite();
}
if(_rowread(0x7E)&0x10 && wait==0) //2nd
{
for (loop=0;loop!=20;loop++)
{
if (aff[loop]==0)
{
aff[loop]=1;
if (style==1)
{missv[loop]=pv+6;}
if (style==2)
{missv[loop]=pv+2;}
missh[loop]=ph+16;
goto sort;
}
}
sort:
wait=1;
}
if(_rowread(0x5F)&0x80&&tirnum==0) //F1
{
style=1;
}
if(_rowread(0x6F)&0x80&&tirnum==0) //F2
{
style=2;
}
if(_rowread(0x3F)&0x1) // Esc
{
quitter = 1;
}
}while(quitter != 1);
GrayMode(GRAY_OFF);
SetIntVec(AUTO_INT_1, save_int_1);
quitter=0;
pv=50;
wait=0;
ph=4;
for (loop=0;loop!=20;loop++)
{
aff[loop]=0;
}
}
(yAro : vala en source :])