Register | Login
Views: 19364387
Main | Memberlist | Active users | ACS | Commons | Calendar | Online users
Ranks | FAQ | Color Chart | Photo album | IRC Chat
11-02-05 12:59 PM
0 user currently in Programming. | 3 guests
Acmlm's Board - I2 Archive - Programming - Need Help With QuickBasic | |
Add to favorites | "RSS" Feed | Next newer thread | Next older thread
User Post
Nebetsu

Shmee
Level: 55

Posts: 766/1574
EXP: 1291130
For next: 23059

Since: 09-01-04
From: Nebland

Since last post: 3 hours
Last activity: 1 hour
Posted on 01-07-05 10:47 PM Link | Quote
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


(edited by Nebetsu on 01-08-05 02:59 PM)
labmaster

Blue Octorok
Level: 12

Posts: 13/43
EXP: 6135
For next: 1786

Since: 07-17-04
From: New Zealand!

Since last post: 10 days
Last activity: 2 min.
Posted on 01-08-05 02:09 AM Link | Quote
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.
Xkeeper
The required libraries have not been defined.
Level: NAN

Posts: -2769/-863
EXP: NAN
For next: 0

Since: 03-15-04

Since last post: 2 hours
Last activity: -753366 sec.
Posted on 01-08-05 02:51 AM Link | Quote
Holy shit that's unreadable.

I can't make heads or tails of that code, it's worse than Frontpage HTML output
Nebetsu

Shmee
Level: 55

Posts: 767/1574
EXP: 1291130
For next: 23059

Since: 09-01-04
From: Nebland

Since last post: 3 hours
Last activity: 1 hour
Posted on 01-08-05 04:16 AM Link | Quote
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.


(edited by Nebetsu on 01-07-05 07:18 PM)
TheMonster
Newcomer
Level: 4

Posts: 3/4
EXP: 139
For next: 140

Since: 01-03-05

Since last post: 283 days
Last activity: 17 hours
Posted on 01-08-05 04:25 AM Link | Quote
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

Shmee
Level: 55

Posts: 769/1574
EXP: 1291130
For next: 23059

Since: 09-01-04
From: Nebland

Since last post: 3 hours
Last activity: 1 hour
Posted on 01-08-05 04:55 AM Link | Quote
Thanks. As soon as I have access to a computer with QuickBasic, I'll give it a try! ^^
Add to favorites | "RSS" Feed | Next newer thread | Next older thread
Acmlm's Board - I2 Archive - Programming - Need Help With QuickBasic | |


ABII


AcmlmBoard vl.ol (11-01-05)
© 2000-2005 Acmlm, Emuz, et al



Page rendered in 0.008 seconds.