a bit retro all basic to get a '3d effect' but It was a an effort to type in so ill share any way. source beebbug.
70 ON ERROR GOTO 1710
80 :
100 DIM line$(3)
110 MODE 1
120 VDU19,3,2;0;19,2,7;0;
130 PROCdemo
140 END
150 :
1000 DEF PROC3D
1010 FOR L%=lines%-1 TO 0 STEP -1
1020 ang%=alt%-(L%*mult%)
1030 PROCword(line$(L%+1),1050-(32*L%))
1040 NEXT L%
1050 ENDPROC
1060 :
1070 DEF PROCword(line$(L%),oy%)
1080 COLOUR 2
1090 PRINTTAB(20,31)line$(L%);
1100 FOR py%=1 TO 33 STEP 4
1110 angle%=(py%/height)+ang%
1120 a1=TAN(RAD(angle%)):a2=TAN(RAD(angle%-change%))
1130 sub=4:lp=1309:rp=1359
1140 FOR px%=(LEN(line$(L%))+1)*32 TO 0 STEP -4
1150 IF POINT(px%+640,py%)=2 PROCbox
1160 rp=lp:sub=sub+add:lp=lp-sub
1170 NEXT px%
1180 NEXT py%
1190 PRINTTAB(20,31) SPC(18);
1200 ENDPROC
1210 :
1220 DEF PROCbox
1230 PROCface(2,lp,rp,lp,rp,((1579-lp)*a2)+oy%,((1579-rp)*a2)+oy%,((1579-lp)*a1)+oy%,((1579-rp)*a1)+oy%)
1240 PROCface(1,lp-sub,lp,lp-sub,lp,((1579-lp)*a2)+oy%+sub,((1579-lp)*a2)+oy%,((1579-lp)*a1)+oy%+sub,((1579-lp)*a1)+oy%)
1250 PROCface(3,lp-sub,rp-sub,lp,rp,((1579-lp)*a1)+oy%+sub,((1579-rp)*a1)+oy%+sub,((1579-lp)*a1)+oy%,((1579-rp)*a1)+oy%)
1260 ENDPROC
1270 :
1280 DEF PROCface(col%,x1,x2,x3,x4,y1,y2,y3,y4)
1290 GCOL0,col%
1300 PLOT4,x1,y1
1310 PLOT4,x2,y2
1320 PLOT85,x3,y3
1330 PLOT4,x2,y2
1340 PLOT4,x4,y4
1350 PLOT85,x3,y3
1360 ENDPROC
1370 :
1380 DEF PROCprepare
1390 RESTORE 1450
1400 FOR L%=1 TO style%
1410 READ height,mletters%,mlines%,add,change%,alt%,mult%
1420 NEXT
1430 IF lines%>mlines% THEN CLS:PRINT "To many lines for this style ";style%:END
1440 ENDPROC
1450 DATA 4,13,3,.13,1,-13,8
1460 DATA 4,6,3,.65,1,-13,8
1470 DATA 1,95,13,2,.13,2,-16,15
1480 DATA 1.95,6,2,.65,2,-16,15
1490 DATA 1.33,13,1,.13,3,-29,8
1500 DATA 1.33,6,1,.65,3,-29,8
1510 :
1520 DEFPROCcentre
1525 FOR L%=1 TO lines%
1530 IF LEN (line$(L%))=mletters% GOTO 1560
1540 line$(L%)=line$(L%)+STRING$((mletters%+1-LEN(line$(L%)))*.5," ")
1560 NEXT L%
1570 ENDPROC
1580 :
1590 DEF PROCdemo
1600 VDU 23,230,60,126,219,126,36,66,129,0
1610 style%=1
1620 lines%=3
1630 line$(1)=CHR$230+" BEEBUG "+CHR$230
1640 line$(2)="for the"
1650 line$(3)="BBC MICRO"
1660 PROCprepare
1670 PROCcentre
1680 PROC3D
1690 ENDPROC
1700 :
1710 ON ERROR OFF
1720 MODE7
1730 IF ERR<>17 THEN REPORT:PRINT " at line ";ERL
1740 END
'3d effect' title with angles
-
mikeg
- Posts: 101
- Joined: Sat 23 Jun 2018, 19:52
Re: '3d effect' title with angles
that is very cool
Focus is on code subject. Feel free to judge the quality of my work.
-
Repton
- Posts: 42
- Joined: Tue 22 May 2018, 13:51
Re: '3d effect' title with angles
these days we ae spoilt but doing anything outside the standard option back in the day definitely would stand out. It can be customised . Also it runs instantly compared to the slow build up on original. Beebug provides a neet source of bbc basic ready programs although some utilise 6502 assembler.