Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
32Bowling For John
#1
Hey hey, I'm back for today.

I found out BLOAD, and now I'm ready.

If I can find a donor site to place my info, I would, but I have no internet site. Can someone help me there?
I just need a place to store my images for a while.

I have decided to go a different route and change the physics from my old Qbowling. I promise to post more information as availible (I still don't have internet).

My new physics are based on three things: ball placement, throwing angle, and strength. The greater the angle and speed, the more it moves to different areas. The pin physics will stay the same, though. Knock down one and it just knocks down the others behind it. And now with bmp's, I can draw out (beautifully) the things I want done.
Reply
#2
Hehe... I just got a geocites account.

Here's screenshots:
[Image: lane1.JPG]

[Image: NewLane.JPG]
Reply
#3
8)
good work john
Reply
#4
It's here!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

Finally, I have a Beta demo out. It only has 3 frames and doesn't keep score. Try it out: HERE.

So try it out and tell me what you think. If you beg, I might even give you the sourcecode.
Reply
#5
Hey, people! Try it out!

Does anyone else have flashing problems? I need some input on how to fix! anyone willing to help gets the source code! :bounce:
Reply
#6
WOAHHH FREE SOURCECODE! here i give you my internet! can i have the sources now? plz? thx yo
quote="NecrosIhsan"]
[Image: yagl1.png]
[/quote]
Reply
#7
:o :lol: :lol: :lol:

Nice, marzec...

Seriously...a bowling game is kinda cool...you could have won my compo awhile back. Big Grin
\__/)
(='.'=) Copy bunny into your signature to
(")_(") help him gain world domination.
Reply
#8
Well, did you answer my question?

Does it flash disgustingly when you run it? Only if you answer will you get the source.

It's here!
Reply
#9
yes it starts flashing on the second throw
url=http://www.smithcosoft.com]SmithcoSoft Creations[/url]
"If you make it idiot proof, someone will make a better idiot" - Murphy's Law
Reply
#10
OK. Here it is for FB.

Code:
DECLARE SUB ChooseBallColor()
DECLARE SUB DetLane (min,ln,x,lx,angln,lang)
DECLARE SUB DraPins(scrn)
DECLARE SUB DrawBall(which,x,y)
DECLARE SUB Hitpins (I,PinH)
DECLARE SUB INIT ()
DECLARE SUB ResetLane ()
DECLARE SUB ShowScore ()
DECLARE FUNCTION Strength()
DECLARE SUB Strike ()
DECLARE SUB Spare ()
DECLARE SUB Menu ()
DECLARE SUB Quitscreen ()
DECLARE SUB Pause ()
DECLARE SUB Moveball ()
DECLARE SUB Cheat ()
DECLARE SUB Bumpers ()
DECLARE SUB ShowRoll (I)
DECLARE SUB Hold(t&)
DECLARE SUB ShowballRoll

TYPE PINSTAT
   Up AS INTEGER
END TYPE

'Image Sprites
DIM SHARED PIN1(8192) AS UBYTE
DIM SHARED PIN2(4096) AS UBYTE
DIM SHARED BALL1(16384) AS UBYTE
DIM SHARED BALL2(4096) AS UBYTE
DIM SHARED BALL3(4096) AS UBYTE
DIM SHARED BALL4(4096) AS UBYTE
DIM SHARED SHADE(4096) AS UBYTE
DIM SHARED LANE(925696) AS UBYTE
DIM SHARED mouse(8192) AS UBYTE
DIM SHARED scrn(32*32*5) AS UBYTE
DIM SHARED choose (188416) AS UBYTE
DIM SHARED menus(1847296) AS UBYTE
DIM SHARED PINS(10) AS PINSTAT
DIM SHARED COL1%,COL2%,COL3%
DIM SHARED b,ang,tgt,speed,roll,move,angle,lx,score,rlb,s,queue,skip
DIM SHARED ACTUAL_ANGLE,ACTUAL_BALLX,ACTUAL_SPEED,ACTUAL_TARGT
DIM SHARED diff,sl,st,bump,onesecond

RANDOMIZE TIMER

INIT
MENU
ChooseBallColor
CLS
markedtime=timer
PRINT "Please Wait...":SCREENCOPY
FOR t& = 0 TO 30000000:NEXT
onesecond& = 30000000/(timer-markedtime)
PRINT "onesecond=",onesecond&
SLEEP 1000



DO
   RESETLANE
   FOR roll = 1 TO 2
      ang=175
      b=35
      move = 1
      x=314
      skip = 0
      TOP:
      DO
         BLOAD "DATA\LANE1.DAT",0
         RESTORE Pin1Up
         DraPins 1
         DrawBall(1,x-32,480-32)
         ShowballRoll
         SCREENCOPY
         IF move = 1 THEN
            DO
               N$ = INKEY$
               IF N$ = CHR$(255) + "M" THEN
                  x=x+41.333333
                  IF x > 490 THEN x=x-41.333333
               ELSE IF N$ = CHR$(255) + "K" THEN
                  x=x-41.333333
                  IF x < 150 THEN x = x+41.333333
                  END IF
               END IF
            LOOP UNTIL N$ > ""
         END IF
        
         IF move = 2 THEN
            LINE (x+1,448)-(ang,300),RGB (COL1%,COL2%,COL3%)
            SCREENCOPY
            SLEEP sl
            N$ = INKEY$
            ang=ang+b
            IF ang > 450 OR ang < 190 THEN b=-b
         END IF
        
         IF N$ = CHR$(27) THEN Quitscreen
         IF UCASE$(N$) = "P" THEN Pause
      LOOP UNTIL N$ = CHR$(32) OR N$ = CHR$(13)
        
      IF move = 1 THEN
         move = 2
         GOTO TOP
      END IF
      
      
      RESTORE LANE
      DetLane (min,ln,x,lx,angln,lang)
      
      STRENGTH
      
      FOR I=445 TO -10 STEP -speed
         RESTORE Pin2Up
         ShowRoll (I)
         IF bump = 1 THEN Bumpers
         Cheat      
         IF MULTIKEY(&h48) THEN skip = 1
         IF MULTIKEY(&h01) THEN Quitscreen
         Moveball
         Hitpins (I,0)
         IF UCASE$(N$) = "P" THEN Pause
         SLEEP 5
      NEXT
      
      IF s = 1 THEN
         IF roll = 2 THEN Spare
         IF roll = 1 THEN Strike
      ELSE
         FOR I = 1 TO 10
            IF Pins(I).Up = 0 THEN queue = queue + 1
         NEXT I
         score = score + queue
      END IF
      ShowScore
      
   NEXT roll

   frame = frame + 1

LOOP UNTIL frame = 10

Showscore
SLEEP 2000
STOP


SUB ShowballRoll
   IF roll >= 1 THEN
      LINE (225,2)-(245,6),&hFF0000,BF
      LINE(232,7)-(238,32),&hFF0000,BF
      LINE (225,33)-(245,37),&hFF0000,BF
   END IF
   IF roll = 2 THEN
      LINE (246,2)-(264,6),&hFF0000,BF
      LINE(253,7)-(259,32),&hFF0000,BF
      LINE (246,33)-(264,37),&hFF0000,BF
   END IF
END SUB

SUB ShowRoll (I)
   N$ = INKEY$
   PUT(0,0),LANE,TRANS
   DrawBall (2,lx,I)
   DraPins 2
   SCREENCOPY
END SUB

SUB Bumpers
   LINE (240,0)-(240,480),&hFF0000,BF
   LINE (395,0)-(395,480),&hFF0000,BF
   SCREENCOPY
END SUB

SUB Cheat
   IF MULTIKEY(&h2A) AND MULTIKEY(&h4B) THEN angle = angle - 2
   IF MULTIKEY(&h2A) AND MULTIKEY(&h4D) THEN angle = angle + 2
   IF skip <> 1 THEN SLEEP 50
END SUB

SUB MoveBall
   IF lx > 205 AND lx < 395 THEN
         IF ACTUAL_SPEED > ACTUAL_TARGT-30 AND ACTUAL_SPEED < ACTUAL_TARGT+30 THEN
            IF ACTUAL_ANGLE > ACTUAL_BALLX THEN lx = lx + angle
            IF ACTUAL_ANGLE < ACTUAL_BALLX THEN lx = lx - angle
         ELSE IF ACTUAL_SPEED > ACTUAL_TARGT+30 THEN
            IF ACTUAL_ANGLE > ACTUAL_BALLX THEN lx = lx + angle
            IF ACTUAL_ANGLE < ACTUAL_BALLX THEN lx = lx - angle
         ELSE IF ACTUAL_SPEED < ACTUAL_TARGT-30 THEN
            IF ACTUAL_ANGLE > ACTUAL_BALLX THEN lx = lx + angle
            IF ACTUAL_ANGLE < ACTUAL_BALLX THEN lx = lx - angle
         ELSE IF ACTUAL_SPEED < ACTUAL_TARGT+30 THEN
            IF ACTUAL_ANGLE > ACTUAL_BALLX THEN lx = lx + angle
            IF ACTUAL_ANGLE < ACTUAL_BALLX THEN lx = lx - angle
         END IF
      END IF
      END IF
      END IF
   END IF

   IF lx > 363 AND bump = 1 THEN angle = -angle
   IF lx < 240 AND bump = 1 THEN angle = -angle
END SUB

SUB ShowScore
   CLS
   DIM nums(32768) AS UBYTE
   DIM moveit(75*43*2) AS UBYTE
   DIM scoresh(270336) AS UBYTE
   s$ = STR$(score)+CHR$(32)
   FOR I = 1 TO 4
      e$ = MID$(s$,I,1)
      IF e$ = CHR$(32) THEN
         f = I - 1
         I = 4
      END IF
   NEXT I
   BLOAD "DATA\NUMBERS.DAT",VARPTR(nums(0))
   BLOAD "DATA\SCORE.DAT",VARPTR(scoresh(0))
   FOR I = 1 TO f
      a = -(VAL(MID$(s$,I,1)))*42
      PUT(xx,a),nums,TRANS
      LINE (xx, 43)-(xx + 25,480),0,BF
      xx = xx + 25
   NEXT I
   PUT (0,50),scoresh,TRANS
   SCREENCOPY
   t = TIMER
   DO
      N$ = INKEY$
      IF UCASE$(N$) = "P" THEN Pause
      IF N$ = CHR$(27) THEN Quitscreen
   LOOP UNTIL N$ > "" OR TIMER > t + 2
END SUB

SUB Hitpins (I,PinH)
   IF (lx > 220 AND lx < 270 AND I < 65 AND Pins(1).Up = 1) OR PinH = 1 THEN
      Pins(1).Up = 0
   END IF
  
   IF PinH = 2 AND Pins(2).Up = 1 THEN
      Pins(2).Up = 0
   END IF
  
   IF PinH = 3 AND Pins(3).Up = 1 THEN
      Pins(3).Up = 0
   END IF
  
   IF (lx > 347 AND lx < 387 AND I < 65 AND Pins(4).Up = 1) OR PinH = 4 THEN
      Pins(4).Up = 0
   END IF
  
   IF (lx > 235 AND lx < 255 AND I < 81 AND I > 55 AND Pins(5).Up = 1) OR PinH = 5 THEN
      Pins(5).Up = 0
      Hitpins (I,1)
      Hitpins (I,2)
   END IF
  
   IF PinH = 6 AND Pins(6).Up = 1 THEN
      Pins(6).Up = 0
   END IF
  
   IF (lx > 347 AND lx < 366 AND I < 53 AND I > 68 AND Pins(7).Up = 1) OR PinH = 7 THEN
      Pins(7).Up = 0
      HitPins (I,3)
      HitPins(I,4)
   END IF
  
   IF (lx > 258 AND lx < 282 AND I < 116 AND I > 95 AND Pins(8).Up = 1) OR PinH = 8 THEN
      Pins(8).Up = 0
      Hitpins (I,1)
      Hitpins (I,2)
      Hitpins (I,3)
      Hitpins (I,5)
      Hitpins (I,6)
   END IF
  
   IF (lx > 317 AND lx < 357 AND I < 116 AND I > 82 AND Pins(9).Up = 1) OR PinH = 9 THEN
      Pins(9).Up = 0
      Hitpins (I,2)
      Hitpins (I,3)
      Hitpins (I,4)
      Hitpins (I,6)
      Hitpins (I,7)
   END IF
  
   IF (lx > 280 AND lx < 329 AND I < 145 AND I > 110 AND Pins(10).Up = 1) THEN
      Pins(10).Up = 0
      Hitpins (I,9)
      Hitpins (I,8)
      S = 1
   END IF
  
  
  
END SUB

SUB Strike
   WHILE INKEY$ <> "": WEND
   Score = score + 30
   CLS
   BLOAD "DATA\STRIKE.DAT",0
   SCREENCOPY
   DO
      N$ = INKEY$
      IF UCASE$(N$) = "P" THEN Pause
      IF N$ = CHR$(27) THEN Quitscreen
   LOOP WHILE N$ = ""
   roll = 2
   s = 0
END SUB

SUB Spare
   WHILE INKEY$ <> "": WEND
   Score = score - queue
   Score = score + 20
   CLS
   BLOAD "DATA\SPARE.DAT",0
   SCREENCOPY
   DO
      N$ = INKEY$
      IF UCASE$(N$) = "P" THEN Pause
      IF N$ = CHR$(27) THEN Quitscreen
   LOOP WHILE N$ = ""
   roll = 2
   s = 0
END SUB

SUB DetLane (min,ln,x,lx,angln,lang)
  
   FOR I = 1 TO 9
      READ min,ln
      SCREENCOPY
      IF x >=min-1 AND x<=min+20.666666 THEN
         LANES = ln
         I = 9
      END IF
   NEXT I
   IF ln < 9 THEN
      DO
         READ null
      LOOP UNTIL null = 9
   END IF
  
   FOR I = 1 TO ln
      READ lx
   NEXT I
  
   RESTORE LANE
   FOR I = 1 TO 9
      READ min,angln
      SCREENCOPY
      IF ang >=min-1 AND ang<=min+20.666666 THEN
         ANGLE = angln
         I = 9
      END IF
   NEXT I
   IF angln < 9 THEN
      DO
         READ null
      LOOP UNTIL null = 9
   END IF
  
   FOR I = 1 TO angln
      READ lang
   NEXT I
  
   ACTUAL_ANGLE = ang-36
   ACTUAL_BALLX = x
END SUB

SUB ChooseBallColor ()
   x=-50
   f = INT(RND * 3)+ 1
   SETMOUSE 240,320,0
   mouseframe = 1
   mousedraw = 0
   DO
      BLOAD "DATA\Chooseball2.DAT",0
      
      GETMOUSE mx,my,,mb
      
      IF f = 1 THEN
         PUT (0,0),choose,PSET
         LINE(0,32)-(640,96),0,BF
      ELSE
         IF f = 2 THEN
            PUT (0,-32),choose,PSET
            LINE (0,32)-(640,64),0,BF
         ELSE
            IF f = 3 THEN
               PUT (0,-64),choose, PSET
            END IF
         END IF
      END IF
      
      IF mouseframe = 1 THEN
         GET (mx,my + 32)-(mx + 32,my + 64),scrn
         PUT (mx,my),mouse,TRANS
         PUT (mx,my + 32),scrn,PSET
      ELSE
         GET (mx,my-32)-(mx+32,my),scrn
         PUT (mx,my - 32),mouse,TRANS
         PUT (mx,my-32),scrn,PSET
      END IF
      
      SCREENCOPY
      SLEEP 1
      mousedraw=mousedraw+1
      IF mousedraw > 50 THEN
         mouseframe = -mouseframe
         mousedraw = 0
      END IF
      
      IF(my>=100 AND my<=132)AND mb=1 THEN GOSUB SELECTS
      
      IF INKEY$ = CHR$(27) THEN END
      
   LOOP
  
   SELECTS:
      IF (mx>=14 AND mx<=45) AND mb=1 THEN
         COL1=255:COL2=0:COL3=0
      ELSE IF (mx>=78 AND mx<=110) AND mb=1 THEN
         COL1=255:COL2=255:COL3=0
      ELSE IF (mx>=142 AND mx<=174) AND mb=1 THEN
         COL1=0:COL2=255:COL3= 0
      ELSE IF (mx>=204 AND mx<=236) AND mb=1 THEN
         COL1=0:COL2=0:COL3=255
      ELSE IF (mx>=268 AND mx<=300) AND mb=1 THEN
         COL1=255:COL2=128:COL3=64
      ELSE IF (mx>=332 AND mx<=364) AND mb=1 THEN
         COL1=0:COL2=128:COL3=0
      ELSE IF (mx>=396 AND mx<=428) AND mb=1 THEN
         COL1=0:COL2=0:COL3=128
      ELSE IF (mx>=460 AND mx<=492) AND mb=1 THEN
         COL1=128:COL2=0:COL3=0
      ELSE IF(mx>=524 AND mx<=556) AND mb=1 THEN
         COL1=128:COL2=128:COL3=0
      ELSE IF (mx>=588 AND mx<=620) AND mb=1 THEN
         COL1=64:COL2=64:COL3= 64
      ELSE RETURN
      END IF
   END IF
   END IF
   END IF
   END IF
   END IF
   END IF
   END IF
   END IF
   END IF
   CLS
   SETMOUSE 0,0,0
END SUB

FUNCTION Strength ()
   J=1:L=1:I=480:K=480:A=1:B=1
   IF ACTUAL_ANGLE >= ACTUAL_BALLX THEN tgt = ACTUAL_ANGLE - ACTUAL_BALLX
   IF ACTUAL_ANGLE < ACTUAL_BALLX THEN tgt = ACTUAL_BALLX - ACTUAL_ANGLE
   SCREENSET 0
   DO
      N$ = INKEY$
      I=I-A
      J=J+B
      LINE (0,tgt-30)-(30,tgt+30),&hFF0000,B
      LINE (5,I)-(15,I),RGB(J/2,I/2,J/10)
      LINE (5,I-1)-(15,I-1),0
      IF I=1 OR I = 480 THEN A=-A
      IF J=1 OR J = 480 THEN B=-B
      IF UCASE$(N$) = "P" THEN
         SCREENSET 1,0
         Pause
      END IF
      IF N$ = CHR$(27) THEN
         SCREENSET 1,0
         Quitscreen
      END IF
      HOLD onesecond& / st
   LOOP UNTIL N$=CHR$(32) OR N$ = CHR$(13)
   A=1:B=1
   DO
      N$ = INKEY$
      K=K-A
      L=L+B
      LINE (15,K)-(25,K),RGB(L/4,K/2,L/4)
      LINE (15,K-1)-(25,K-1),RGB(0,0,0)
      IF K=1 OR K = 480 THEN A=-A
      IF L=1 OR L = 480 THEN B=-B
      IF UCASE$(N$) = "P" THEN
         SCREENSET 1,0
         Pause
      END IF
      IF N$ = CHR$(27) THEN
         SCREENSET 1,0
         Quitscreen
      END IF
      HOLD onesecond / st
   LOOP UNTIL N$=CHR$(32) OR N$ = CHR$(13)
  
   ACTUAL_SPEED = 480-I
   ACTUAL_TARGT = 480-tgt
   speed=INT(480-I)/16
   angle=INT(((480-K)/64))*1.5
   tgt = INT((480-tgt)/16)*1.5
   IF ACTUAL_BALLX = 150 OR ACTUAL_BALLX = 478 AND bump = 0 THEN
      tgt = 0
      angle = 0
   END IF
   IF speed=0 THEN speed=1
END FUNCTION

SUB DrawBall (which,x,y)
      IF which = 1 THEN
         PUT (x,y), ball1,TRANS
         PAINT (x+31,y+31),RGB(COL1,COL2,COL3),0
      END IF
      
      IF which = 2 THEN
         rlb = rlb + speed
         IF rlb >= INT((ACTUAL_TARGT+ACTUAL_ANGLE)/32) * 3 THEN rlb = 0
         IF rlb <= INT((ACTUAL_TARGT+ACTUAL_ANGLE)/32) THEN
            PUT (x,y),BALL4,TRANS
         ELSE IF rlb >= INT((ACTUAL_TARGT+ACTUAL_ANGLE)/32)+1 AND rlb <= INT((ACTUAL_TARGT+ACTUAL_ANGLE)/32)*2 THEN
            PUT (x,y),BALL3,TRANS
         ELSE IF rlb >= INT((ACTUAL_TARGT+ACTUAL_ANGLE)/32)*2+1 AND rlb <= INT((ACTUAL_TARGT+ACTUAL_ANGLE)/32)*3 THEN
            PUT (x,y),BALL2,TRANS
               END IF
            END IF
      END IF
      PAINT (x+16,y+16),RGB(COL1,COL2,COL3),&hC0C0C0
      PUT (x,y),SHADE,TRANS
   END IF
END SUB

SUB DraPins (scrn)
  
   IF scrn = 1 THEN
      FOR I=1 TO 10
         READ x,y
         IF Pins(I).Up=1 THEN
            PUT (x,y),PIN1,TRANS
         END IF
      NEXT I
   END IF
  
   IF scrn = 2 THEN
      FOR I=1 TO 10
         READ x,y
         IF Pins(I).Up=1 THEN
            PUT (x,y),PIN2,TRANS
         END IF
      NEXT I
   END IF
  
  
  
END SUB

SUB INIT
  
   SCREEN 18,16,2,1
   SCREENSET 1,0
  
   BLOAD "DATA\PIN1.DAT",VARPTR(PIN1(0))
   BLOAD "DATA\PIN2.DAT",VARPTR(PIN2(0))
   BLOAD "DATA\LANE2.DAT",VARPTR(LANE(0))
   BLOAD "DATA\BALL1.DAT",VARPTR(BALL1(0))
   BLOAD "DATA\BALL2.DAT",VARPTR(BALL2(0))
   BLOAD "DATA\BALL3.DAT",VARPTR(BALL3(0))
   BLOAD "DATA\BALL4.DAT",VARPTR(BALL4(0))
   BLOAD "DATA\SHADING.DAT",VARPTR(SHADE(0))
   BLOAD "DATA\Chooseball.DAT",VARPTR(choose(0))
   BLOAD "DATA\Mouse.DAT", VARPTR(mouse(0))
   BLOAD "DATA\Difficulty.DAT",VARPTR(menus(0))
END SUB

SUB ResetLane
  
   FOR I=1 TO 10
      PINS(I).Up=1
   NEXT I
  
END SUB

SUB Menu
   mouseframe=1
   SETMOUSE 320,240,0
   DO
      GETMOUSE mx,my,,mb
      PUT (0,0),menus,PSET
      SCREENCOPY
      N$ = INKEY$
      IF N$ = CHR$(27) THEN Quitscreen
   LOOP UNTIL N$ = CHR$(32) OR mb = 1
  
   DO
      PUT (0,-480),menus,PSET
      GETMOUSE mx,my,,mb
      IF mouseframe = 1 THEN
         GET (mx,my + 32)-(mx + 32,my + 64),scrn
         PUT (mx,my),mouse,TRANS
         PUT (mx,my + 32),scrn,PSET
      ELSE
         GET (mx,my - 32)-(mx + 32,my),scrn
         PUT (mx,my - 32),mouse,TRANS
         PUT (mx,my - 32),scrn,PSET
      END IF
      
      SCREENCOPY
      SLEEP 1
      mousedraw=mousedraw+1
      IF mousedraw > 50 THEN
         mouseframe = -mouseframe
         mousedraw = 0
      END IF
      
      IF mb = 1 THEN
         IF mx >= 272 AND mx <= 346 AND my >= 27 AND my <= 52 THEN
            diff = 1
            EXIT DO
         END IF
         IF mx >= 267 AND mx <= 351 AND my >= 158 AND my <= 172 THEN
            diff = 2
            EXIT DO
         END IF
         IF mx >= 276 AND mx <= 337 AND my >= 263 AND my <= 298 THEN
            diff = 3
            EXIT DO
         END IF
         IF mx > 568 AND mx < 615 AND my > 449 AND my < 467 THEN Quitscreen
      END IF
      IF INKEY$ = CHR$(27) THEN Quitscreen
   LOOP
  
   IF diff = 1 THEN
      sl = 50
      st = 150
      bump = 1
   END IF
   IF diff = 2 THEN
      sl = 30
      st = 100
      bump = 0
   END IF
   IF diff = 3 THEN
      sl = 10
      st = 70
      bump = 0
   END IF
  
END SUB

SUB Quitscreen
   CLS
   t = TIMER
   DO
      BLOAD "DATA\Quitscreen.DAT",0
      SCREENCOPY
   LOOP UNTIL TIMER > t + 2
   END
END SUB

SUB Pause
   CLS
   mouseframe = 1
   SETMOUSE 320,240,0
   DO
      BLOAD "DATA\PAUSE.DAT",0
      Drawball (1,290,415)
      GETMOUSE mx,my,,mb
      IF mouseframe = 1 THEN
         GET (mx,my + 32)-(mx + 32,my + 64),scrn
         PUT (mx,my),mouse,TRANS
         PUT (mx,my + 32),scrn,PSET
      ELSE
         GET (mx,my - 32)-(mx + 32,my),scrn
         PUT (mx,my - 32),mouse,TRANS
         PUT (mx,my - 32),scrn,PSET
      END IF
      
      SCREENCOPY
      SLEEP 5
      mousedraw=mousedraw+1
      IF mousedraw > 50 THEN
         mouseframe = -mouseframe
         mousedraw = 0
      END IF
      
      IF mx > 217 AND mx < 348 AND my > 123 AND my < 141 AND mb = 1 THEN EXIT DO
      IF mx > 217 AND mx < 423 AND my > 171 AND my < 189 AND mb = 1 THEN ChooseBallColor
      IF mx > 217 AND mx < 392 AND my > 219 AND my < 237 AND mb = 1 THEN Showscore
      IF mx > 217 AND mx < 278 AND my > 267 AND my < 290 AND mb = 1 THEN Quitscreen
      
      IF my > 380 THEN setmouse mx,380,0
      
   LOOP UNTIL INKEY$ = CHR$(27)
END SUB

SUB Hold (t&)
   FOR counter = 0 to t&:NEXT
END SUB

Pin1Up:
DATA 255,56,288,56,319,56,350,56,270,73,303,73,334,73,288,91,319,91,303,113

Pin2Up:
DATA 240,10,280,10,320,10,360,10,260,40,300,40,340,40,280,70,320,70,300,100

LANE:
DATA 150,1,191,2,232,3,273,4,315,5,356,6,397,7,439,8,480,9
DATA 210,235,250,270,300,335,348,360,390

It needs to be put one directory above DATA, in where Bowling.exe is to work. Please, any input is helpful.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)