Post by matalog on Jul 2, 2017 18:18:22 GMT -5
Hi,
I just found BasiEgaXorz yesterday and i'm happy I did, finally, I might finally be able to do something with my knowledge of BASIC (usually ZX Spectrum BASIC).
Anyway, I couldn't find a tutorial on how to animate a sprite with passing time, so I amended ScroGer's program so that it does, it also now uses 4x4 sprites, that I used SGTD to draw.
It's messy, but we have 4x4 sprites drawn and changed every 1/6th of a second - you can use your imagination as to how you would implement motion in a character etc.
I also changed the movement control to not require a SLEEP 1 command, as that slows the whole program.
I actually made this as a test of the speed possible, and I am amazed at how fast it compiles. It's a good sign when you NEED to use 1/60th second interrupts to slow things down :-).
I will probably have many questions in the future, I hope some people still frequent these boards.
Anyway, here it is for any newcomers who may want to animate their Sprites as time passes.
I just found BasiEgaXorz yesterday and i'm happy I did, finally, I might finally be able to do something with my knowledge of BASIC (usually ZX Spectrum BASIC).
Anyway, I couldn't find a tutorial on how to animate a sprite with passing time, so I amended ScroGer's program so that it does, it also now uses 4x4 sprites, that I used SGTD to draw.
It's messy, but we have 4x4 sprites drawn and changed every 1/6th of a second - you can use your imagination as to how you would implement motion in a character etc.
I also changed the movement control to not require a SLEEP 1 command, as that slows the whole program.
I actually made this as a test of the speed possible, and I am amazed at how fast it compiles. It's a good sign when you NEED to use 1/60th second interrupts to slow things down :-).
I will probably have many questions in the future, I hope some people still frequent these boards.
Anyway, here it is for any newcomers who may want to animate their Sprites as time passes.
'Animation Tutorial
'Created By ScroGer - Amended By matalog
'8/28/08 - 3/7/17
print "To move press"
print "Up"
print "Down"
print "Left"
print "Right"
x=280 'set the sprites x coordinate
y=250 'set the sprites y coordinate
bgcolor 0,5 'set background color
UP=addsprite(4,4) 'add the sprite to be used
loadtiles UP,16,256 'load the tile's to be used
loadtiles DOWN,16,273
loadtiles LEFT,16,290
loadtiles RIGHT,16,307
pallettes sprite_pal,0,0,16 'load the color palette
propsprite UP,256,0
t=1 ' The Timer
JoyPad:
do 'main loop
on vblank gosub ANIMATE ' go to the movement and animation loop on every vblank
enable INTERRUPT VBLANK 'turn on VBLANK INTERRUPT - happens once ever 1/60th of a second.
movesprite UP,x,y
loop 'end the main loop
ANIMATE:
t=t+1 ' Increment Timer
j=joypad() 'happens once every 1/60th second - so you can move 60 pixels per second.
if j.0 then gosub moveUP
if j.1 then gosub moveDOWN
if j.2 then gosub moveLEFT
if j.3 then gosub moveRIGHT
if t=10 then ' 1/6th second has passed
propsprite UP,256,0
endif
if t=20 then ' 2/6th second has passed
propsprite UP,273,0
endif
if t=30 then ' 3/6th second has passed
propsprite UP,290,0
endif
if t=39 then ' 4/6th second has passed
propsprite UP,307,0
endif
if t>40 then
t=1 ' Start timer again.
endif
return ' Return to main Loop
moveUP:
'to change animations use propsprite and change the tiles by changing the "tile vram offset" to the new tiles
y-- 'move the sprite up
return 'return to the maim loop
moveDOWN:
'to change animations use propsprite and change the tiles by changing the "tile vram offset" to the new tiles
y++ 'move the sprite down
return 'return to the maim loop
moveLEFT:
'to change animations use propsprite and change the tiles by changing the "tile vram offset" to the new tiles
x-- 'move the sprite left
return 'return to the maim loop
moveRIGHT:
'to change animations use propsprite and change the tiles by changing the "tile vram offset" to the new tiles
x++ 'move the sprite right
return 'return to the maim loop
sprite_pal:
DATAINT $0EEE,$0EEE,$0E0E,$000E,$0EE0,$00E0,$0E00,$0888 ' Pallette: 0
DATAINT $0CCC,$0088,$0808,$0008,$0880,$0080,$0800,$0000
UP:
DATALONG $00000000 ' Tile: 0
DATALONG $00000000
DATALONG $06666666
DATALONG $06666666
DATALONG $06655555
DATALONG $06655555
DATALONG $06655DDD
DATALONG $06655DDD
DATALONG $06655DDC ' Tile: 1
DATALONG $06655DDC
DATALONG $06655DDC
DATALONG $06655DDC
DATALONG $06655DDC
DATALONG $06655DDC
DATALONG $06655DDC
DATALONG $06655DDC
DATALONG $06655DDC ' Tile: 2
DATALONG $06655DDC
DATALONG $06655DDC
DATALONG $06655DDC
DATALONG $06655DDC
DATALONG $06655DDC
DATALONG $06655DDC
DATALONG $06655DDC
DATALONG $06655DDC ' Tile: 3
DATALONG $06655DDC
DATALONG $06655DDD
DATALONG $06655DDD
DATALONG $06655555
DATALONG $06655555
DATALONG $06666666
DATALONG $06666666
DATALONG $00000000 ' Tile: 4
DATALONG $00000000
DATALONG $66666666
DATALONG $66666666
DATALONG $55555555
DATALONG $55555555
DATALONG $DDDDDDDD
DATALONG $DDDDDDDD
DATALONG $CCCCCCCC ' Tile: 5
DATALONG $CCCCCCCC
DATALONG $C4444444
DATALONG $C4444444
DATALONG $C44BBBBB
DATALONG $C44BBBBB
DATALONG $C44BB333
DATALONG $C44BB333
DATALONG $C44BB332 ' Tile: 6
DATALONG $C44BB332
DATALONG $C44BB333
DATALONG $C44BB333
DATALONG $C44BBBBB
DATALONG $C44BBBBB
DATALONG $C4444444
DATALONG $C4444444
DATALONG $CCCCCCCC ' Tile: 7
DATALONG $CCCCCCCC
DATALONG $DDDDDDDD
DATALONG $DDDDDDDD
DATALONG $55555555
DATALONG $55555555
DATALONG $66666666
DATALONG $66666666
DATALONG $00000000 ' Tile: 8
DATALONG $00000000
DATALONG $66666666
DATALONG $66666666
DATALONG $55555555
DATALONG $55555555
DATALONG $DDDDDDDD
DATALONG $DDDDDDDD
DATALONG $CCCCCCCC ' Tile: 9
DATALONG $CCCCCCCC
DATALONG $4444444C
DATALONG $4444444C
DATALONG $BBBBB44C
DATALONG $BBBBB44C
DATALONG $333BB44C
DATALONG $333BB44C
DATALONG $233BB44C ' Tile: 10
DATALONG $233BB44C
DATALONG $333BB44C
DATALONG $333BB44C
DATALONG $BBBBB44C
DATALONG $BBBBB44C
DATALONG $4444444C
DATALONG $4444444C
DATALONG $CCCCCCCC ' Tile: 11
DATALONG $CCCCCCCC
DATALONG $DDDDDDDD
DATALONG $DDDDDDDD
DATALONG $55555555
DATALONG $55555555
DATALONG $66666666
DATALONG $66666666
DATALONG $00000000 ' Tile: 12
DATALONG $00000000
DATALONG $66666660
DATALONG $66666660
DATALONG $55555660
DATALONG $55555660
DATALONG $DDD55660
DATALONG $DDD55660
DATALONG $CDD55660 ' Tile: 13
DATALONG $CDD55660
DATALONG $CDD55660
DATALONG $CDD55660
DATALONG $CDD55660
DATALONG $CDD55660
DATALONG $CDD55660
DATALONG $CDD55660
DATALONG $CDD55660 ' Tile: 14
DATALONG $CDD55660
DATALONG $CDD55660
DATALONG $CDD55660
DATALONG $CDD55660
DATALONG $CDD55660
DATALONG $CDD55660
DATALONG $CDD55660
DATALONG $CDD55660 ' Tile: 15
DATALONG $CDD55660
DATALONG $DDD55660
DATALONG $DDD55660
DATALONG $55555660
DATALONG $55555660
DATALONG $66666660
DATALONG $66666660
DOWN:
DATALONG $00000000 ' Tile: 0
DATALONG $00000000
DATALONG $06666666
DATALONG $06666666
DATALONG $066EEEEE
DATALONG $066EEEEE
DATALONG $066EEBBB
DATALONG $066EEBBB
DATALONG $066EEBB4 ' Tile: 1
DATALONG $066EEBB4
DATALONG $066EEBB4
DATALONG $066EEBB4
DATALONG $066EEBB4
DATALONG $066EEBB4
DATALONG $066EEBB4
DATALONG $066EEBB4
DATALONG $066EEBB4 ' Tile: 2
DATALONG $066EEBB4
DATALONG $066EEBB4
DATALONG $066EEBB4
DATALONG $066EEBB4
DATALONG $066EEBB4
DATALONG $066EEBB4
DATALONG $066EEBB4
DATALONG $066EEBB4 ' Tile: 3
DATALONG $066EEBB4
DATALONG $066EEBBB
DATALONG $066EEBBB
DATALONG $066EEEEE
DATALONG $066EEEEE
DATALONG $06666666
DATALONG $06666666
DATALONG $00000000 ' Tile: 4
DATALONG $00000000
DATALONG $66666666
DATALONG $66666666
DATALONG $EEEEEEEE
DATALONG $EEEEEEEE
DATALONG $BBBBBBBB
DATALONG $BBBBBBBB
DATALONG $44444444 ' Tile: 5
DATALONG $44444444
DATALONG $46666666
DATALONG $46666666
DATALONG $46699999
DATALONG $46699999
DATALONG $46699777
DATALONG $46699777
DATALONG $46699776 ' Tile: 6
DATALONG $46699776
DATALONG $46699777
DATALONG $46699777
DATALONG $46699999
DATALONG $46699999
DATALONG $46666666
DATALONG $46666666
DATALONG $44444444 ' Tile: 7
DATALONG $44444444
DATALONG $BBBBBBBB
DATALONG $BBBBBBBB
DATALONG $EEEEEEEE
DATALONG $EEEEEEEE
DATALONG $66666666
DATALONG $66666666
DATALONG $00000000 ' Tile: 8
DATALONG $00000000
DATALONG $66666666
DATALONG $66666666
DATALONG $EEEEEEEE
DATALONG $EEEEEEEE
DATALONG $BBBBBBBB
DATALONG $BBBBBBBB
DATALONG $44444444 ' Tile: 9
DATALONG $44444444
DATALONG $66666664
DATALONG $66666664
DATALONG $99999664
DATALONG $99999664
DATALONG $77799664
DATALONG $77799664
DATALONG $67799664 ' Tile: 10
DATALONG $67799664
DATALONG $77799664
DATALONG $77799664
DATALONG $99999664
DATALONG $99999664
DATALONG $66666664
DATALONG $66666664
DATALONG $44444444 ' Tile: 11
DATALONG $44444444
DATALONG $BBBBBBBB
DATALONG $BBBBBBBB
DATALONG $EEEEEEEE
DATALONG $EEEEEEEE
DATALONG $66666666
DATALONG $66666666
DATALONG $00000000 ' Tile: 12
DATALONG $00000000
DATALONG $66666660
DATALONG $66666660
DATALONG $EEEEE660
DATALONG $EEEEE660
DATALONG $BBBEE660
DATALONG $BBBEE660
DATALONG $4BBEE660 ' Tile: 13
DATALONG $4BBEE660
DATALONG $4BBEE660
DATALONG $4BBEE660
DATALONG $4BBEE660
DATALONG $4BBEE660
DATALONG $4BBEE660
DATALONG $4BBEE660
DATALONG $4BBEE660 ' Tile: 14
DATALONG $4BBEE660
DATALONG $4BBEE660
DATALONG $4BBEE660
DATALONG $4BBEE660
DATALONG $4BBEE660
DATALONG $4BBEE660
DATALONG $4BBEE660
DATALONG $4BBEE660 ' Tile: 15
DATALONG $4BBEE660
DATALONG $BBBEE660
DATALONG $BBBEE660
DATALONG $EEEEE660
DATALONG $EEEEE660
DATALONG $66666660
DATALONG $66666660
LEFT:
DATALONG $00000000 ' Tile: 0
DATALONG $00000000
DATALONG $0AAAAAAA
DATALONG $0AAAAAAA
DATALONG $0AA11111
DATALONG $0AA11111
DATALONG $0AA11777
DATALONG $0AA11777
DATALONG $0AA11775 ' Tile: 1
DATALONG $0AA11775
DATALONG $0AA11775
DATALONG $0AA11775
DATALONG $0AA11775
DATALONG $0AA11775
DATALONG $0AA11775
DATALONG $0AA11775
DATALONG $0AA11775 ' Tile: 2
DATALONG $0AA11775
DATALONG $0AA11775
DATALONG $0AA11775
DATALONG $0AA11775
DATALONG $0AA11775
DATALONG $0AA11775
DATALONG $0AA11775
DATALONG $0AA11775 ' Tile: 3
DATALONG $0AA11775
DATALONG $0AA11777
DATALONG $0AA11777
DATALONG $0AA11111
DATALONG $0AA11111
DATALONG $0AAAAAAA
DATALONG $0AAAAAAA
DATALONG $00000000 ' Tile: 4
DATALONG $00000000
DATALONG $AAAAAAAA
DATALONG $AAAAAAAA
DATALONG $11111111
DATALONG $11111111
DATALONG $77777777
DATALONG $77777777
DATALONG $55555555 ' Tile: 5
DATALONG $55555555
DATALONG $5FFFFFFF
DATALONG $5FFFFFFF
DATALONG $5FF88888
DATALONG $5FF88888
DATALONG $5FF88BBB
DATALONG $5FF88BBB
DATALONG $5FF88BB2 ' Tile: 6
DATALONG $5FF88BB2
DATALONG $5FF88BBB
DATALONG $5FF88BBB
DATALONG $5FF88888
DATALONG $5FF88888
DATALONG $5FFFFFFF
DATALONG $5FFFFFFF
DATALONG $55555555 ' Tile: 7
DATALONG $55555555
DATALONG $77777777
DATALONG $77777777
DATALONG $11111111
DATALONG $11111111
DATALONG $AAAAAAAA
DATALONG $AAAAAAAA
DATALONG $00000000 ' Tile: 8
DATALONG $00000000
DATALONG $AAAAAAAA
DATALONG $AAAAAAAA
DATALONG $11111111
DATALONG $11111111
DATALONG $77777777
DATALONG $77777777
DATALONG $55555555 ' Tile: 9
DATALONG $55555555
DATALONG $FFFFFFF5
DATALONG $FFFFFFF5
DATALONG $88888FF5
DATALONG $88888FF5
DATALONG $BBB88FF5
DATALONG $BBB88FF5
DATALONG $2BB88FF5 ' Tile: 10
DATALONG $2BB88FF5
DATALONG $BBB88FF5
DATALONG $BBB88FF5
DATALONG $88888FF5
DATALONG $88888FF5
DATALONG $FFFFFFF5
DATALONG $FFFFFFF5
DATALONG $55555555 ' Tile: 11
DATALONG $55555555
DATALONG $77777777
DATALONG $77777777
DATALONG $11111111
DATALONG $11111111
DATALONG $AAAAAAAA
DATALONG $AAAAAAAA
DATALONG $00000000 ' Tile: 12
DATALONG $00000000
DATALONG $AAAAAAA0
DATALONG $AAAAAAA0
DATALONG $11111AA0
DATALONG $11111AA0
DATALONG $77711AA0
DATALONG $77711AA0
DATALONG $57711AA0 ' Tile: 13
DATALONG $57711AA0
DATALONG $57711AA0
DATALONG $57711AA0
DATALONG $57711AA0
DATALONG $57711AA0
DATALONG $57711AA0
DATALONG $57711AA0
DATALONG $57711AA0 ' Tile: 14
DATALONG $57711AA0
DATALONG $57711AA0
DATALONG $57711AA0
DATALONG $57711AA0
DATALONG $57711AA0
DATALONG $57711AA0
DATALONG $57711AA0
DATALONG $57711AA0 ' Tile: 15
DATALONG $57711AA0
DATALONG $77711AA0
DATALONG $77711AA0
DATALONG $11111AA0
DATALONG $11111AA0
DATALONG $AAAAAAA0
DATALONG $AAAAAAA0
RIGHT:
DATALONG $00000000 ' Tile: 0
DATALONG $00000000
DATALONG $0CCCCCCC
DATALONG $0CCCCCCC
DATALONG $0CC44444
DATALONG $0CC44444
DATALONG $0CC44666
DATALONG $0CC44666
DATALONG $0CC4466E ' Tile: 1
DATALONG $0CC4466E
DATALONG $0CC4466E
DATALONG $0CC4466E
DATALONG $0CC4466E
DATALONG $0CC4466E
DATALONG $0CC4466E
DATALONG $0CC4466E
DATALONG $0CC4466E ' Tile: 2
DATALONG $0CC4466E
DATALONG $0CC4466E
DATALONG $0CC4466E
DATALONG $0CC4466E
DATALONG $0CC4466E
DATALONG $0CC4466E
DATALONG $0CC4466E
DATALONG $0CC4466E ' Tile: 3
DATALONG $0CC4466E
DATALONG $0CC44666
DATALONG $0CC44666
DATALONG $0CC44444
DATALONG $0CC44444
DATALONG $0CCCCCCC
DATALONG $0CCCCCCC
DATALONG $00000000 ' Tile: 4
DATALONG $00000000
DATALONG $CCCCCCCC
DATALONG $CCCCCCCC
DATALONG $44444444
DATALONG $44444444
DATALONG $66666666
DATALONG $66666666
DATALONG $EEEEEEEE ' Tile: 5
DATALONG $EEEEEEEE
DATALONG $EFFFFFFF
DATALONG $EFFFFFFF
DATALONG $EFFEEEEE
DATALONG $EFFEEEEE
DATALONG $EFFEE666
DATALONG $EFFEE666
DATALONG $EFFEE668 ' Tile: 6
DATALONG $EFFEE668
DATALONG $EFFEE666
DATALONG $EFFEE666
DATALONG $EFFEEEEE
DATALONG $EFFEEEEE
DATALONG $EFFFFFFF
DATALONG $EFFFFFFF
DATALONG $EEEEEEEE ' Tile: 7
DATALONG $EEEEEEEE
DATALONG $66666666
DATALONG $66666666
DATALONG $44444444
DATALONG $44444444
DATALONG $CCCCCCCC
DATALONG $CCCCCCCC
DATALONG $00000000 ' Tile: 8
DATALONG $00000000
DATALONG $CCCCCCCC
DATALONG $CCCCCCCC
DATALONG $44444444
DATALONG $44444444
DATALONG $66666666
DATALONG $66666666
DATALONG $EEEEEEEE ' Tile: 9
DATALONG $EEEEEEEE
DATALONG $FFFFFFFE
DATALONG $FFFFFFFE
DATALONG $EEEEEFFE
DATALONG $EEEEEFFE
DATALONG $666EEFFE
DATALONG $666EEFFE
DATALONG $866EEFFE ' Tile: 10
DATALONG $866EEFFE
DATALONG $666EEFFE
DATALONG $666EEFFE
DATALONG $EEEEEFFE
DATALONG $EEEEEFFE
DATALONG $FFFFFFFE
DATALONG $FFFFFFFE
DATALONG $EEEEEEEE ' Tile: 11
DATALONG $EEEEEEEE
DATALONG $66666666
DATALONG $66666666
DATALONG $44444444
DATALONG $44444444
DATALONG $CCCCCCCC
DATALONG $CCCCCCCC
DATALONG $00000000 ' Tile: 12
DATALONG $00000000
DATALONG $CCCCCCC0
DATALONG $CCCCCCC0
DATALONG $44444CC0
DATALONG $44444CC0
DATALONG $66644CC0
DATALONG $66644CC0
DATALONG $E6644CC0 ' Tile: 13
DATALONG $E6644CC0
DATALONG $E6644CC0
DATALONG $E6644CC0
DATALONG $E6644CC0
DATALONG $E6644CC0
DATALONG $E6644CC0
DATALONG $E6644CC0
DATALONG $E6644CC0 ' Tile: 14
DATALONG $E6644CC0
DATALONG $E6644CC0
DATALONG $E6644CC0
DATALONG $E6644CC0
DATALONG $E6644CC0
DATALONG $E6644CC0
DATALONG $E6644CC0
DATALONG $E6644CC0 ' Tile: 15
DATALONG $E6644CC0
DATALONG $66644CC0
DATALONG $66644CC0
DATALONG $44444CC0
DATALONG $44444CC0
DATALONG $CCCCCCC0
DATALONG $CCCCCCC0