Rem Project: Dark Basic Pro Project
Rem Created: Wednesday, April 06, 2011
Rem ***** Main Source File *****
Sync On
Sync Rate 80
Set Text Opaque
REM *******************************
REM Changes: This was grabed from your later codes.
REM -------------------------------
gosub Setup
REM *******************************
REM *******************************
REM Changes: These varables does not need to be
REM a float anymore as it's purpose was replaced
REM by ScrollMoveX# and ScrollMoveY#
REM -------------------------------
Global ScrollMapX = 0 ` Direction to scroll map
Global ScrollMapY = 0
REM *******************************
Global ScrollSpeed# = 0.1 ` Just in case this needs to be global, dont think it does but not sure.
REM ScrollSpeed# is used inside a function so it NEEDS to be global.
global MapPosX as integer
global MapPosY as integer
global ScrollMoveX# as float
global ScrollMoveY# as float
Global PosX, PosY As Integer `Made these global so i could see what they are in debug mode.
Do
DisplayMap()
ScrollHandle()
Debug()
Sync
cls
Loop
Function DisplayMap()
`MapPosX = 2*32 dont want these in as i am just using full screen at the mo, this is just the offset for diaplaying the map.
`MapPosY = 2*32
For X = 0 To 11
For Y = 0 To 11
MapX = X + ScrollMapX
MapY = Y + ScrollMapY
If MapX > 0 And MapX < 60 And MapY > 0 AND MapY < 55 ` These numbers determine how much of the map eventually gets displayed which tbh we want all of it.
` But it also appears to have an effect on how the map scrolls down, leaving it with an ugly gap. Really not sure how this works exactly.
Tile = Map(MapX, MapY)
PosX = X *32 -32 `(MapPosX + X *32 -32) just cut this down as im not using MapPosX / Y for now
PosY = Y *32 -32 `(MapPosY + Y *32 -32)
Paste Image Tile, PosX+ScrollMoveX#, PosY+ScrollMoveY#
EndIf
Next Y
Next X
Endfunction
Function Debug()
Set Cursor 0, 400
Print " "
Set Cursor 0, 400
Print "ScrollMapX : ", ScrollMapX, ", ScrollMapY : ", ScrollMapY
Set Cursor 0, 420
Print " "
Set Cursor 0, 420
Print "PosX : ", PosX, ", PosY : ", PosY
Set Cursor 0, 440
Print " "
Set Cursor 0, 440
Print "ScrollMoveX# : ", ScrollMoveX#, ", ScrollMoveY# : ", ScrollMoveY#
ink rgb(255,0,0),0
line MapPosX,MapPosY,MapPosX+10*32,MapPosY
line MapPosX,MapPosY,MapPosX,MapPosY+10*32
line MapPosX+10*32,MapPosY,MapPosX+10*32,MapPosY+10*32
line MapPosX,MapPosY+10*32,MapPosX+10*32,MapPosY+10*32
Endfunction
Function ScrollHandle()
`ScrollSpeed# = 1 Doesnt seem to do anything.
If Upkey() = 1
inc ScrollMoveY#
if ScrollMoveY# => 32
dec ScrollMapY
ScrollMoveY# = 0
endif
endif
If Downkey() = 1
dec ScrollMoveY#
if ScrollMoveY# =< -32
inc ScrollMapY
ScrollMoveY# = 0
endif
endif
If Leftkey() = 1
inc ScrollMoveX#
if ScrollMoveX# => 32
dec ScrollMapX
ScrollMoveX# = 0
endif
endif
If Rightkey() = 1
dec ScrollMoveX#
if ScrollMoveX# =< -32
inc ScrollMapX
ScrollMoveX# = 0
endif
endif
Endfunction
Setup:
MapsizeX = 60-1
MapsizeY = 55-1
Dim Map(MapsizeX, MapsizeY)
For Y = 0 to MapsizeY
For X = 0 To MapsizeX
Read Map(X,Y)
Next X
Next Y
Load Image "Tileset.bmp", 100
Paste Image 100, 0, 0
a = 1
For y = 0 To 7
For x = 0 To 7
Get Image a, x * 32, y * 32, x * 32 + 32, y * 32 + 32, 1
Inc a
Next x
Next y
return
data 54,1,1,1,55,31,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,9,10,4,4,9,10,10,4,9,10,4,5,6,4,4,4
data 54,1,1,1,55,31,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,5,6,4,4,4,4,4,4,4,4,4,17,18,4,4,17,18,18,10,17,18,9,10,14,4,9,10
data 54,1,1,54,55,31,4,4,4,4,4,4,4,4,4,4,4,4,12,4,4,4,4,4,4,4,4,4,4,4,4,4,4,13,14,4,4,4,4,4,5,6,4,4,4,9,10,4,4,4,17,18,9,10,17,18,10,4,17,18
data 54,54,54,54,55,31,4,4,4,4,4,30,4,4,4,4,4,4,12,9,10,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,13,14,4,4,4,17,18,4,9,10,9,10,17,18,10,17,18,9,10,4
data 54,54,54,54,55,31,4,4,4,4,4,4,4,4,4,4,4,9,10,17,18,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,9,10,4,4,4,17,18,17,18,10,17,18,9,10,17,18,4
data 54,54,54,54,55,31,4,4,30,4,4,4,4,4,4,4,4,17,18,12,4,4,30,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,30,4,4,4,4,17,18,4,4,4,4,9,10,9,10,9,10,17,18,10,4,4
data 54,54,54,54,55,31,4,4,4,4,4,4,4,4,4,4,12,9,10,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,9,10,4,17,18,17,18,17,18,4,17,18,9,10
data 54,54,54,54,55,31,4,4,4,4,4,5,6,4,4,9,10,17,18,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,9,10,9,10,4,17,18,4,4,4,4,4,9,10,4,9,10,17,18
data 54,54,54,54,55,31,4,4,4,4,4,13,14,4,4,17,18,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,17,18,17,18,4,4,4,4,4,4,4,4,17,18,4,17,18,9,10
data 62,62,62,62,63,31,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,5,6,9,10,9,10,17,18
data 38,38,38,38,38,39,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,30,4,4,4,4,4,4,4,4,4,4,4,5,6,4,4,4,4,4,4,9,10,4,4,4,4,4,9,10,4,4,13,14,17,18,17,18,9,10
data 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,13,14,4,4,4,30,4,4,17,18,4,4,9,10,4,17,18,4,9,10,4,4,9,10,4,17,18
data 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,17,18,4,4,4,4,17,18,4,4,17,18,9,10,4
data 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,9,10,4,4,4,4,4,4,4,4,4,17,18,4
data 4,4,4,4,4,4,4,4,4,4,30,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,5,6,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,17,18,4,4,4,4,4,4,4,4,4,4,4,4
data 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,13,14,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,9,10,4,9,10,4,4,4,4,4,4,4
data 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,17,18,4,17,18,4,4,4,4,4,4,4
data 4,5,6,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,45,46,46
data 5,6,14,4,4,4,4,5,6,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,30,4,30,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,53,54,54
data 13,14,5,6,4,4,4,13,14,5,6,4,4,4,4,5,6,4,4,4,4,4,4,4,4,4,4,4,4,4,30,4,5,6,30,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,53,54,54
data 4,4,13,14,5,6,12,4,4,13,14,4,4,4,4,13,14,4,4,4,4,4,4,4,4,4,4,4,4,4,30,4,13,14,45,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,54,54,54
data 4,4,4,4,13,5,6,4,4,4,4,4,4,5,6,4,30,4,4,4,4,4,4,4,4,4,4,4,4,12,4,30,4,30,53,54,54,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62
data 4,5,6,4,5,6,14,4,4,5,6,4,4,13,14,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,30,4,53,54,55,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4
data 4,13,5,6,13,14,30,4,4,13,14,4,4,4,4,4,4,4,4,4,4,4,9,10,4,4,4,4,4,4,4,4,4,4,53,54,55,4,4,5,6,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,5,6,4
data 4,4,13,14,5,6,4,4,4,5,6,4,4,4,4,30,5,6,4,4,4,4,17,18,4,4,4,4,4,4,4,4,4,4,53,54,55,4,4,13,14,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,8,13,14,4
data 4,30,4,4,13,14,4,5,6,13,14,4,4,5,6,4,13,14,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,61,62,63,4,4,4,4,4,4,4,4,4,4,4,4,4,5,6,4,4,4,11,4,4,4,30
data 5,6,5,6,12,4,4,13,14,4,4,4,4,13,14,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,5,6,4,4,4,5,6,4,12,4,4,4,4,4,4,4,4,4,13,14,4,4,4,4,4,4,4,4
data 13,14,13,14,4,5,6,4,30,4,4,4,4,4,4,5,6,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,13,14,4,4,4,13,14,4,4,4,4,4,4,4,9,10,4,4,4,4,4,4,4,4,4,4,4,4
data 4,12,4,5,6,13,5,6,4,4,5,6,4,4,4,13,14,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,17,18,4,4,4,4,4,4,4,4,4,4,4,4
data 4,4,4,13,14,4,13,14,4,4,13,14,4,4,4,4,4,12,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4
data 4,5,6,4,4,5,6,12,4,4,4,5,6,4,4,5,6,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,12,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,5,6,4
data 4,13,5,6,30,13,5,6,30,4,4,13,14,4,12,13,14,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,13,14,4
data 4,4,13,14,5,6,13,14,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,30,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,30,4,4,4
data 4,4,5,6,5,6,4,4,4,5,6,4,4,5,6,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,30,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4
data 5,6,13,14,13,5,6,4,4,13,14,12,4,13,14,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,5,6,4,5,6,4,5,6,4,5,6,4,5,6,4,5,6,4,5,6,4,5,6,4,5,6,4,5,6,4
data 13,14,4,4,5,6,5,6,4,4,4,4,4,4,4,4,4,5,6,4,4,4,4,4,4,4,4,4,4,4,13,14,30,13,14,4,13,14,4,13,14,4,13,14,4,13,14,4,13,14,4,13,14,4,13,14,4,13,14,4
data 4,5,6,4,13,14,13,14,35,4,4,5,6,4,4,4,4,13,14,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,30,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4
data 4,13,14,4,4,4,5,6,4,4,4,13,14,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,5,6,4,45,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46
data 5,6,4,5,6,4,13,14,30,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,13,14,4,53,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54
data 5,6,4,13,14,4,4,4,4,5,6,4,4,4,4,4,5,6,4,12,4,4,4,4,4,4,4,4,4,4,4,4,53,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54
data 13,14,5,6,5,6,4,4,4,13,14,4,4,4,4,4,13,14,4,4,4,4,4,4,4,4,4,4,4,5,6,4,53,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54
data 4,4,13,5,6,14,12,4,4,4,12,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,13,14,4,53,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54
data 5,6,5,6,5,6,5,6,4,4,4,5,6,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,53,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54
data 13,14,13,14,13,14,13,14,4,4,4,13,14,4,12,4,4,4,4,4,4,4,4,4,4,4,4,4,4,5,6,4,53,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54
data 30,5,6,30,12,5,6,4,30,4,4,4,4,4,4,4,4,4,12,4,4,4,4,4,4,4,4,4,4,13,14,4,53,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54
data 4,13,14,4,4,13,14,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,61,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,54,54,54,54,54,54,54,54,54
data 4,4,4,4,30,4,12,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,21,22,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,53,54,54,54,54,54,54,54,54
data 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,29,4,12,7,4,4,4,7,4,12,4,4,4,7,4,4,7,4,4,4,53,54,54,54,54,54,54,54,54
data 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,7,4,4,7,4,4,7,4,11,4,4,4,4,7,4,53,54,54,54,54,54,54,54,54
data 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,7,4,4,7,4,4,4,4,53,54,54,54,54,54,54,54,54
data 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,29,4,4,7,12,4,7,4,4,4,4,4,12,4,4,4,4,35,7,4,53,54,54,54,54,54,54,54,54
data 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,29,4,4,4,4,4,11,4,7,4,4,7,4,4,4,7,4,4,4,4,53,54,54,54,54,54,54,54,54
data 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,29,12,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,53,54,54,54,54,54,54,54,54
data 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,29,4,7,4,4,7,4,4,7,4,4,4,7,4,7,4,4,7,12,4,53,54,54,54,54,54,54,54,54
data 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,29,4,4,4,4,4,12,4,4,4,4,4,4,4,4,4,4,4,4,4,53,54,54,54,54,54,54,54,54
If like some help further understanding the above code if you would please. I am still currently trying to get my head round how the map scrolls and your earlier example (the one with the red box showing what was going on) was pretty much what i was looking for but there are a few things i am still a little unclear on. I have edit out a few things and added a debug function just to throw some text out but i would like it if you could perhaps review my comments and see what is what while explaining in a little more detail 'the maths' behind what is going on.
From what i can get the float is counting from 0.0 to 1 in steps of 0.1 and then moves the tiles over by 1 but there are some other things i cant quite follow. Mainly just in the display map part, not anything else (like i say, displaying the character, reading in the map, the tile numbers, displaying the map static is all well understood by now).
I know it has been explained a dozen times by now but i just need a little more, recently i have been exposed to so many different ways that i am still having troubles so i would appreciate a little more clarity and the above code has a few things that i dont need or arent needed so it seems, other things for example are PosX and Y always seem to be 320 no matter where you move but if you replace the numbers with 320 the map does not display properly, just little things like that.
Thanks.
Edit: After taking a look at the above, here is what i have so far, it doesnt work but im not sure why just yet.
`****** General Setup ******
Randomize Timer()
Sync On
Sync Rate 0
Set Text Opaque
Set Display Mode 1024, 768, 32
`**** Declaring Globals *****
Global MaxmapsizeX, MaxmapsizeY As Integer
MaxmapsizeX = 60
MaxmapsizeY = 55
Global Frame_Start, Frame_End As Integer
Frame_Start = 1
Frame_End = 8
Global ScrollMoveX#, ScrollMoveY# As Float
Global ScrollMapX, ScrollMapY As Integer
ScrollMapX = 0
ScrollMapY = 0
`**** Declaring Constants ****
#Constant Tilesize = 32 ` Doing this will allow me to change the size to 64 or whatever later on easily if i wish
#Constant Warrior = 65 ` Tileset is 64 images so 1 To 64 is taken
`**** Sort out the map ****
Load Image "Tileset.bmp", 1
Dim Map(MaxmapsizeX - 1, MaxmapsizeY - 1)
` Grab images
Paste Image 1, 0, 0
a = 1
For y = 0 To 7
For x = 0 To 7
Get Image a, x * Tilesize, y * Tilesize, x * Tilesize + Tilesize, y * Tilesize + Tilesize
Inc a
Next x
Next y
Cls
` Read in tile number data to the map array
For y = 0 To MaxmapsizeY - 1
For x = 0 To MaxmapsizeX - 1
Read Map(x,y)
Next x
Next y
`**** Create Character Sprite ****
Load Image "manwalk.png", Warrior
Create Animated Sprite 1, "manwalk.png", 8, 8, Warrior
Sprite 1, Screen Width() / 2, Screen Height() / 2, Warrior
`Set Sprite 1, 1, 1 ` Not sure if i need this yet.
Do
DebugText()
DisplayMap()
PlayerHandle()
Sync
Loop
Function DebugText() ` Cant get this to show as you cant paste text over sprites, not sure how to get round this yet.
Set Cursor 0, 400
Print " "
Set Cursor 0, 400
Print "ScrollMapX : ", ScrollMapX, ", ScrollMapY : ", ScrollMapY
Set Cursor 0, 420
Print " "
Set Cursor 0, 420
Print "PosX : ", PosX, ", PosY : ", PosY
Set Cursor 0, 440
Print " "
Set Cursor 0, 440
Print "ScrollMoveX# : ", ScrollMoveX#, ", ScrollMoveY# : ", ScrollMoveY#
Endfunction
Function DisplayMap()
For y = 0 To Screen Height() / Tilesize
For x = 0 To Screen Width() / Tilesize
MapX = x + ScrollMapX
MapY = y + ScrollMapY
If MapX > 0 And MapX < MaxmapsizeX - 1 And MapY > 0 And MapY < MaxmapsizeY - 1
Tile = Map(x,y)
PosX = x * 32 - 32
PosY = y * 32 - 32
Paste Image Tile, PosX + ScrollMoveX#, PosY + ScrollMoveY#
EndIf
Next x
Next y
Endfunction
Function PlayerHandle()
nDirection = 0
If Keystate(17) Then nDirection = 1 ` W (North)
If Keystate(32) Then nDirection = 2 ` D (East)
If Keystate(30) Then nDirection = 3 ` A (West)
If Keystate(31) Then nDirection = 4 ` S (South)
If Keystate(17) And Keystate(32) Then nDirection = 5 ` (North East)
If Keystate(17) And Keystate(30) Then nDirection = 6 ` (North West)
If Keystate(31) And Keystate(32) Then nDirection = 7 ` (South East)
If Keystate(31) And Keystate(30) Then nDirection = 8 ` (South West)
Select nDirection
Case 1 ` North
Frame_Start = 9
Frame_End = 16
Inc ScrollMoveY#
If ScrollMoveY# => 32
Dec ScrollMapY
ScrollMoveY# = 0
Endif
EndCase
Case 2 ` East
Frame_Start = 1
Frame_End = 8
Dec ScrollMoveX#
If ScrollMoveX# =< -32
Inc ScrollMapX
ScrollMoveX# = 0
Endif
EndCase
Case 3 ` West
Frame_Start = 57
Frame_End = 64
Inc ScrollMoveX#
If ScrollMoveX# => 32
Dec ScrollMapX
ScrollMoveX# = 0
Endif
EndCase
Case 4 ` South
Frame_Start = 33
Frame_End = 40
Dec ScrollMoveY#
If ScrollMoveY# =< -32
Inc ScrollMapY
ScrollMoveY# = 0
Endif
EndCase
Case 5 ` North East
Frame_Start = 17
Frame_End = 24
EndCase
Case 6 ` North West
Frame_Start = 25
Frame_End = 32
EndCase
Case 7 ` South East
Frame_Start = 41
Frame_End = 48
EndCase
Case 8 ` South West
Frame_Start = 49
Frame_End = 56
EndCase
Case Default
nDirection = 0
EndCase
EndSelect
If Sprite Frame(1) < Frame_Start or Sprite Frame(1) > Frame_End
Set Sprite Frame 1, Frame_Start
EndIf
If nDirection > 0
Play Sprite 1, Frame_Start, Frame_End, 50
EndIf
Endfunction
data 54,1,1,1,55,31,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,9,10,4,4,9,10,10,4,9,10,4,5,6,4,4,4
data 54,1,1,1,55,31,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,5,6,4,4,4,4,4,4,4,4,4,17,18,4,4,17,18,18,10,17,18,9,10,14,4,9,10
data 54,1,1,54,55,31,4,4,4,4,4,4,4,4,4,4,4,4,12,4,4,4,4,4,4,4,4,4,4,4,4,4,4,13,14,4,4,4,4,4,5,6,4,4,4,9,10,4,4,4,17,18,9,10,17,18,10,4,17,18
data 54,54,54,54,55,31,4,4,4,4,4,30,4,4,4,4,4,4,12,9,10,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,13,14,4,4,4,17,18,4,9,10,9,10,17,18,10,17,18,9,10,4
data 54,54,54,54,55,31,4,4,4,4,4,4,4,4,4,4,4,9,10,17,18,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,9,10,4,4,4,17,18,17,18,10,17,18,9,10,17,18,4
data 54,54,54,54,55,31,4,4,30,4,4,4,4,4,4,4,4,17,18,12,4,4,30,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,30,4,4,4,4,17,18,4,4,4,4,9,10,9,10,9,10,17,18,10,4,4
data 54,54,54,54,55,31,4,4,4,4,4,4,4,4,4,4,12,9,10,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,9,10,4,17,18,17,18,17,18,4,17,18,9,10
data 54,54,54,54,55,31,4,4,4,4,4,5,6,4,4,9,10,17,18,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,9,10,9,10,4,17,18,4,4,4,4,4,9,10,4,9,10,17,18
data 54,54,54,54,55,31,4,4,4,4,4,13,14,4,4,17,18,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,17,18,17,18,4,4,4,4,4,4,4,4,17,18,4,17,18,9,10
data 62,62,62,62,63,31,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,5,6,9,10,9,10,17,18
data 38,38,38,38,38,39,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,30,4,4,4,4,4,4,4,4,4,4,4,5,6,4,4,4,4,4,4,9,10,4,4,4,4,4,9,10,4,4,13,14,17,18,17,18,9,10
data 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,13,14,4,4,4,30,4,4,17,18,4,4,9,10,4,17,18,4,9,10,4,4,9,10,4,17,18
data 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,17,18,4,4,4,4,17,18,4,4,17,18,9,10,4
data 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,9,10,4,4,4,4,4,4,4,4,4,17,18,4
data 4,4,4,4,4,4,4,4,4,4,30,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,5,6,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,17,18,4,4,4,4,4,4,4,4,4,4,4,4
data 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,13,14,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,9,10,4,9,10,4,4,4,4,4,4,4
data 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,17,18,4,17,18,4,4,4,4,4,4,4
data 4,5,6,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,45,46,46
data 5,6,14,4,4,4,4,5,6,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,30,4,30,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,53,54,54
data 13,14,5,6,4,4,4,13,14,5,6,4,4,4,4,5,6,4,4,4,4,4,4,4,4,4,4,4,4,4,30,4,5,6,30,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,53,54,54
data 4,4,13,14,5,6,12,4,4,13,14,4,4,4,4,13,14,4,4,4,4,4,4,4,4,4,4,4,4,4,30,4,13,14,45,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,54,54,54
data 4,4,4,4,13,5,6,4,4,4,4,4,4,5,6,4,30,4,4,4,4,4,4,4,4,4,4,4,4,12,4,30,4,30,53,54,54,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62
data 4,5,6,4,5,6,14,4,4,5,6,4,4,13,14,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,30,4,53,54,55,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4
data 4,13,5,6,13,14,30,4,4,13,14,4,4,4,4,4,4,4,4,4,4,4,9,10,4,4,4,4,4,4,4,4,4,4,53,54,55,4,4,5,6,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,5,6,4
data 4,4,13,14,5,6,4,4,4,5,6,4,4,4,4,30,5,6,4,4,4,4,17,18,4,4,4,4,4,4,4,4,4,4,53,54,55,4,4,13,14,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,8,13,14,4
data 4,30,4,4,13,14,4,5,6,13,14,4,4,5,6,4,13,14,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,61,62,63,4,4,4,4,4,4,4,4,4,4,4,4,4,5,6,4,4,4,11,4,4,4,30
data 5,6,5,6,12,4,4,13,14,4,4,4,4,13,14,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,5,6,4,4,4,5,6,4,12,4,4,4,4,4,4,4,4,4,13,14,4,4,4,4,4,4,4,4
data 13,14,13,14,4,5,6,4,30,4,4,4,4,4,4,5,6,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,13,14,4,4,4,13,14,4,4,4,4,4,4,4,9,10,4,4,4,4,4,4,4,4,4,4,4,4
data 4,12,4,5,6,13,5,6,4,4,5,6,4,4,4,13,14,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,17,18,4,4,4,4,4,4,4,4,4,4,4,4
data 4,4,4,13,14,4,13,14,4,4,13,14,4,4,4,4,4,12,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4
data 4,5,6,4,4,5,6,12,4,4,4,5,6,4,4,5,6,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,12,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,5,6,4
data 4,13,5,6,30,13,5,6,30,4,4,13,14,4,12,13,14,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,13,14,4
data 4,4,13,14,5,6,13,14,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,30,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,30,4,4,4
data 4,4,5,6,5,6,4,4,4,5,6,4,4,5,6,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,30,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4
data 5,6,13,14,13,5,6,4,4,13,14,12,4,13,14,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,5,6,4,5,6,4,5,6,4,5,6,4,5,6,4,5,6,4,5,6,4,5,6,4,5,6,4,5,6,4
data 13,14,4,4,5,6,5,6,4,4,4,4,4,4,4,4,4,5,6,4,4,4,4,4,4,4,4,4,4,4,13,14,30,13,14,4,13,14,4,13,14,4,13,14,4,13,14,4,13,14,4,13,14,4,13,14,4,13,14,4
data 4,5,6,4,13,14,13,14,35,4,4,5,6,4,4,4,4,13,14,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,30,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4
data 4,13,14,4,4,4,5,6,4,4,4,13,14,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,5,6,4,45,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46
data 5,6,4,5,6,4,13,14,30,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,13,14,4,53,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54
data 5,6,4,13,14,4,4,4,4,5,6,4,4,4,4,4,5,6,4,12,4,4,4,4,4,4,4,4,4,4,4,4,53,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54
data 13,14,5,6,5,6,4,4,4,13,14,4,4,4,4,4,13,14,4,4,4,4,4,4,4,4,4,4,4,5,6,4,53,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54
data 4,4,13,5,6,14,12,4,4,4,12,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,13,14,4,53,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54
data 5,6,5,6,5,6,5,6,4,4,4,5,6,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,53,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54
data 13,14,13,14,13,14,13,14,4,4,4,13,14,4,12,4,4,4,4,4,4,4,4,4,4,4,4,4,4,5,6,4,53,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54
data 30,5,6,30,12,5,6,4,30,4,4,4,4,4,4,4,4,4,12,4,4,4,4,4,4,4,4,4,4,13,14,4,53,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54
data 4,13,14,4,4,13,14,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,61,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,54,54,54,54,54,54,54,54,54
data 4,4,4,4,30,4,12,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,21,22,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,53,54,54,54,54,54,54,54,54
data 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,29,4,12,7,4,4,4,7,4,12,4,4,4,7,4,4,7,4,4,4,53,54,54,54,54,54,54,54,54
data 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,7,4,4,7,4,4,7,4,11,4,4,4,4,7,4,53,54,54,54,54,54,54,54,54
data 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,7,4,4,7,4,4,4,4,53,54,54,54,54,54,54,54,54
data 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,29,4,4,7,12,4,7,4,4,4,4,4,12,4,4,4,4,35,7,4,53,54,54,54,54,54,54,54,54
data 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,29,4,4,4,4,4,11,4,7,4,4,7,4,4,4,7,4,4,4,4,53,54,54,54,54,54,54,54,54
data 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,29,12,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,53,54,54,54,54,54,54,54,54
data 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,29,4,7,4,4,7,4,4,7,4,4,4,7,4,7,4,4,7,12,4,53,54,54,54,54,54,54,54,54
data 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,29,4,4,4,4,4,12,4,4,4,4,4,4,4,4,4,4,4,4,4,53,54,54,54,54,54,54,54,54
Media Attached.