This program shows a square which can move around a tile based environment, I’m having a little problem with collision.
Basically all the tiles which are printed after the collided tile act different to the ones before, its a bit hard to explain, so run the script if you think you'll be able help. I've been trying all sorts to try and fix it, but can seem to do anything to fix it.
REM * SETTINGS
SET DISPLAY MODE 320, 200, 16
HIDE MOUSE
REM * LOADING FILES
LOAD IMAGE "MAN.BMP", 1
LOAD IMAGE "0000.BMP", 100
LOAD IMAGE "0001.BMP", 101
REM * LOADING VARIABLES
MANX = 150
MANY = 90
WORLDX = 0
WORLDY = 0
REM * SYNC SETTINGS
SYNC ON
SYNC RATE 0
REM * START LOOP
DO
CLS
REM * LOADING VARIABLES
OLDMANX = MANX
OLDMANY = MANY
OLDWORLDX = WORLDX
OLDWORLDY = WORLDY
REM * CONTROLS
IF DOWNKEY() = 1 AND MANY < 150 THEN MANY = MANY + 2
IF DOWNKEY() = 1 AND MANY = 150 THEN WORLDY = WORLDY - 2
IF LEFTKEY() = 1 AND MANX > 60 THEN MANX = MANX - 2
IF LEFTKEY() = 1 AND MANX = 60 THEN WORLDX = WORLDX + 2
IF RIGHTKEY() = 1 AND MANX < 240 THEN MANX = MANX + 2
IF RIGHTKEY() = 1 AND MANX = 240 THEN WORLDX = WORLDX - 2
IF UPKEY() = 1 AND MANY > 60 THEN MANY = MANY - 2
IF UPKEY() = 1 AND MANY = 60 THEN WORLDY = WORLDY + 2
REM * PRINT LEVEL + TILE PROPERTIES
FOR A = 0 TO 19
FOR B = 0 TO 19
READ DATA
REM * TILES START
REM * TILE 0
IF (B*16)+WORLDX > 320 OR (B*16)+WORLDX < -16 OR (A*16)+WORLDY > 200 OR (A*16)+WORLDY < -16
ELSE
IF DATA = 0 THEN PASTE IMAGE 100,(B*16)+WORLDX,(a*16)+WORLDY,1
ENDIF
REM * TILE 1
IF (B*16)+WORLDX > 320 OR (B*16)+WORLDX < -16 OR (A*16)+WORLDY > 200 OR (A*16)+WORLDY < -16
ELSE
IF DATA = 1
PASTE IMAGE 101,(B*16)+WORLDX,(A*16)+WORLDY,1
IF MANX+16=>(B*16)+WORLDX AND MANX<=(B*16)+(16+WORLDX) AND MANY+16=>(A*16)+WORLDY AND MANY<=(A*16)+(16+WORLDY)
IF MANX = 60 OR MANX = 240 OR MANY = 60 OR MANY = 150
WORLDX = OLDWORLDX
WORLDY = OLDWORLDY
ELSE
MANX=OLDMANX
MANY=OLDMANY
ENDIF
ENDIF
ENDIF
ENDIF
REM * TILES END
NEXT B
NEXT A
REM * PRINT LEVEL END
PASTE IMAGE 1,MANX,MANY,1
REM * END LOOP + LOOP
RESTORE
SYNC
LOOP
REM * DATA FILE
DATA 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
DATA 1, , , , , , , , , , , , , , , , , , ,1
DATA 1, , , , , , , , , , , , , , , , , , ,1
DATA 1, , , , , , , , , , , , , , , , , , ,1
DATA 1, , , , , , , , , , , , , , , , , , ,1
DATA 1, , , , , , , , , , , , , , , , , , ,1
DATA 1, , , , , , , , , , , , , , , , , , ,1
DATA 1, , , , , , , , , , , , , , , , , , ,1
DATA 1, , , , , , , , , , , , , , , , , , ,1
DATA 1, , , , , , , , , , , , , , , , , , ,1
DATA 1, , , , , , , , , , , , , , , , , , ,1
DATA 1, , , , , , , , , , , , , , , , , , ,1
DATA 1, , , , , , , , , , , , , , , , , , ,1
DATA 1, , , , , , , , , , , , , , , , , , ,1
DATA 1, , , , , , , , , , , , , , , , , , ,1
DATA 1, , , , , , , , , , , , , , , , , , ,1
DATA 1, , , , , , , , , , , , , , , , , , ,1
DATA 1, , , , , , , , , , , , , , , , , , ,1
DATA 1, , , , , , , , , , , , , , , , , , ,1
DATA 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
The data files are three 16x16 bitmaps.
erm...