! ################### ! # # ! # BOUNCING BALL # ! # # ! # BY RETROSPECT # ! # # ! ################### ! ------------------------------------------------------------------ ! VARIABLES USED; ! ! R0 BALL'S Y POSITION ! R1 BALL'S X POSITION ! R2 NUMBER TO ADD TO BALL'S Y POS ! R3 NUMBER TO ADD TO BALL'S X POS ! R4 USER DEFINED DELAY VALUE ! R5 "PING" NOISE ON OR OFF? ! R6 STORES THE VOLUME FOR THE "PING", DECREASES BY 4 EACH UPDATE ! TEMPR0 THE BALL'S OLD Y POSITION ! TEMPR1 THE BALL'S OLD X POSITION ! ------------------------------------------------------------------- 100 ! BOUNCING BALL PROGRAM 110 ! 120 ! 130 ! 140 ! CLEAR THE SCREEN 150 CALL CLEAR 160 ! 170 ! 180 ! DEFINE THE BALL & COLORS 190 CALL CHAR(42,"3C7EFFFFFFFF7E3C") 200 CALL COLOR(2,5,1,3,5,1,4,5,1) 210 ! 220 ! 230 ! 240 ! VARIABLES TO START 250 R0,R1=2 260 R2,R3=1 270 R5=0 280 ! 290 ! 300 ! 310 ! ASK USER DELAY VAL 320 DISPLAY AT(1,1):"DELAY VAL?" 330 ACCEPT AT(3,1):R4 340 CALL CLEAR 350 ! 360 ! 370 ! 380 ! DISPLAY THE BALL 390 CALL HCHAR(R0,R1,42) 400 ! 410 ! 420 ! 430 ! KEEP THE OLD COORDS 440 TEMPR0=R0 450 TEMPR1=R1 460 ! 470 ! 480 ! 490 ! ADD R2 & R3 500 R0=R0+R2 510 R1=R1+R3 520 ! 530 ! 540 ! 550 ! IF AT BOUNDARIES, ADD R2 AND R3 560 IF R0>23 THEN R2=-R2 :: R5=1 :: R6=0 570 IF R0<2 THEN R2=-R2 :: R5=1 :: R6=0 580 IF R1>30 THEN R3=-R3 :: R5=1 :: R6=0 590 IF R1<2 THEN R3=-R3 :: R5=1 :: R6=0 600 ! 610 ! 620 ! 630 ! IS R5"ON"? 640 IF R5=0 THEN 710 650 R6=R6+4 :: IF R6<30 THEN 670 660 R5=0 :: CALL SOUND(-1,110,30):: GOTO 710 670 CALL SOUND(-150,900,R6,901,R6) 680 ! 690 ! 700 ! 710 ! KILL SOME TIME 720 FOR DELAY=1 TO R4 730 NEXT DELAY 740 ! 750 ! 760 ! 770 ! DISPLAY NEW BALL 780 CALL HCHAR(TEMPR0,TEMPR1,32,1,R0,R1,42,1) 790 ! 800 ! 810 ! 820 ! REPEAT THE LOOP 830 GOTO 440