Advertisement
lovejoy777

backwards ferrari

Jan 20th, 2024 (edited)
1,168
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
ZXBasic 5.03 KB | Source Code | 0 0
  1.    10 REM ******************************
  2.    20 REM *        AGON LIGHT 2        *
  3.    30 REM *      BBC BASIC MODE 0      *
  4.    40 REM *            DEMO            *
  5.    50 REM *         640 X 480          *
  6.    60 REM *          DRAWING           *
  7.    70 REM *          FERRARI           *
  8.    80 REM *      BY STEVE LOVEJOY      *
  9.    90 REM ******************************
  10.   100 :
  11.   110 REM START OF MAIN PROGRAM.
  12.   120 :
  13.   130 PROC_INIT            : REM CALL INIT PROCESS.
  14.   140 RESTORE 6010
  15.   150 PROC_DRAW_CAR
  16.   160 RESTORE 6300
  17.   170 PROC_DRAW_WHEELS
  18.   180 :
  19.  1000 END                 : REM **** END OF MAIN PROGRAM ****
  20.  1010 :
  21.  3090 REM PROCESS DEFINES.
  22.  4000 DEF PROC_INIT       : REM DEFINE INITIAL PROCESS.
  23.  4010 VDU 22,0            : REM SET SCREEN MODE.
  24.  4020 VDU 23,1,0          : REM DISABLE CURSOR.
  25.  4030 VDU 12              : REM SAME AS CLS (clear text from screen).
  26.  4040 VDU 16              : REM SAME AS CLG (clear graphics from screen).
  27.  4050 REM VARS.
  28.  4050 SW% = 1279          : REM SCREEN WIDTH IN GRAPHICAL UNITS.
  29.  4060 SH% = 1023          : REM SCREEN HEIGHT IN GRAPHICAL UNITS.
  30.  4070 SCX = -5.0            : REM FLOAT FOR SCALE (PLAY WITH THIS #).
  31.  4075 SCY = 5.0            : REM FLOAT FOR SCALE (PLAY WITH THIS #).
  32.  4080 DX% = SW%/2+400     : REM DEFAULT X START COORDS (center of screen -400).
  33.  4090 DY% = SH%/2-50      : REM DEFAULT Y START COORDS (center of screen -50).
  34.  4100 VDU 18,0,9          : REM SET COLOUR OF GRAPHICS.
  35.  4200 ENDPROC             : REM END INIT PROCESS.
  36.  4500 :
  37.  4510 DEF PROC_DRAW_CAR   : REM DEFINE DRAW PROCESS.
  38.  4520 DIM CXY% (1024)     : REM CAR ARRAY BIG ENOUGH NUMBER TO HOLD ALL DATA.
  39.  4530 :
  40.  4540 REPEAT                     : REM START OF CAR LOOP.
  41.  4550     READ CX%,CY%           : REM GET DATA FOR CX & CY.
  42.  4560     IF CX% >= 0 GOTO 4640  : REM IF CX% IS 0 OR ABOVE DRAW.
  43.  4570         REM SPECIAL VALUES, EITHER MOVE OR END.
  44.  4580         IF CX% = -12345 GOTO 4650                 : REM IF CX IS END MARKER.
  45.  4590           CX% = ABS(CX%)                          : REM IF CX IS A MINUS # MOVE (NOT DRAW), ABS CONVERTS TO POSITIVE #.
  46.  4600           CY% = ABS(CY%)                          : REM IF CX IS A MINUS # MOVE (NOT DRAW), ABS CONVERTS TO POSITIVE #.
  47.  4610           MOVE DX% + (CX% * SCX), DY% + (CY% * SCY) : REM **** MOVE CAR ****
  48.  4620           GOTO 4650
  49.  4630     REM ELSE
  50.  4640           DRAW DX% + (CX% * SCX), DY% + (CY% * SCY) : REM **** DRAW CAR ****
  51.  4650     REM ENDIF
  52.  4660 UNTIL CX% = -12345 AND CY% = -12345               : REM LOOP UNTIL END MARKERS ARE READ.
  53.  4670 :
  54.  4680 ENDPROC                                           : REM END DRAW CAR PROCESS.
  55.  5500 :
  56.  5510 DEF PROC_DRAW_WHEELS       : REM DEFINE DRAW WHEELS PROCESS.
  57.  5520 REM DIM WXY% (1024)        : REM WHEELS ARRAY BIG ENOUGH NUMBER TO HOLD ALL DATA.
  58.  5530 :
  59.  5540 REPEAT                     : REM START OF WHEELS LOOP.
  60.  5550     READ WX%,WY%           : REM GET DATA FOR WX & WY.
  61.  5560     IF WX% >= 0 GOTO 5640  : REM IF WX% IS 0 OR ABOVE = WHEEL RADIUS.
  62.  5570         REM SPECIAL VALUES, EITHER MOVE OR END.
  63.  5580         IF WX% = -12345 GOTO 5650                 : REM IF WX IS END MARKER.
  64.  5590           WX% = ABS(WX%)                          : REM IF WX IS A MINUS # MOVE (NOT DRAW), ABS CONVERTS TO POSITIVE #.
  65.  5600           WY% = ABS(WY%)                          : REM IF WX IS A MINUS # MOVE (NOT DRAW), ABS CONVERTS TO POSITIVE #.
  66.  5610           MOVE DX% + (WX% * SCX), DY% + (WY% * SCY) : REM **** MOVE WHEELS ****
  67.  5620           GOTO 5650
  68.  5630     REM ELSE
  69.  5640           PLOT 145,WX%*SCX,0 : REM **** DRAW WHEELS ****
  70.  5650     REM ENDIF
  71.  5660 UNTIL WX% = -12345 AND WY% = -12345               : REM LOOP UNTIL WHEELS END MARKERS ARE READ.
  72.  5670 :
  73.  5680 ENDPROC                                           : REM END DRAW WHEELS PROCESS.
  74.  6000 :
  75.  6010 DATA -5,-11,7,14,1,21,18,27,11,30,11,26,-18,-27,43,33
  76.  6020 DATA 55,35,-49,-34,60,32,-55,-35,60,33,-55,-35,53,26,53,22
  77.  6030 DATA 54,16,55,11,49,11,47,19,43,22,39,24,36,24,35,24
  78.  6040 DATA 30,22,27,19,23,11,5,11,-15,-21,19,21,19,23,15,23
  79.  6050 DATA 15,21,-3,-19,25,19,-55,-11,97,11,99,15,100,19,101,24
  80.  6060 DATA 101,29,100,33,60,33,86,44,85,46,54,35,-47,-19,52,19
  81.  6070 DATA 100,19,-74,-28,111,22,112,24,112,27,111,30,74,28,-75,-33
  82.  6080 DATA 83,41,-101,-33,136,33,113,45,104,47,101,33,-104,-47,125,37
  83.  6090 DATA 124,33,-122,-33,123,38,-119,-33,120,37,-117,-33,118,36,-115,-33
  84.  6100 DATA 116,37,-111,-33,114,39,-109,-33,111,40,-107,-33,109,41,-105,-33
  85.  6110 DATA 107,42,-103,-33,105,43,-136,-33,159,35,113,45,-159,-35,162,37
  86.  6120 DATA 162,24,160,21,157,16,146,12,142,19,158,19,-157,-22,157,24
  87.  6130 DATA 153,24,153,22,157,22,-142,-19,138,23,134,24,131,24,128,24
  88.  6140 DATA 123,23,119,21,117,19,114,11,49,11,-117,-19,100,19,-110,-17
  89.  6150 DATA 103,17,102,15,110,15,110,17,-95,-33,96,35,97,36,98,36
  90.  6160 DATA 99,35,100,33
  91.  6200 DATA -12345,-12345 : REM END DRAW CAR MARKERS.
  92.  6300 DATA -37,-15,9,9,-37,-15,7,7,-37,-15,2,2
  93.  6310 DATA -130,-15,9,9,-130,-15,7,7,-130,-15,2,2
  94.  6500 DATA -12345,-12345 : REM END DRAW WHEELS MARKERS.
Tags: AGON LIGHT2
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement