-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathdemo_09_drawtext1.bas
76 lines (76 loc) · 4.16 KB
/
demo_09_drawtext1.bas
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
10 REM ******************************
20 REM * AGON LIGHT 2 *
30 REM * BBC BASIC MODE 8 *
40 REM * DEMO 09 *
50 REM * 320 X 240 *
60 REM * DRAW & SCALE TEXT1 *
70 REM * BY LOVEJOY777 *
80 REM ******************************
90 :
100 VDU 22,8 : REM SET SCREEN MODE.
110 VDU 23,1,0 : REM DISABLE TEXT CURSOR.
120 VDU 12 : REM SAME AS CLS.
130 VDU 16 : REM SAME AS CLG.
140 VDU 18,0,10 : REM SAME AS GCOL.
150 SW% = 1280 : SH%=1024 : REM SCREEN WIDTH & HEIGHT IN GRAPHICAL UNITS.
160 SC=1.0 : REM ASSIGN FLOAT FOR SCALE.
170 SF=0.4 : REM ASSIGN FLOAT FOR SCALE FACTOR.
180 AX%=SW%/2-32 : AY%=SH%/2-8 : REM ASSIGN VARS FOR A's X & Y START COORDS (center).
190 :
300 REM **** SCALE UP, POSITION & DRAWING LOOP ****
310 FOR SU% = 1 TO 35 : REM LOOP FOR SCALE UP & COLOUR.
320 SC=SC+SF : REM INCREASE SIZE BY SCALING FACTOR EACH LOOP.
330 VDU 16 : REM CLEAR GRAPHICS EACH LOOP.
340 AX%=AX%-13 : REM MOVE A's X POSITION LEFT 13 UNITS EACH LOOP (keep the text central ish..).
350 GX%=AX%+16*SC : GY%=AY% : REM VARS FOR G X & Y (16 pixels * scaling after A).
360 OX%=GX%+16*SC : OY%=GY% : REM VARS FOR for O X & Y (16 pixels * scaling after G).
370 NX%=OX%+16*SC : NY%=OY% : REM VARS FOR N X & Y (16 pixels * scaling after O).
400 PROC_DRAW_A
410 PROC_DRAW_G
420 PROC_DRAW_O
430 PROC_DRAW_N
440 VDU 18,0,SU% : REM SAME AS GCOL (use scale up loop number to set colour).
450 ANYKEY%=INKEY(5) : REM DELAY (can speed up by pressing any key).
460 NEXT SU% : REM NEXT SCALE UP LOOP.
470 END : REM **** END PROGRAM ****
480 :
500 REM ********** PROCS **********
1000 :
2000 REM **** DRAW AGON ****.
2010 DEF PROC_DRAW_A : REM **** DRAW A ****.
2020 MOVE AX%+1*SC,AY%+2*SC : DRAW AX%+1*SC,AY%+6*SC : DRAW AX%+3*SC,AY%+6*SC
2030 DRAW AX%+3*SC,AY%+8*SC : DRAW AX%+5*SC,AY%+8*SC : DRAW AX%+5*SC,AY%+10*SC
2040 DRAW AX%+7*SC,AY%+10*SC : DRAW AX%+7*SC,AY%+12*SC : DRAW AX%+9*SC,AY%+12*SC : DRAW AX%+9*SC,AY%+14*SC
2050 DRAW AX%+11*SC,AY%+14*SC : DRAW AX%+11*SC,AY%+16*SC : DRAW AX%+15*SC,AY%+16*SC
2060 DRAW AX%+15*SC,AY%+0*SC : DRAW AX%+13*SC,AY%+0*SC : DRAW AX%+13*SC,AY%+2*SC
2070 DRAW AX%+11*SC,AY%+2*SC : DRAW AX%+11*SC,AY%+8*SC : DRAW AX%+9*SC,AY%+8*SC
2080 DRAW AX%+9*SC,AY%+6*SC : DRAW AX%+7*SC,AY%+6*SC : DRAW AX%+7*SC,AY%+4*SC
2090 DRAW AX%+5*SC,AY%+4*SC : DRAW AX%+5*SC,AY%+2*SC : DRAW AX%+1*SC,AY%+2*SC
2100 ENDPROC : REM END DRAW A.
2110 :
3010 DEF PROC_DRAW_G : REM **** DRAW G ****.
3020 MOVE GX%+1*SC,GY%+2*SC : DRAW GX%+1*SC,GY%+16*SC : DRAW GX%+15*SC,GY%+16*SC
3030 DRAW GX%+15*SC,GY%+13*SC : DRAW GX%+4*SC,GY%+13*SC : DRAW GX%+4*SC,GY%+5*SC
3040 DRAW GX%+11*SC,GY%+5*SC : DRAW GX%+11*SC,GY%+9*SC : DRAW GX%+13*SC,GY%+9*SC : DRAW GX%+13*SC,GY%+11*SC
3050 DRAW GX%+15*SC,GY%+11*SC : DRAW GX%+15*SC,GY%+2*SC : DRAW GX%+13*SC,GY%+2*SC
3060 DRAW GX%+13*SC,GY%+0*SC : DRAW GX%+11*SC,GY%+0*SC : DRAW GX%+11*SC,GY%+2*SC: DRAW GX%+1*SC,GY%+2*SC
3100 ENDPROC : REM END DRAW G.
3110 :
4010 DEF PROC_DRAW_O : REM **** DRAW O ****.
4020 MOVE OX%+1*SC,OY%+2*SC : DRAW OX%+1*SC,OY%+16*SC : DRAW OX%+15*SC,OY%+16*SC
4030 DRAW OX%+15*SC,OY%+2*SC : DRAW OX%+1*SC,OY%+2*SC
4040 MOVE OX%+4*SC,OY%+5*SC
4050 DRAW OX%+4*SC,OY%+13*SC : DRAW OX%+12*SC,OY%+13*SC : DRAW OX%+12*SC,OY%+5*SC : DRAW OX%+4*SC,OY%+5*SC
4100 ENDPROC : REM END DRAW O.
4110 :
5010 DEF PROC_DRAW_N : REM **** DRAW N ****.
5020 MOVE NX%+1*SC,NY%+2*SC : DRAW NX%+1*SC,NY%+16*SC : DRAW NX%+3*SC,NY%+16*SC
5030 DRAW NX%+3*SC,NY%+15*SC : DRAW NX%+5*SC,NY%+15*SC : DRAW NX%+5*SC,NY%+13*SC
5040 DRAW NX%+7*SC,NY%+13*SC : DRAW NX%+7*SC,NY%+11*SC : DRAW NX%+9*SC,NY%+11*SC : DRAW NX%+9*SC,NY%+9*SC
5050 DRAW NX%+12*SC,NY%+9*SC : DRAW NX%+12*SC,NY%+16*SC : DRAW NX%+15*SC,NY%+16*SC
5060 DRAW NX%+15*SC,NY%+0*SC : DRAW NX%+13*SC,NY%+0*SC : DRAW NX%+13*SC,NY%+1*SC
5070 DRAW NX%+11*SC,NY%+1*SC : DRAW NX%+11*SC,NY%+3*SC : DRAW NX%+9*SC,NY%+3*SC
5080 DRAW NX%+9*SC,NY%+5*SC : DRAW NX%+7*SC,NY%+5*SC : DRAW NX%+7*SC,NY%+7*SC
5090 DRAW NX%+4*SC,NY%+7*SC : DRAW NX%+4*SC,NY%+2*SC : DRAW NX%+1*SC,NY%+2*SC
5100 ENDPROC : REM END DRAW N.
5110 :