55 lines
1.0 KiB
C++
55 lines
1.0 KiB
C++
/* This demonstrates "interpolation"
|
|
which is generating frames between
|
|
frames. For interpolation to work,
|
|
your CSprite must not be bitmaps and
|
|
must be identical, except shifted
|
|
around. Cut and paste and use
|
|
"shift points."
|
|
*/
|
|
|
|
|
|
|
|
|
|
|
|
$SP,"<1>",1$
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
$SP,"<2>",2$
|
|
|
|
|
|
|
|
|
|
F64 t0;
|
|
|
|
U0 DrawIt(CTask *,CDC *dc)
|
|
{
|
|
U8 *inter;
|
|
|
|
if (tT-t0<1.0) {
|
|
inter=SpriteInterpolate($IB,"<1>",1$,$IB,"<2>",2$,(tT-t0)%1.0);
|
|
SpritePlot3(dc,100,100,0,inter);
|
|
Free(inter);
|
|
} else
|
|
SpritePlot3(dc,100,100,0,$IB,"<1>",1$);
|
|
}
|
|
|
|
U0 Golf()
|
|
{
|
|
SettingsPush; //See $LK,"SettingsPush","MN:SettingsPush"$
|
|
Fs->draw_it=&DrawIt;
|
|
|
|
DocClear;
|
|
do t0=tT;
|
|
while (PressAKey);
|
|
SettingsPop;
|
|
}
|
|
|
|
Golf;
|
|
|