Qbasicnews.com

Full Version: Help With game
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Ok, i am trying to make more eggs fall(SUB egg ), and cant figure out how, and i want to be able to change how many in a variable. Here is my code
Code:
REM DA CHCIKEN!!!




DECLARE SUB goomba (goombaArray() AS INTEGER, gstartx, gstarty)
DECLARE SUB trippy ()
DECLARE SUB chicken (chickenArray() AS INTEGER, startx, starty)
DECLARE SUB clearIcon (startx, starty)
DECLARE SUB egg (eggArray() AS INTEGER, eggstartx, eggstarty)
'DIM x AS INTEGER
'DIM y AS INTEGER
x = 0
y = 285
RANDOMIZE TIMER
eggx = CINT(RND * 640)
eggy = 20
goombax = 0
goombay = 0



DIM chickfatx(225) AS INTEGER


DATA 00,00,00,00,00,00,00,00,00,00,12,12,00,00,00
DATA 00,00,00,00,00,00,00,00,00,00,15,15,00,00,00
DATA 00,00,00,00,00,00,00,00,00,15,15,15,15,00,00
DATA 00,00,00,00,00,00,00,00,00,15,15,00,15,00,00
DATA 00,00,00,00,00,00,00,00,15,15,15,15,15,14,00
DATA 00,00,00,00,15,15,15,15,15,15,15,15,15,14,14
DATA 15,00,15,15,15,15,00,15,15,15,15,15,00,00,00
DATA 00,15,15,15,15,00,15,15,15,15,15,00,00,00,00
DATA 15,00,15,15,00,15,15,15,15,15,15,00,00,00,00
DATA 00,15,15,15,15,00,00,15,15,15,15,00,00,00,00
DATA 15,00,15,15,15,15,15,15,15,15,00,00,00,00,00
DATA 00,00,00,00,00,00,15,15,15,00,00,00,00,00,00
DATA 00,00,00,00,00,00,00,14,00,00,00,00,00,00,00
DATA 00,00,00,00,00,00,00,14,00,00,00,00,00,00,00
DATA 00,00,00,00,00,00,14,14,14,00,00,00,00,00,00


FOR i = 0 TO 224



READ chickfatx(i)
NEXT i

DIM eggfatx(225) AS INTEGER

DATA 00,00,00,00,00,00,13,13,13,00,00,00,00,00,00
DATA 00,00,00,00,13,13,13,13,13,13,13,00,00,00,00
DATA 00,00,00,13,13,13,13,13,13,13,13,13,00,00,00
DATA 00,00,13,13,13,13,13,13,13,13,13,13,13,00,00
DATA 00,13,13,13,13,13,13,13,13,13,13,13,13,13,00
DATA 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13
DATA 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13
DATA 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13
DATA 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13
DATA 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13
DATA 00,13,13,13,13,13,13,13,13,13,13,13,13,13,00
DATA 00,00,13,13,13,13,13,13,13,13,13,13,13,00,00
DATA 00,00,00,13,13,13,13,13,13,13,13,13,00,00,00
DATA 00,00,00,00,13,13,13,13,13,13,13,00,00,00,00
DATA 00,00,00,00,00,00,13,13,13,00,00,00,00,00,00

FOR e = 0 TO 224

READ eggfatx(e)
NEXT e

DIM gfatx(225) AS INTEGER


DATA 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
DATA 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
DATA 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
DATA 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
DATA 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
DATA 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
DATA 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
DATA 00,00,00,00,00,00,00,00,00,00,00,00,00,00,00



FOR q = 0 TO 224
READ gfatx(q)
NEXT q




RANDOMIZE TIMER
m = CINT(RND * 640)
eggx = m
frameRate = .00001
yVelocity = 0
xVelocity = 0
eggVelocity = 10
press$ = INKEY$
press$ = "/"


PRINT "WELCOME TO SUPER CHICKEN, DODGE THE EGGS TO WIN!!"


PRINT "the highscore is"; highscore





DO


LOOP UNTIL INKEY$ <> ""







DO

        runTime = TIMER + frameRate

        press$ = INKEY$

        'SCREEN 9, , i MOD 2, 1 - (i MOD 2)
        SCREEN 9, 0, 0, 1
  
        CLS
        LINE (0, 500)-(650, 300), 5, BF
        CALL chicken(chickfatx(), x, y)
        CALL egg(eggfatx(), eggx, eggy)
        'CALL clearIcon(x, y)
        CALL goomba(gfatx(), goombax, goombay)
      
        y = yVelocity + y
        x = xVelocity + x
        eggy = eggVelocity + eggy
        m = CINT(RND * 640)


        
        IF eggy > 285 THEN
        eggy = 20
        eggx = m
        END IF
        IF y > 0 AND press$ = "w" THEN y = y - 5
        IF y < 285 AND press$ = "s" THEN y = y + 5
        IF x < 620 AND press$ = "d" THEN x = x + 5
        IF x > 0 AND press$ = "a" THEN x = x - 5
        IF press$ = "q" THEN yVelocity = -40
        IF y < 285 THEN yVelocity = yVelocity + 3
        IF y > 285 THEN y = 285
        IF eggy <= y + 5 AND eggx <= x + 5 AND eggy >= y - 5 AND eggx >= x - 5 THEN

                trippy
        END IF
        REM get absolute value of difference of eggy - y
        REM then check to see if <= 5
        REM do for all

        


        


        PCOPY 0, 1

        WHILE TIMER < runTime

        WEND








LOOP UNTIL press$ = "e" OR press$ = "E"





END

SUB chicken (chickenArray() AS INTEGER, startx, starty)

FOR y = 0 TO 14   ' For each row
        FOR x = 0 TO 14  ' For each column
                 PSET (x + startx, y + starty), chickenArray(15 * y + x)
        NEXT x
NEXT y


END SUB

SUB clearIcon (startx, starty)

FOR y = 0 TO 14   ' For each row
        FOR x = 0 TO 14  ' For each column
                 PSET (x + startx, y + starty), 0
        NEXT x
NEXT y

END SUB

SUB egg (eggArray() AS INTEGER, eggstartx, eggstarty)

FOR y = 0 TO 14   ' For each row
        FOR x = 0 TO 14  ' For each column
                 PSET (x + eggstartx, y + eggstarty), eggArray(15 * y + x)
        NEXT x
NEXT y


END SUB

SUB goomba (goombaArray() AS INTEGER, gstartx, gstarty)

FOR y = 0 TO 14   ' For each row
        FOR x = 0 TO 14  ' For each column
                 PSET (x + gstartx, y + gstarty), goombaArray(15 * y + x)
        NEXT x
NEXT y


END SUB

SUB trippy
SCREEN 9, 0, 0, 1
DO
  CLS
  PRINT "YOU DIED"
  FOR i = 1 TO 1000
    x1 = INT(RND * 640)
    y1 = INT(RND * 350)
    x2 = INT(RND * 640)
    y2 = INT(RND * 350)
    c = INT(RND * 16)
    LINE (x1, y1)-(x2, y2), c
  NEXT i

  PCOPY 0, 1
LOOP


END SUB

Anonymous

im smashed, bbl.
Okay.... First of all, you ought to look into using GET and PUT, plus learning arrow keys would be cool:

[syntax="qbasic"]IF press$ = CHR$(0) + "H" THEN 'Up
IF press$ = CHR$(0) + "P" THEN 'Down
IF press$ = CHR$(0) + "M" THEN 'Right
IF press$ = CHR$(0) + "K" THEN 'Left[/syntax]

Also, it make it much easier on you to try UCASE$(INKEY$), it returns every thing in CAPITAL letters, thus if you press "e", it will output "E"... making it so Cap Locks can be on or off and it still work..

[syntax="qbasic"]press$ = UCASE$(INKEY$)

IF press$ = "E" THEN end[/syntax]

Also, IF press$ = CHR$(27)... uses the Esc key.. :wink:

As for your actual question, to have multiple eggs, you need to have multiple X, Y's for them, so it be like this:

[syntax="qbasic"]DIM SHARED MaxEggs = 10
DIM eggX(MaxEggs), eggY(MaxEggs)

'....

FOR i = 1 TO MaxEggs
PUT (eggX(i), eggT(i)), egg, PSET
NEXT[/syntax]

Hope that helps some,.. if you have anymore questions, feel free to ask....

Oh, and your Game-Over sub is a infinity loop,.. you might want to add a end on key press wait:

[syntax="qbasic"]DO
'...
LOOP UNTIL INKEY$ <> ""[/syntax]

:wink:

Anonymous

oh geez i forgot i was supposed to come back...

evil alcohol >.<