87 lines
53 KiB
HolyC
87 lines
53 KiB
HolyC
|
//Press <CTRL-t>.
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
$SP,"",BI=1$
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
//The sprite was created with <CTRL-r>.
|
|||
|
|
|||
|
U0 ElephantWalk()
|
|||
|
{
|
|||
|
I64 sc,
|
|||
|
x=Fs->pix_width>>1,y=Fs->pix_height>>1, //Fs is current $LK,"CTask",A="MN:CTask"$ struct.
|
|||
|
x_last=x;
|
|||
|
AutoComplete;
|
|||
|
WinBorder;
|
|||
|
WinMax;
|
|||
|
DocClear;
|
|||
|
while (TRUE) {
|
|||
|
DCFill;
|
|||
|
if (x>x_last) {
|
|||
|
DCSymmetrySet(,x,y,x,y-1);
|
|||
|
gr.dc->flags|=DCF_SYMMETRY|DCF_JUST_MIRROR;
|
|||
|
} else
|
|||
|
gr.dc->flags&=~(DCF_SYMMETRY|DCF_JUST_MIRROR);
|
|||
|
x_last=x;
|
|||
|
Sprite3ZB(gr.dc,x,y,0,$IB,"<1>",BI=1$,Sin(8*tS)/4);//Use <CTRL-r> "Ptr to Sprite"
|
|||
|
switch (GetKey(&sc)) {
|
|||
|
case 0:
|
|||
|
switch (sc.u8[0]) {//Scan code $LK,"lowest byte",A="FI:::/Doc/CharOverview.DD"$
|
|||
|
case SC_CURSOR_UP:
|
|||
|
y-=32;
|
|||
|
if (y<0)
|
|||
|
y=Fs->pix_height;
|
|||
|
break;
|
|||
|
case SC_CURSOR_DOWN:
|
|||
|
y+=32;
|
|||
|
if (y>Fs->pix_height)
|
|||
|
y=0;
|
|||
|
break;
|
|||
|
case SC_CURSOR_LEFT:
|
|||
|
x-=32;
|
|||
|
if (x<0)
|
|||
|
x=Fs->pix_width;
|
|||
|
break;
|
|||
|
case SC_CURSOR_RIGHT:
|
|||
|
x+=32;
|
|||
|
if (x>Fs->pix_width)
|
|||
|
x=0;
|
|||
|
break;
|
|||
|
}
|
|||
|
break;
|
|||
|
case CH_ESC:
|
|||
|
case CH_SHIFT_ESC:
|
|||
|
goto ew_done;
|
|||
|
}
|
|||
|
}
|
|||
|
ew_done:
|
|||
|
DCFill;
|
|||
|
}
|
|||
|
|
|||
|
ElephantWalk;
|
|||
|
|