' First you need to know how to make a tile based game 'Now that you understand that you should be able to use 'this code. Just look down in the game sub. 'If you don't understand this or if you have a question 'email me at sk8miniramps@yahoo.com 'Feel free to use this code all you want. You can just 'copy and paste it into your game if you want. DECLARE SUB thepix () DECLARE SUB game () DIM SHARED car(300, 3), map(70, 30) DIM SHARED t1(300) ' SCREEN 9, 0, 1, 0 ' CALL thepix 'car0 DATA 00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00 DATA 00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00 DATA 00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00 DATA 00,00,00,08,08,08,04,04,04,04,04,04,04,04,04,04,08,08,08,08,08,08,00,00 DATA 00,00,08,04,08,07,04,07,07,07,04,07,07,07,04,04,08,08,08,08,08,08,08,08 DATA 00,00,08,04,08,07,04,04,04,04,04,04,04,04,07,07,04,04,04,04,04,04,04,08 DATA 00,00,08,04,08,07,04,04,04,04,04,04,04,07,07,07,04,04,04,04,04,04,08,08 DATA 00,00,08,04,08,07,04,04,04,04,04,04,04,07,07,07,04,04,04,04,04,04,04,08 DATA 00,00,08,01,08,07,01,01,01,01,01,01,01,07,07,07,01,01,01,01,01,01,01,08 DATA 00,00,08,01,08,07,01,01,01,01,01,01,01,07,07,07,01,01,01,01,01,01,01,08 DATA 00,00,08,04,08,07,04,04,04,04,04,04,04,07,07,07,04,04,04,04,04,04,04,08 DATA 00,00,08,04,08,07,04,04,04,04,04,04,04,07,07,07,04,04,04,04,04,04,08,08 DATA 00,00,08,04,08,07,04,04,04,04,04,04,04,04,07,07,04,04,04,04,04,04,04,08 DATA 00,00,08,04,08,08,04,07,07,07,04,07,07,07,04,04,08,08,08,08,08,08,08,08 DATA 00,00,00,08,08,04,04,04,04,04,04,04,04,04,04,04,08,08,08,08,08,00,00,00 DATA 00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00 DATA 00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00 DATA 00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00 ' 'car1 DATA 00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00 DATA 00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00 DATA 00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00 DATA 00,00,08,08,08,08,08,08,04,04,04,04,04,00,00,00,00,00,00,00,00,00,00,00 DATA 08,08,08,08,08,08,08,08,04,04,07,07,07,00,00,00,00,00,00,00,00,00,00,00 DATA 08,04,04,04,04,04,04,04,07,07,04,04,04,00,00,00,00,00,00,00,00,00,00,00 DATA 08,08,04,04,04,04,04,04,07,07,07,04,04,00,00,00,00,00,00,00,00,00,00,00 DATA 08,04,04,04,04,04,04,04,07,07,07,04,04,00,00,00,00,00,00,00,00,00,00,00 DATA 08,01,01,01,01,01,01,01,07,07,07,01,01,00,00,00,00,00,00,00,00,00,00,00 DATA 08,01,01,01,01,01,01,01,07,07,07,01,01,00,00,00,00,00,00,00,00,00,00,00 DATA 08,04,04,04,04,04,04,04,07,07,07,04,04,00,00,00,00,00,00,00,00,00,00,00 DATA 08,08,04,04,04,04,04,04,07,07,07,04,04,00,00,00,00,00,00,00,00,00,00,00 DATA 08,04,04,04,04,04,04,04,07,07,04,04,04,00,00,00,00,00,00,00,00,00,00,00 DATA 08,08,08,08,08,08,08,08,04,04,07,07,07,00,00,00,00,00,00,00,00,00,00,00 DATA 00,00,08,08,08,08,08,08,04,04,04,04,04,00,00,00,00,00,00,00,00,00,00,00 DATA 00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00 DATA 00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00 DATA 00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00 ' 't1 DATA 08,08,08,08,08,08,08,08,08,08,08,08,08,08,08,08,08,08,08,08,08,08,08,08 DATA 08,06,06,06,06,06,06,06,06,06,06,06,06,06,06,06,06,06,06,06,06,06,06,08 DATA 08,06,06,06,06,06,06,06,06,06,06,06,06,06,06,06,06,06,06,06,06,06,06,08 DATA 08,06,06,06,06,06,06,06,06,06,06,06,06,06,06,06,06,06,06,06,06,06,06,08 DATA 08,06,06,06,06,06,06,06,06,06,06,06,06,06,06,06,06,06,06,06,06,06,06,08 DATA 08,06,06,06,06,06,06,06,06,06,06,06,06,06,06,06,06,06,06,06,06,06,06,08 DATA 08,06,06,06,06,06,06,06,06,06,06,06,06,06,06,06,06,06,06,06,06,06,06,08 DATA 08,06,06,06,06,06,06,06,06,06,06,06,06,06,06,06,06,06,06,06,06,06,06,08 DATA 08,06,06,06,06,06,06,06,06,06,06,06,06,06,06,06,06,06,06,06,06,06,06,08 DATA 08,06,06,06,06,06,06,06,06,06,06,06,06,06,06,06,06,06,06,06,06,06,06,08 DATA 08,06,06,06,06,06,06,06,06,06,06,06,06,06,06,06,06,06,06,06,06,06,06,08 DATA 08,06,06,06,06,06,06,06,06,06,06,06,06,06,06,06,06,06,06,06,06,06,06,08 DATA 08,06,06,06,06,06,06,06,06,06,06,06,06,06,06,06,06,06,06,06,06,06,06,08 DATA 08,06,06,06,06,06,06,06,06,06,06,06,06,06,06,06,06,06,06,06,06,06,06,08 DATA 08,06,06,06,06,06,06,06,06,06,06,06,06,06,06,06,06,06,06,06,06,06,06,08 DATA 08,06,06,06,06,06,06,06,06,06,06,06,06,06,06,06,06,06,06,06,06,06,06,08 DATA 08,06,06,06,06,06,06,06,06,06,06,06,06,06,06,06,06,06,06,06,06,06,06,08 DATA 08,08,08,08,08,08,08,08,08,08,08,08,08,08,08,08,08,08,08,08,08,08,08,08 ' FOR y = 1 TO 29 FOR x = 1 TO 52 READ map(x, y) NEXT: NEXT ' 'map 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 ' 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 DATA 0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 DATA 0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1 DATA 0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1 DATA 0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1 DATA 0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1 DATA 0,1,1,1,1,1,1,1,0,0,0,0,1,0,0,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 DATA 0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1 DATA 0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1 DATA 0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1 DATA 0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1 DATA 0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1 DATA 0,1,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1 DATA 0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1 DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1 DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1 DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1 DATA 0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1 DATA 0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1 DATA 0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1 DATA 0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1 DATA 0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1 DATA 0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1 DATA 0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1 DATA 0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 DATA 0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1 DATA 0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1 DATA 0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1 DATA 0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1 DATA 0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 ' ' CALL game ' END SUB game '''''''''''''''''''' '''''the game sub''' '''''''''''''''''''' ' These are your starting values (sk stands for skateboard 'because my character is usually a skateboarder.) d stands 'for direction. I use this variable in my character's array 'to get the right bitmap. (the character in this code is a 'half drawn car. You can replace it if you want.) 'lx and ly are the coordinates of the map. ' skx = 14: sky = 9: d = 0: r = 0: lx = 0 ' ' CLS PCOPY 1, 0 'The top left corner of the map in the map array is at 1,1. 'But if you want to print the tile at 20,20 in the map array 'as the top left corner on the screen, then you want to start 'you x and y loops at 20,20 like this ' ' 19 is the number or columns that can be printed FOR y = ly + 1 TO ly + 19 'on the screen at one time FOR x = lx + 1 TO lx + 26 '26 number of rows on screen 'this finds the what the block wanted should be from the map array 'and then the put statement calculates where it should be place on the screen IF map(x, y) = 1 THEN PUT ((x - lx) * 24 - 24, (y - ly) * 18 - 18), t1 NEXT: NEXT 'skx and sky are the coordinates of you character on the screen 'I you want his coordinates on the map you need to add lx and ly PUT (skx * 24 - 24, sky * 18 - 18), car(300, d) PCOPY 1, 0 ' ' DO k$ = INKEY$ 'IF INKEY$ = "" THEN k$ = "" IF k$ = "" THEN SOUND 0, 5 IF r = 1 THEN r = 0: CLS FOR y = ly + 1 TO ly + 19 FOR x = lx + 1 TO lx + 26 IF map(x, y) = 1 THEN PUT ((x - lx) * 24 - 24, (y - ly) * 18 - 18), t1 NEXT: NEXT PUT (skx * 24 - 24, sky * 18 - 18), car(300, d) PCOPY 1, 0 END IF 'IF k$ <> "" THEN a$ = k$ ' LOCATE 2, 3 ' PRINT k$': SLEEP 2 ' PCOPY 1, 0 ' '''''' 'moving ' ' 'move to edges IF k$ = CHR$(0) + CHR$(72) AND (ly < 0 OR (sky + ly) > 20) AND map(skx + lx, (sky + ly) - 1) <> 1 AND r = 0 THEN sky = sky - 1: r = 1: d = 1 IF k$ = CHR$(0) + CHR$(77) AND (lx > 26 OR skx < 14) AND map((skx + lx) + 1, sky + ly) <> 1 AND r = 0 THEN skx = skx + 1: r = 1: d = 0 IF k$ = CHR$(0) + CHR$(75) AND (lx < 0 OR (skx + lx) > 38) AND map((skx + lx) - 1, sky + ly) <> 1 AND r = 0 THEN skx = skx - 1: r = 1: d = 0 IF k$ = CHR$(0) + CHR$(80) AND (ly > 10 OR sky < 9) AND map(skx + lx, (sky + ly) + 1) <> 1 AND r = 0 THEN sky = sky + 1: r = 1: d = 1 ' 'move in center IF k$ = CHR$(0) + CHR$(72) AND ly >= 0 AND (sky + ly) <= 20 AND map(skx + lx, (sky + ly) - 1) <> 1 AND r = 0 THEN ly = ly - 1: r = 1: d = 1 IF k$ = CHR$(0) + CHR$(77) AND lx <= 26 AND skx >= 14 AND map((skx + lx) + 1, sky + ly) <> 1 AND r = 0 THEN lx = lx + 1: r = 1: d = 0 IF k$ = CHR$(0) + CHR$(75) AND lx >= 0 AND (skx + lx) <= 38 AND map((skx + lx) - 1, sky + ly) <> 1 AND r = 0 THEN lx = lx - 1: r = 1: d = 0 IF k$ = CHR$(0) + CHR$(80) AND ly <= 10 AND sky >= 9 AND map(skx + lx, (sky + ly) + 1) <> 1 AND r = 0 THEN ly = ly + 1: r = 1: d = 1 ' IF k$ = CHR$(27) THEN END LOOP ' END SUB SUB thepix ' 'car0 FOR y = 1 TO 18 FOR x = 1 TO 24 READ pix PSET (x, y), pix NEXT: NEXT GET (0, 0)-(24, 18), car(300, 0) ' 'car1 FOR y = 1 TO 18 FOR x = 1 TO 24 READ pix PSET (x, y), pix NEXT: NEXT GET (0, 0)-(24, 18), car(300, 1) ' FOR y = 1 TO 18 FOR x = 1 TO 24 READ pix PSET (x, y), pix NEXT: NEXT GET (0, 0)-(24, 18), t1 ' END SUB