Acmlm's Board - I2 Archive - Programming - Need Help With QuickBasic
User | Post |
Nebetsu
Posts: 769/1574 |
Thanks. As soon as I have access to a computer with QuickBasic, I'll give it a try! ^^ |
TheMonster
Posts: 3/4 |
Hrmm...I cleaned up the code a little bit and added map switching(hit "a" to see it in action). I didn't do external file-loading, at the moment. If someone else doesn't show you within the next couple of days, maybe I will whip something up(time permitting).
Hopefully most of the changes I made are self-explanatory. Questions? Ask away.
'---CODE START--- DEFINT A-Z SCREEN 13 RANDOMIZE TIMER
DIM man(196, 1) DIM enemyx(100), enemyy(100) DIM sprite(196, 8) DIM map(20, 14, 1)
TYPE guytype x AS INTEGER y AS INTEGER life AS INTEGER END TYPE DIM guy AS guytype, oldguy AS guytype guy.x = 11 guy.y = 14 guy.life = 100
'!*!*!*!*!*!*!*!*! enemies = 20 '!*!*!*!*!*!*!*!*!
'Load sprites FOR i = 0 TO 8 FOR y = 0 TO 12 FOR x = 0 TO 14 READ clr PSET (x, y), clr NEXT NEXT GET (0, 0)-(14, 12), sprite(0, i) NEXT 'Load maps FOR i = 0 TO 1 FOR y = 0 TO 14 FOR x = 0 TO 20 READ map(x, y, i) NEXT NEXT NEXT 'Load deliciously cute little mansy FOR i = 0 TO 1 FOR y = 0 TO 12 FOR x = 0 TO 14 READ clr PSET (x, y), clr NEXT NEXT GET (0, 0)-(14, 12), man(0, i) NEXT CLS
mapnum = 0 mainloop: 'GOSUB redraw
'!*!*!*!*!*!*!*!*! 'this gets random positions for each of the enemies...
FOR i = 1 TO enemies enemyx(i) = INT(RND * 21) enemyy(i) = INT(RND * 15) NEXT '!*!*!*!*!*!*!*!*!
DO dx = 0 dy = 0 press$ = INKEY$ SELECT CASE press$ CASE CHR$(0) + CHR$(75) dx = -1 CASE CHR$(0) + CHR$(77) dx = 1 CASE CHR$(0) + CHR$(72) dy = -1 CASE CHR$(0) + CHR$(80) dy = 1 CASE "a", "A" mapnum = mapnum XOR 1 GOSUB redraw END SELECT
checktile = map(guy.x + dx, guy.y + dy, mapnum) IF checktile <> 2 AND checktile <> 3 THEN guy.x = guy.x + dx guy.y = guy.y + dy END IF
IF oldguy.x <> guy.x OR oldguy.y <> guy.y THEN oldguy.x = guy.x oldguy.y = guy.y GOSUB redraw END IF
'!*!*!*!*!*!*!*!*!
FOR i = 1 TO enemies IF enemyx(i) = guy.x AND enemyy(i) = guy.y THEN GOSUB BaTtLes NEXT '!*!*!*!*!*!*!*!*! LOOP UNTIL press$ = CHR$(27) END
redraw: FOR y = 0 TO 14 FOR x = 0 TO 20 PUT (x * 15, y * 13), sprite(0, map(x, y, mapnum) - 1), PSET NEXT NEXT PUT (guy.x * 15, guy.y * 13), man(0, 1), AND PUT (guy.x * 15, guy.y * 13), man(0, 0), OR RETURN
FloorTile:
DATA 02,02,02,02,02,02,02,02,02,02,02,02,02,02,02 DATA 02,02,02,02,02,02,02,02,02,02,02,02,02,02,02 DATA 02,02,02,02,02,02,02,02,02,02,02,02,02,02,02 DATA 02,02,02,02,02,02,02,02,02,02,02,02,02,02,02 DATA 02,02,02,02,02,02,02,02,02,02,02,02,02,02,02 DATA 02,02,02,02,02,02,02,02,02,02,02,02,02,02,02 DATA 02,02,02,02,02,02,02,02,02,02,02,02,02,02,02 DATA 02,02,02,02,02,02,02,02,02,02,02,02,02,02,02 DATA 02,02,02,02,02,02,02,02,02,02,02,02,02,02,02 DATA 02,02,02,02,02,02,02,02,02,02,02,02,02,02,02 DATA 02,02,02,02,02,02,02,02,02,02,02,02,02,02,02 DATA 02,02,02,02,02,02,02,02,02,02,02,02,02,02,02 DATA 02,02,02,02,02,02,02,02,02,02,02,02,02,02,02
WaterTile:
DATA 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 DATA 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 DATA 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 DATA 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 DATA 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 DATA 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 DATA 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 DATA 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 DATA 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 DATA 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 DATA 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 DATA 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 DATA 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
WallTile:
DATA 07,08,08,08,08,08,08,08,08,08,08,08,08,08,00 DATA 08,07,07,07,07,07,07,07,07,07,07,07,07,07,00 DATA 08,07,07,07,07,07,07,07,07,07,07,07,07,07,00 DATA 08,07,07,07,07,07,07,07,07,07,07,07,07,07,00 DATA 08,07,07,07,07,07,07,07,07,07,07,07,07,07,00 DATA 08,07,07,07,07,07,07,07,07,07,07,07,07,07,00 DATA 08,07,07,07,07,07,07,07,07,07,07,07,07,07,00 DATA 08,07,07,07,07,07,07,07,07,07,07,07,07,07,00 DATA 08,07,07,07,07,07,07,07,07,07,07,07,07,07,00 DATA 08,07,07,07,07,07,07,07,07,07,07,07,07,07,00 DATA 08,07,07,07,07,07,07,07,07,07,07,07,07,07,00 DATA 08,07,07,07,07,07,07,07,07,07,07,07,07,07,00 DATA 08,00,00,00,00,00,00,00,00,00,00,00,00,00,07
BridgeTileLeft:
DATA 12,6,6,6,6,6,6,6,6,6,6,6,6,6,6 DATA 12,6,6,6,6,6,6,6,6,6,6,6,6,6,6 DATA 12,6,6,6,6,6,6,6,6,6,6,6,6,6,6 DATA 12,6,6,6,6,6,6,6,6,6,6,6,6,6,6 DATA 12,6,6,6,6,6,6,6,6,6,6,6,6,6,6 DATA 12,6,6,6,6,6,6,6,6,6,6,6,6,6,6 DATA 12,6,6,6,6,6,6,6,6,6,6,6,6,6,6 DATA 12,6,6,6,6,6,6,6,6,6,6,6,6,6,6 DATA 12,6,6,6,6,6,6,6,6,6,6,6,6,6,6 DATA 12,6,6,6,6,6,6,6,6,6,6,6,6,6,6 DATA 12,6,6,6,6,6,6,6,6,6,6,6,6,6,6 DATA 12,6,6,6,6,6,6,6,6,6,6,6,6,6,6 DATA 12,6,6,6,6,6,6,6,6,6,6,6,6,6,6
BridgeTileRight:
DATA 6,6,6,6,6,6,6,6,6,6,6,6,6,6,12 DATA 6,6,6,6,6,6,6,6,6,6,6,6,6,6,12 DATA 6,6,6,6,6,6,6,6,6,6,6,6,6,6,12 DATA 6,6,6,6,6,6,6,6,6,6,6,6,6,6,12 DATA 6,6,6,6,6,6,6,6,6,6,6,6,6,6,12 DATA 6,6,6,6,6,6,6,6,6,6,6,6,6,6,12 DATA 6,6,6,6,6,6,6,6,6,6,6,6,6,6,12 DATA 6,6,6,6,6,6,6,6,6,6,6,6,6,6,12 DATA 6,6,6,6,6,6,6,6,6,6,6,6,6,6,12 DATA 6,6,6,6,6,6,6,6,6,6,6,6,6,6,12 DATA 6,6,6,6,6,6,6,6,6,6,6,6,6,6,12 DATA 6,6,6,6,6,6,6,6,6,6,6,6,6,6,12 DATA 6,6,6,6,6,6,6,6,6,6,6,6,6,6,12
BridgeTileBottom:
DATA 6,6,6,6,6,6,6,6,6,6,6,6,6,6,6 DATA 6,6,6,6,6,6,6,6,6,6,6,6,6,6,6 DATA 6,6,6,6,6,6,6,6,6,6,6,6,6,6,6 DATA 6,6,6,6,6,6,6,6,6,6,6,6,6,6,6 DATA 6,6,6,6,6,6,6,6,6,6,6,6,6,6,6 DATA 6,6,6,6,6,6,6,6,6,6,6,6,6,6,6 DATA 6,6,6,6,6,6,6,6,6,6,6,6,6,6,6 DATA 6,6,6,6,6,6,6,6,6,6,6,6,6,6,6 DATA 6,6,6,6,6,6,6,6,6,6,6,6,6,6,6 DATA 6,6,6,6,6,6,6,6,6,6,6,6,6,6,6 DATA 6,6,6,6,6,6,6,6,6,6,6,6,6,6,6 DATA 6,6,6,6,6,6,6,6,6,6,6,6,6,6,6 DATA 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12
BridgeTileMiddle:
DATA 6,6,6,6,6,6,6,6,6,6,6,6,6,6,6 DATA 6,6,6,6,6,6,6,6,6,6,6,6,6,6,6 DATA 6,6,6,6,6,6,6,6,6,6,6,6,6,6,6 DATA 6,6,6,6,6,6,6,6,6,6,6,6,6,6,6 DATA 6,6,6,6,6,6,6,6,6,6,6,6,6,6,6 DATA 6,6,6,6,6,6,6,6,6,6,6,6,6,6,6 DATA 6,6,6,6,6,6,6,6,6,6,6,6,6,6,6 DATA 6,6,6,6,6,6,6,6,6,6,6,6,6,6,6 DATA 6,6,6,6,6,6,6,6,6,6,6,6,6,6,6 DATA 6,6,6,6,6,6,6,6,6,6,6,6,6,6,6 DATA 6,6,6,6,6,6,6,6,6,6,6,6,6,6,6 DATA 6,6,6,6,6,6,6,6,6,6,6,6,6,6,6 DATA 6,6,6,6,6,6,6,6,6,6,6,6,6,6,6
BridgeTileLeftBottom:
DATA 12,6,6,6,6,6,6,6,6,6,6,6,6,6,6 DATA 12,6,6,6,6,6,6,6,6,6,6,6,6,6,6 DATA 12,6,6,6,6,6,6,6,6,6,6,6,6,6,6 DATA 12,6,6,6,6,6,6,6,6,6,6,6,6,6,6 DATA 12,6,6,6,6,6,6,6,6,6,6,6,6,6,6 DATA 12,6,6,6,6,6,6,6,6,6,6,6,6,6,6 DATA 12,6,6,6,6,6,6,6,6,6,6,6,6,6,6 DATA 12,6,6,6,6,6,6,6,6,6,6,6,6,6,6 DATA 12,6,6,6,6,6,6,6,6,6,6,6,6,6,6 DATA 12,6,6,6,6,6,6,6,6,6,6,6,6,6,6 DATA 12,6,6,6,6,6,6,6,6,6,6,6,6,6,6 DATA 12,6,6,6,6,6,6,6,6,6,6,6,6,6,6 DATA 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12
BridgeTileRightBottom:
DATA 6,6,6,6,6,6,6,6,6,6,6,6,6,6,12 DATA 6,6,6,6,6,6,6,6,6,6,6,6,6,6,12 DATA 6,6,6,6,6,6,6,6,6,6,6,6,6,6,12 DATA 6,6,6,6,6,6,6,6,6,6,6,6,6,6,12 DATA 6,6,6,6,6,6,6,6,6,6,6,6,6,6,12 DATA 6,6,6,6,6,6,6,6,6,6,6,6,6,6,12 DATA 6,6,6,6,6,6,6,6,6,6,6,6,6,6,12 DATA 6,6,6,6,6,6,6,6,6,6,6,6,6,6,12 DATA 6,6,6,6,6,6,6,6,6,6,6,6,6,6,12 DATA 6,6,6,6,6,6,6,6,6,6,6,6,6,6,12 DATA 6,6,6,6,6,6,6,6,6,6,6,6,6,6,12 DATA 6,6,6,6,6,6,6,6,6,6,6,6,6,6,12 DATA 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12
Map1:
DATA 3,3,3,3,3,3,3,3,4,7,7,7,5,3,3,3,3,3,3,3,3 DATA 1,1,1,1,1,1,1,1,4,7,7,7,5,1,1,1,1,1,1,1,1 DATA 2,2,2,2,2,2,2,2,4,7,7,7,5,2,2,2,2,2,2,2,2 DATA 2,2,2,2,2,2,2,2,4,7,7,7,5,2,2,2,2,2,2,2,2 DATA 2,2,2,2,2,2,2,2,4,7,7,7,5,2,2,2,2,2,2,2,2 DATA 1,1,1,1,1,1,1,1,8,6,6,6,9,1,1,1,1,1,1,1,1 DATA 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 DATA 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 DATA 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 DATA 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 DATA 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 DATA 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 DATA 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 DATA 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 DATA 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
Map2:
DATA 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 DATA 1,2,2,1,1,2,2,2,1,2,2,2,1,2,1,1,1,1,1,1,1 DATA 1,2,1,2,1,1,2,1,1,2,1,1,1,2,1,1,1,1,1,1,1 DATA 1,2,1,2,1,1,2,1,1,2,2,1,1,2,1,1,1,1,1,1,1 DATA 1,2,1,2,1,1,2,1,1,2,1,1,1,1,1,1,1,1,1,1,1 DATA 1,2,2,1,1,2,2,2,1,2,2,2,1,2,1,1,1,1,1,1,1 DATA 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 DATA 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 DATA 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 DATA 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 DATA 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 DATA 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 DATA 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 DATA 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 DATA 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
DATA 00,00,00,00,00,00,09,09,09,09,00,00,00,00,00 DATA 00,00,00,00,00,09,09,09,09,09,09,00,00,00,00 DATA 00,00,00,09,09,66,09,09,09,09,09,66,00,00,00 DATA 00,00,15,00,00,66,66,66,66,66,66,66,00,00,00 DATA 00,00,00,00,00,00,66,00,66,00,66,00,00,00,00 DATA 00,00,00,00,00,00,66,66,66,66,66,00,00,00,00 DATA 00,00,00,00,00,00,00,66,00,66,00,00,00,00,00 DATA 00,00,00,00,00,00,01,01,01,01,01,00,00,00,00 DATA 00,00,00,00,00,01,00,01,01,01,00,01,00,00,00 DATA 00,00,00,00,00,01,00,01,01,01,00,01,00,00,00 DATA 00,00,00,00,00,66,00,01,01,01,00,66,00,00,00 DATA 00,00,00,00,01,00,00,07,00,07,00,00,01,00,00 DATA 00,00,00,00,00,01,01,01,00,01,01,01,00,00,00
'This is the mask for the sprite...
DATA 255,255,255,255,255,255,009,009,009,009,255,255,255,255,255 DATA 255,255,255,255,255,009,009,009,009,009,009,255,255,255,255 DATA 255,255,255,009,009,066,009,009,009,009,009,066,255,255,255 DATA 255,255,015,255,255,066,066,066,066,066,066,066,255,255,255 DATA 255,255,255,255,255,255,066,000,066,000,066,255,255,255,255 DATA 255,255,255,255,255,255,066,066,066,066,066,255,255,255,255 DATA 255,255,255,255,255,255,255,066,000,066,255,255,255,255,255 DATA 255,255,255,255,255,255,001,001,001,001,001,255,255,255,255 DATA 255,255,255,255,255,001,255,001,001,001,255,001,255,255,255 DATA 255,255,255,255,255,001,255,001,001,001,255,001,255,255,255 DATA 255,255,255,255,255,066,255,001,001,001,255,066,255,255,255 DATA 255,255,255,255,001,255,255,007,255,007,255,255,001,255,255 DATA 255,255,255,255,255,001,001,001,255,001,001,001,255,255,255 END
BaTtLes: CLS SCREEN 0 WIDTH 80, 25 PRINT "TIME TO BATTLE!" PRINT "press a key..." SLEEP CLS badlife = 100 PRINT "Your life is "; guy.life PRINT "The badguys life is"; badlife PRINT "He hurt you 35" guy.life = guy.life - 35 PRINT "your life is now"; guy.life IF guy.life <= 0 THEN PRINT "You lost!!!": END SLEEP SCREEN 13 GOTO mainloop '---CODE END---
|
Nebetsu
Posts: 767/1574 |
Iabmaster: How would I do that? Xkeeper: I know. I'm kinda new to tiles, so I had to see a sample to make this. |
Xkeeper
Posts: -2769/-863 |
Holy shit that's unreadable.
I can't make heads or tails of that code, it's worse than Frontpage HTML output |
labmaster
Posts: 13/43 |
One way to have your maps externally is simply to have the values in a binary file, that you can parse with QB's file I/O functions - the same goes for tiles as well. |
Nebetsu
Posts: 766/1574 |
Ok there's a couple things I want to be able to do. I want to be able to hold my bitmaps in seperate files, so I can make my main code smaller and easier to manage. I also need to know how to switch maps. Can anyone help???
Here is my edit of someone elses code. I took someone elses code and added sprites, edited sprites, changed the first map, and added a second map.
I got the second map in there but I dont know how I would switch it efficiently. Any help would be appreciated.
DIM guy(50), guysh(50), enemyx(100), enemyy(100) DIM sprite1(50), sprite2(50), sprite3(50), sprite4(50), sprite5(50) DIM sprite6(50), sprite7(50), sprite8(50), sprite9(50) DIM Map1(21, 15), Map2(21, 15) SCREEN 13
guyx = 11 guyy = 14 goodlife = 100 '!*!*!*!*!*!*!*!*! 'This is the amount of enemies in a game and randomizes the timer... RANDOMIZE TIMER enemies = 20 '!*!*!*!*!*!*!*!*!
FOR y = 1 TO 13 FOR x = 1 TO 15
READ clr PSET (x, y), clr
NEXT: NEXT GET (1, 1)-(15, 13), sprite1
FOR y = 1 TO 13 FOR x = 1 TO 15
READ clr PSET (x, y), clr
NEXT: NEXT GET (1, 1)-(15, 13), sprite2
FOR y = 1 TO 13 FOR x = 1 TO 15
READ clr PSET (x, y), clr
NEXT: NEXT GET (1, 1)-(15, 13), sprite3
FOR y = 1 TO 13 FOR x = 1 TO 15
READ clr PSET (x, y), clr
NEXT: NEXT GET (1, 1)-(15, 13), sprite4
FOR y = 1 TO 13 FOR x = 1 TO 15
READ clr PSET (x, y), clr
NEXT: NEXT GET (1, 1)-(15, 13), sprite5
FOR y = 1 TO 13 FOR x = 1 TO 15
READ clr PSET (x, y), clr
NEXT: NEXT GET (1, 1)-(15, 13), sprite6
FOR y = 1 TO 13 FOR x = 1 TO 15
READ clr PSET (x, y), clr
NEXT: NEXT GET (1, 1)-(15, 13), sprite7
FOR y = 1 TO 13 FOR x = 1 TO 15
READ clr PSET (x, y), clr
NEXT: NEXT GET (1, 1)-(15, 13), sprite8
FOR y = 1 TO 13 FOR x = 1 TO 15
READ clr PSET (x, y), clr
NEXT: NEXT GET (1, 1)-(15, 13), sprite9
CLS FOR y = 1 TO 15 FOR x = 1 TO 21 READ Map1(x, y) NEXT: NEXT
FOR y = 1 TO 15 FOR x = 1 TO 21 READ Map2(x, y) NEXT: NEXT
FOR y = 1 TO 13 FOR x = 1 TO 15
READ clr PSET (x, y), clr
NEXT: NEXT
GET (1, 1)-(15, 13), guy
FOR y = 1 TO 13 FOR x = 1 TO 15
READ clr PSET (x, y), clr
NEXT: NEXT GET (1, 1)-(15, 13), guysh
CLS
'!*!*!*!*!*!*!*!*! 'this gives a point to return to when the battle is over... 10 '!*!*!*!*!*!*!*!*!
FOR y = 1 TO 15 FOR x = 1 TO 21
IF Map1(x, y) = 1 THEN PUT (x * 15 - 15, y * 13 - 13), sprite1 IF Map1(x, y) = 2 THEN PUT (x * 15 - 15, y * 13 - 13), sprite2 IF Map1(x, y) = 3 THEN PUT (x * 15 - 15, y * 13 - 13), sprite3 IF Map1(x, y) = 4 THEN PUT (x * 15 - 15, y * 13 - 13), sprite4 IF Map1(x, y) = 5 THEN PUT (x * 15 - 15, y * 13 - 13), sprite5 IF Map1(x, y) = 6 THEN PUT (x * 15 - 15, y * 13 - 13), sprite6 IF Map1(x, y) = 7 THEN PUT (x * 15 - 15, y * 13 - 13), sprite7 IF Map1(x, y) = 8 THEN PUT (x * 15 - 15, y * 13 - 13), sprite8 IF Map1(x, y) = 9 THEN PUT (x * 15 - 15, y * 13 - 13), sprite9
NEXT: NEXT
PUT (guyx * 15 - 15, guyy * 13 - 13), guysh, AND PUT (guyx * 15 - 15, guyy * 13 - 13), guy, OR
'!*!*!*!*!*!*!*!*! 'this gets random positions for each of the enemies...
FOR i = 1 TO enemies enemyx(i) = INT(RND * 21) enemyy(i) = INT(RND * 15) NEXT '!*!*!*!*!*!*!*!*!
DO press$ = INKEY$
IF press$ = CHR$(0) + CHR$(75) AND Map1(guyx - 1, guyy) <> 3 AND Map1(guyx - 1, guyy) <> 2 THEN IF guyx > 1 THEN guyx = guyx - 1 END IF
IF press$ = CHR$(0) + CHR$(77) AND Map1(guyx + 1, guyy) <> 3 AND Map1(guyx + 1, guyy) <> 2 THEN IF guyx < 20 THEN guyx = guyx + 1 END IF
IF press$ = CHR$(0) + CHR$(72) AND Map1(guyx, guyy - 1) <> 3 AND Map1(guyx, guyy - 1) <> 2 THEN IF guyy > 1 THEN guyy = guyy - 1 END IF
IF press$ = CHR$(0) + CHR$(80) AND Map1(guyx, guyy + 1) <> 3 AND Map1(guyx, guyy + 1) <> 2 THEN IF guyy < 14 THEN guyy = guyy + 1 END IF
IF oldguyx <> guyx OR oldguyy <> guyy THEN oldguyx = guyx oldguyy = guyy FOR y = 1 TO 15 FOR x = 1 TO 21
IF Map1(x, y) = 1 THEN PUT (x * 15 - 15, y * 13 - 13), sprite1, PSET IF Map1(x, y) = 2 THEN PUT (x * 15 - 15, y * 13 - 13), sprite2, PSET IF Map1(x, y) = 3 THEN PUT (x * 15 - 15, y * 13 - 13), sprite3, PSET IF Map1(x, y) = 4 THEN PUT (x * 15 - 15, y * 13 - 13), sprite4, PSET IF Map1(x, y) = 5 THEN PUT (x * 15 - 15, y * 13 - 13), sprite5, PSET IF Map1(x, y) = 6 THEN PUT (x * 15 - 15, y * 13 - 13), sprite6, PSET IF Map1(x, y) = 7 THEN PUT (x * 15 - 15, y * 13 - 13), sprite7, PSET IF Map1(x, y) = 8 THEN PUT (x * 15 - 15, y * 13 - 13), sprite8, PSET IF Map1(x, y) = 9 THEN PUT (x * 15 - 15, y * 13 - 13), sprite9, PSET NEXT: NEXT
PUT (guyx * 15 - 15, guyy * 13 - 13), guysh, AND PUT (guyx * 15 - 15, guyy * 13 - 13), guy, OR
END IF
'!*!*!*!*!*!*!*!*!
FOR i = 1 TO enemies IF enemyx(i) = guyx AND enemyy(i) = guyy THEN GOSUB BaTtLes NEXT '!*!*!*!*!*!*!*!*!
LOOP UNTIL press$ = CHR$(27)
FloorTile:
DATA 02,02,02,02,02,02,02,02,02,02,02,02,02,02,02 DATA 02,02,02,02,02,02,02,02,02,02,02,02,02,02,02 DATA 02,02,02,02,02,02,02,02,02,02,02,02,02,02,02 DATA 02,02,02,02,02,02,02,02,02,02,02,02,02,02,02 DATA 02,02,02,02,02,02,02,02,02,02,02,02,02,02,02 DATA 02,02,02,02,02,02,02,02,02,02,02,02,02,02,02 DATA 02,02,02,02,02,02,02,02,02,02,02,02,02,02,02 DATA 02,02,02,02,02,02,02,02,02,02,02,02,02,02,02 DATA 02,02,02,02,02,02,02,02,02,02,02,02,02,02,02 DATA 02,02,02,02,02,02,02,02,02,02,02,02,02,02,02 DATA 02,02,02,02,02,02,02,02,02,02,02,02,02,02,02 DATA 02,02,02,02,02,02,02,02,02,02,02,02,02,02,02 DATA 02,02,02,02,02,02,02,02,02,02,02,02,02,02,02
WaterTile:
DATA 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 DATA 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 DATA 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 DATA 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 DATA 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 DATA 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 DATA 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 DATA 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 DATA 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 DATA 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 DATA 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 DATA 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 DATA 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
WallTile:
DATA 07,08,08,08,08,08,08,08,08,08,08,08,08,08,00 DATA 08,07,07,07,07,07,07,07,07,07,07,07,07,07,00 DATA 08,07,07,07,07,07,07,07,07,07,07,07,07,07,00 DATA 08,07,07,07,07,07,07,07,07,07,07,07,07,07,00 DATA 08,07,07,07,07,07,07,07,07,07,07,07,07,07,00 DATA 08,07,07,07,07,07,07,07,07,07,07,07,07,07,00 DATA 08,07,07,07,07,07,07,07,07,07,07,07,07,07,00 DATA 08,07,07,07,07,07,07,07,07,07,07,07,07,07,00 DATA 08,07,07,07,07,07,07,07,07,07,07,07,07,07,00 DATA 08,07,07,07,07,07,07,07,07,07,07,07,07,07,00 DATA 08,07,07,07,07,07,07,07,07,07,07,07,07,07,00 DATA 08,07,07,07,07,07,07,07,07,07,07,07,07,07,00 DATA 08,00,00,00,00,00,00,00,00,00,00,00,00,00,07
BridgeTileLeft: DATA 12,6,6,6,6,6,6,6,6,6,6,6,6,6,6 DATA 12,6,6,6,6,6,6,6,6,6,6,6,6,6,6 DATA 12,6,6,6,6,6,6,6,6,6,6,6,6,6,6 DATA 12,6,6,6,6,6,6,6,6,6,6,6,6,6,6 DATA 12,6,6,6,6,6,6,6,6,6,6,6,6,6,6 DATA 12,6,6,6,6,6,6,6,6,6,6,6,6,6,6 DATA 12,6,6,6,6,6,6,6,6,6,6,6,6,6,6 DATA 12,6,6,6,6,6,6,6,6,6,6,6,6,6,6 DATA 12,6,6,6,6,6,6,6,6,6,6,6,6,6,6 DATA 12,6,6,6,6,6,6,6,6,6,6,6,6,6,6 DATA 12,6,6,6,6,6,6,6,6,6,6,6,6,6,6 DATA 12,6,6,6,6,6,6,6,6,6,6,6,6,6,6 DATA 12,6,6,6,6,6,6,6,6,6,6,6,6,6,6
BridgeTileRight: DATA 6,6,6,6,6,6,6,6,6,6,6,6,6,6,12 DATA 6,6,6,6,6,6,6,6,6,6,6,6,6,6,12 DATA 6,6,6,6,6,6,6,6,6,6,6,6,6,6,12 DATA 6,6,6,6,6,6,6,6,6,6,6,6,6,6,12 DATA 6,6,6,6,6,6,6,6,6,6,6,6,6,6,12 DATA 6,6,6,6,6,6,6,6,6,6,6,6,6,6,12 DATA 6,6,6,6,6,6,6,6,6,6,6,6,6,6,12 DATA 6,6,6,6,6,6,6,6,6,6,6,6,6,6,12 DATA 6,6,6,6,6,6,6,6,6,6,6,6,6,6,12 DATA 6,6,6,6,6,6,6,6,6,6,6,6,6,6,12 DATA 6,6,6,6,6,6,6,6,6,6,6,6,6,6,12 DATA 6,6,6,6,6,6,6,6,6,6,6,6,6,6,12 DATA 6,6,6,6,6,6,6,6,6,6,6,6,6,6,12
BridgeTileBottom: DATA 6,6,6,6,6,6,6,6,6,6,6,6,6,6,6 DATA 6,6,6,6,6,6,6,6,6,6,6,6,6,6,6 DATA 6,6,6,6,6,6,6,6,6,6,6,6,6,6,6 DATA 6,6,6,6,6,6,6,6,6,6,6,6,6,6,6 DATA 6,6,6,6,6,6,6,6,6,6,6,6,6,6,6 DATA 6,6,6,6,6,6,6,6,6,6,6,6,6,6,6 DATA 6,6,6,6,6,6,6,6,6,6,6,6,6,6,6 DATA 6,6,6,6,6,6,6,6,6,6,6,6,6,6,6 DATA 6,6,6,6,6,6,6,6,6,6,6,6,6,6,6 DATA 6,6,6,6,6,6,6,6,6,6,6,6,6,6,6 DATA 6,6,6,6,6,6,6,6,6,6,6,6,6,6,6 DATA 6,6,6,6,6,6,6,6,6,6,6,6,6,6,6 DATA 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12
BridgeTileMiddle:
DATA 6,6,6,6,6,6,6,6,6,6,6,6,6,6,6 DATA 6,6,6,6,6,6,6,6,6,6,6,6,6,6,6 DATA 6,6,6,6,6,6,6,6,6,6,6,6,6,6,6 DATA 6,6,6,6,6,6,6,6,6,6,6,6,6,6,6 DATA 6,6,6,6,6,6,6,6,6,6,6,6,6,6,6 DATA 6,6,6,6,6,6,6,6,6,6,6,6,6,6,6 DATA 6,6,6,6,6,6,6,6,6,6,6,6,6,6,6 DATA 6,6,6,6,6,6,6,6,6,6,6,6,6,6,6 DATA 6,6,6,6,6,6,6,6,6,6,6,6,6,6,6 DATA 6,6,6,6,6,6,6,6,6,6,6,6,6,6,6 DATA 6,6,6,6,6,6,6,6,6,6,6,6,6,6,6 DATA 6,6,6,6,6,6,6,6,6,6,6,6,6,6,6 DATA 6,6,6,6,6,6,6,6,6,6,6,6,6,6,6
BridgeTileLeftBottom:
DATA 12,6,6,6,6,6,6,6,6,6,6,6,6,6,6 DATA 12,6,6,6,6,6,6,6,6,6,6,6,6,6,6 DATA 12,6,6,6,6,6,6,6,6,6,6,6,6,6,6 DATA 12,6,6,6,6,6,6,6,6,6,6,6,6,6,6 DATA 12,6,6,6,6,6,6,6,6,6,6,6,6,6,6 DATA 12,6,6,6,6,6,6,6,6,6,6,6,6,6,6 DATA 12,6,6,6,6,6,6,6,6,6,6,6,6,6,6 DATA 12,6,6,6,6,6,6,6,6,6,6,6,6,6,6 DATA 12,6,6,6,6,6,6,6,6,6,6,6,6,6,6 DATA 12,6,6,6,6,6,6,6,6,6,6,6,6,6,6 DATA 12,6,6,6,6,6,6,6,6,6,6,6,6,6,6 DATA 12,6,6,6,6,6,6,6,6,6,6,6,6,6,6 DATA 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12
BridgeTileRightBottom:
DATA 6,6,6,6,6,6,6,6,6,6,6,6,6,6,12 DATA 6,6,6,6,6,6,6,6,6,6,6,6,6,6,12 DATA 6,6,6,6,6,6,6,6,6,6,6,6,6,6,12 DATA 6,6,6,6,6,6,6,6,6,6,6,6,6,6,12 DATA 6,6,6,6,6,6,6,6,6,6,6,6,6,6,12 DATA 6,6,6,6,6,6,6,6,6,6,6,6,6,6,12 DATA 6,6,6,6,6,6,6,6,6,6,6,6,6,6,12 DATA 6,6,6,6,6,6,6,6,6,6,6,6,6,6,12 DATA 6,6,6,6,6,6,6,6,6,6,6,6,6,6,12 DATA 6,6,6,6,6,6,6,6,6,6,6,6,6,6,12 DATA 6,6,6,6,6,6,6,6,6,6,6,6,6,6,12 DATA 6,6,6,6,6,6,6,6,6,6,6,6,6,6,12 DATA 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12
Map1:
DATA 3,3,3,3,3,3,3,3,4,7,7,7,5,3,3,3,3,3,3,3,3 DATA 1,1,1,1,1,1,1,1,4,7,7,7,5,1,1,1,1,1,1,1,1 DATA 2,2,2,2,2,2,2,2,4,7,7,7,5,2,2,2,2,2,2,2,2 DATA 2,2,2,2,2,2,2,2,4,7,7,7,5,2,2,2,2,2,2,2,2 DATA 2,2,2,2,2,2,2,2,4,7,7,7,5,2,2,2,2,2,2,2,2 DATA 1,1,1,1,1,1,1,1,8,6,6,6,9,1,1,1,1,1,1,1,1 DATA 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 DATA 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 DATA 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 DATA 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 DATA 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 DATA 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 DATA 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 DATA 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 DATA 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
Map2:
DATA 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 DATA 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 DATA 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 DATA 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 DATA 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 DATA 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 DATA 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 DATA 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 DATA 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 DATA 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 DATA 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 DATA 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 DATA 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 DATA 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 DATA 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
DATA 00,00,00,00,00,00,09,09,09,09,00,00,00,00,00 DATA 00,00,00,00,00,09,09,09,09,09,09,00,00,00,00 DATA 00,00,00,09,09,66,09,09,09,09,09,66,00,00,00 DATA 00,00,15,00,00,66,66,66,66,66,66,66,00,00,00 DATA 00,00,00,00,00,00,66,00,66,00,66,00,00,00,00 DATA 00,00,00,00,00,00,66,66,66,66,66,00,00,00,00 DATA 00,00,00,00,00,00,00,66,00,66,00,00,00,00,00 DATA 00,00,00,00,00,00,01,01,01,01,01,00,00,00,00 DATA 00,00,00,00,00,01,00,01,01,01,00,01,00,00,00 DATA 00,00,00,00,00,01,00,01,01,01,00,01,00,00,00 DATA 00,00,00,00,00,66,00,01,01,01,00,66,00,00,00 DATA 00,00,00,00,01,00,00,07,00,07,00,00,01,00,00 DATA 00,00,00,00,00,01,01,01,00,01,01,01,00,00,00
'This is the mask for the sprite...
DATA 255,255,255,255,255,255,009,009,009,009,255,255,255,255,255 DATA 255,255,255,255,255,009,009,009,009,009,009,255,255,255,255 DATA 255,255,255,009,009,066,009,009,009,009,009,066,255,255,255 DATA 255,255,015,255,255,066,066,066,066,066,066,066,255,255,255 DATA 255,255,255,255,255,255,066,000,066,000,066,255,255,255,255 DATA 255,255,255,255,255,255,066,066,066,066,066,255,255,255,255 DATA 255,255,255,255,255,255,255,066,000,066,255,255,255,255,255 DATA 255,255,255,255,255,255,001,001,001,001,001,255,255,255,255 DATA 255,255,255,255,255,001,255,001,001,001,255,001,255,255,255 DATA 255,255,255,255,255,001,255,001,001,001,255,001,255,255,255 DATA 255,255,255,255,255,066,255,001,001,001,255,066,255,255,255 DATA 255,255,255,255,001,255,255,007,255,007,255,255,001,255,255 DATA 255,255,255,255,255,001,001,001,255,001,001,001,255,255,255 END
BaTtLes: CLS SCREEN 0 WIDTH 80, 25 PRINT "TIME TO BATTLE!" PRINT "press a key..." SLEEP CLS badlife = 100 PRINT "Your life is "; goodlife PRINT "The badguys life is"; badlife PRINT "He hurt you 35" goodlife = goodlife - 35 PRINT "your life is now"; goodlife IF goodlife <= 0 THEN PRINT "You lost!!!": END SLEEP SCREEN 13 GOTO 10 |
|