gigatron/rom/Contrib/at67/gbas/graphics/SpriteBig.gbas
2025-01-28 19:17:01 +03:00

62 lines
1.6 KiB
Plaintext

_runtimePath_ "../runtime"
_runtimeStart_ &h7FFF
_codeRomType_ ROMv3
'defines the amount of contiguous RAM needed for sprite stripes, (in this case 40*6 + 1)
_spriteStripeChunks_ 40, &h0200, descending
mode 2
set FGBG_COLOUR, &h3F00
cls
'first load allocates memory, further loads of the same filename are instanced but have different stripe destination offsets
load sprite, ../../res/image/Turrican.tga, 0 'normal orientation
load sprite, ../../res/image/Turrican.tga, 1, FlipX 'x flipped orientation
load sprite, ../../res/image/Turrican.tga, 2, FlipY 'y flipped orientation
load sprite, ../../res/image/Turrican.tga, 3, FlipXY 'xy flipped orientation
'first load allocates memory, second is instanced but has different stripe destination offsets
load sprite, ../../res/image/Bullet.tga, 4 'normal orientation
load sprite, ../../res/image/Bullet.tga, 5, FlipX 'x flipped orientation
loop:
x0 = 28
x1 = 120
for x=0 to 130
wait
sprite noFlip, 0, x, 15
sprite flipX, 1, 130-x, 65
gosub bullets0
next x
x1 = 28
x0 = 120
for x=129 downto 1
wait
sprite flipX, 1, x, 15
sprite noFlip, 0, 130-x, 65
gosub bullets1
next x
goto loop
bullets0:
sprite flipX, 5, x0, 24
x0 = x0 + 2
if x0 &&> 159 then x0 = x + 28
sprite noFlip, 4, x1, 74
x1 = x1 - 2
if x1 &&< -12 then x1 = 120-x
return
bullets1:
sprite noFlip, 4, x0, 24
x0 = x0 - 2
if x0 &&< -12 then x0 = x - 10
sprite flipX, 5, x1, 74
x1 = x1 + 2
if x1 &&> 159 then x1 = 158-x
return