oh I forgot the width of inva.png was 2 frames wide. that's why i could not repeat the pattern over and over like this:
Code: (Select All)
Screen _NewImage(1280, 720, 32)
_ScreenMove 0, 0
Dim Shared SPRITES As Long
SPRITES = _LoadImage("inva.png")
_PutImage , SPRITES, 0
_ClearColor _RGB32(&H39, &H2A, &H02), SPRITES
frame = 1
RR% = 400: XX% = 8
Do
Cls , _RGB32(0, 48, 20)
For a = 0 To 359 Step 360 / 16
orbit RR%, _Height / 2, 320, a + da, x, y
Select Case frame
Case 1
_PutImage (x - _Width(SPRITES) / 4, y - _Height(SPRITES) / 2), SPRITES, , (0, 0)-(63, 63)
Case 2
_PutImage (x - _Width(SPRITES) / 4, y - _Height(SPRITES) / 2), SPRITES, , (64, 0)-(127, 63)
End Select
orbit RR%, _Height / 2, 240, a - da, x, y
Select Case frame
Case 1
_PutImage (x - _Width(SPRITES) / 4, y - _Height(SPRITES) / 2), SPRITES, , (0, 0)-(63, 63)
Case 2
_PutImage (x - _Width(SPRITES) / 4, y - _Height(SPRITES) / 2), SPRITES, , (64, 0)-(127, 63)
End Select
orbit RR%, _Height / 2, 180, a + da, x, y
Select Case frame
Case 1
_PutImage (x - _Width(SPRITES) / 8, y - _Height(SPRITES) / 4)-Step(_Width(SPRITES) / 4, _Height(SPRITES) / 2), SPRITES, , (0, 0)-(63, 63)
Case 2
_PutImage (x - _Width(SPRITES) / 8, y - _Height(SPRITES) / 4)-Step(_Width(SPRITES) / 4, _Height(SPRITES) / 2), SPRITES, , (64, 0)-(127, 63)
End Select
orbit RR%, _Height / 2, 140, a - da, x, y
Select Case frame
Case 1
_PutImage (x - _Width(SPRITES) / 8, y - _Height(SPRITES) / 4)-Step(_Width(SPRITES) / 4, _Height(SPRITES) / 2), SPRITES, , (0, 0)-(63, 63)
Case 2
_PutImage (x - _Width(SPRITES) / 8, y - _Height(SPRITES) / 4)-Step(_Width(SPRITES) / 4, _Height(SPRITES) / 2), SPRITES, , (64, 0)-(127, 63)
End Select
orbit RR%, _Height / 2, 110, a + da, x, y
Select Case frame
Case 1
_PutImage (x - _Width(SPRITES) / 16, y - _Height(SPRITES) / 8)-Step(_Width(SPRITES) / 8, _Height(SPRITES) / 4), SPRITES, , (0, 0)-(63, 63)
Case 2
_PutImage (x - _Width(SPRITES) / 16, y - _Height(SPRITES) / 8)-Step(_Width(SPRITES) / 8, _Height(SPRITES) / 4), SPRITES, , (64, 0)-(127, 63)
End Select
orbit RR%, _Height / 2, 90, a - da, x, y
Select Case frame
Case 1
_PutImage (x - _Width(SPRITES) / 16, y - _Height(SPRITES) / 8)-Step(_Width(SPRITES) / 8, _Height(SPRITES) / 4), SPRITES, , (0, 0)-(63, 63)
Case 2
_PutImage (x - _Width(SPRITES) / 16, y - _Height(SPRITES) / 8)-Step(_Width(SPRITES) / 8, _Height(SPRITES) / 4), SPRITES, , (64, 0)-(127, 63)
End Select
orbit RR%, _Height / 2, 70, a + da, x, y
Select Case frame
Case 1
_PutImage (x - _Width(SPRITES) / 16, y - _Height(SPRITES) / 8)-Step(_Width(SPRITES) / 8, _Height(SPRITES) / 4), SPRITES, , (0, 0)-(63, 63)
Case 2
_PutImage (x - _Width(SPRITES) / 16, y - _Height(SPRITES) / 8)-Step(_Width(SPRITES) / 8, _Height(SPRITES) / 4), SPRITES, , (64, 0)-(127, 63)
End Select
orbit RR%, _Height / 2, 50, a - da, x, y
Select Case frame
Case 1
_PutImage (x - _Width(SPRITES) / 16, y - _Height(SPRITES) / 8)-Step(_Width(SPRITES) / 8, _Height(SPRITES) / 4), SPRITES, , (0, 0)-(63, 63)
Case 2
_PutImage (x - _Width(SPRITES) / 16, y - _Height(SPRITES) / 8)-Step(_Width(SPRITES) / 8, _Height(SPRITES) / 4), SPRITES, , (64, 0)-(127, 63)
End Select
Next
_Display
_Limit 5
da = da + 2
frame = frame + 1
If frame > 2 Then frame = 1: Play "T255L32O1G" Else Play "T255L32O1C"
i$ = InKey$
RR% = RR% + XX%
If RR% > _Width - 320 Then XX% = -8
If RR% < 380 Then XX% = 8
Loop While i$ <> " "
Sub orbit (x0rigin, yOrigin, radius, degrees, xOut, yOut) ' all default single should be ok
xOut = x0rigin + radius * Cos(_D2R(degrees))
yOut = yOrigin + radius * Sin(_D2R(degrees))
End Sub
b = b + ...