screenwindow.
width = 1280screenwindow.height = 720
cameraX = 640
cameraY = 640
backgroundWidthTiles = 50
backgroundHeightTiles = 50
drawlayer
= _NEWIMAGE(64 * backgroundWidthTiles
, 64 * backgroundHeightTiles
, 32)
'draw backgound layer
drawpositionX = 0
drawpositionY = 0
FOR y
= 1 TO backgroundHeightTiles
FOR x
= 1 TO backgroundWidthTiles
'random tile colors
randomNumber
= (RND * 4) + 1 red = 124
green = 0
blue = 0
red = 0
green = 124
blue = 0
red = 0
green = 0
blue = 124
red = 124
green = 124
blue = 0
red = 124
green = 124
blue = 124
'draw tiles (64x64 pixel) on drawlayer
LINE (drawpositionX
, drawpositionY
)-(drawpositionX
+ 63, drawpositionY
+ 63), _RGB(red
, green
, blue
), BF
drawpositionX = drawpositionX + 64
IF drawpositionX
> backgroundWidthTiles
* 64 THEN drawpositionX
= 0: drawpositionY
= drawpositionY
+ 64
'mainloop
frametimeCurrent
= TIMER(.001) frametime = (frametimeCurrent - frametimeLast)
LOOP UNTIL frametime
>= 1 / 240 '240 is maximum frames per second
frametimeLast = frametimeCurrent
framesPerSecond = 1 / frametime
IF framesPerSecond
< 10 THEN framesPerSecond
= 10 '10 is minimum frames per second
'check keyinputs
'process keyinputs
IF key119
= true
THEN 'move up cameraY = cameraY - (320 / framesPerSecond)
IF cameraY
< 0 THEN cameraY
= 0
IF key115
= true
THEN 'move down cameraY = cameraY + (320 / framesPerSecond)
IF cameraY
> 50 * 64 - 1 THEN cameraY
= 50 * 64 - 1
IF key97
= true
THEN 'move left cameraX = cameraX - (320 / framesPerSecond)
IF cameraX
< 0 THEN cameraX
= 0
IF key100
= true
THEN 'move right cameraX = cameraX + (320 / framesPerSecond)
IF cameraX
> 50 * 64 - 1 THEN cameraX
= 50 * 64 - 1
'calculate drawposition of drawlayer
drawpositionY = cameraY - (screenwindow.height * 0.5) + 1
drawpositionX
= cameraX
- (screenwindow.
width * 0.5) + 1
_PUTIMAGE (0, 0), drawlayer
, , (drawpositionX
, drawpositionY
)-(drawpositionX
+ screenwindow.
width - 1, drawpositionY
+ screenwindow.height
- 1)
'print text
shutdown:
keylistener:
'Esc
key27 = false
'w
key119 = false
'a
key97 = false
's
key115 = false
'd
key100 = false