99BASIC / DarkBASIC 総合スレッド
■ このスレッドは過去ログ倉庫に格納されています
マイコン少年からWindows世代までどうぞ
・ 99BASIC(http://www.sagami.ne.jp/tadaka/99Basic/)
MSXやPC-8801世代の旧式マイクロソフトBASICに準拠したBASIC。
DirectXはサポートしておらず、簡単な2Dインターフェイスのみ使える。
インタープリター形式で直接実行モードもある。
・ DarkBASIC(http://darkbasic.thegamecreators.com/)
VisualBASIC以前の旧式マイクロソフトBASICの進化形。
DirectXをサポート、商用アプリ作成可能。
C言語にはない強力な文字列操作、複雑な記述が可能。 10 ' SAVE"BALL5.BAS",A 'QQBAS ボール反射・3次元風味(笑)・Zバッファ付き・フォグ付き
20 CLEAR SYSTEM:PALETTE CLEAR:DEFSNG A-Z
30 SIZX=80:SIZY=24
40 WIDTH SIZX,SIZY:SCREEN 3,5:CLS 3
50 DIM PT%(25,((51+1)*(51+1))\4)
60 DIM PT2%(25,((51+1)*(51+1))\4)
70 '
80 FOR J=0 TO 25
90 PALETTE J+100,(J*10+5,J*10+5,J*10+5)
100 PALETTE J+100+25+1,(((J*10+5)+64*2)/3,((J*10+5)+0*2)/3,((J*10+5)+96*2)/3)
110 NEXT J
120 PALETTE 0,(64,0,96)
130 '
140 FOR K=0 TO 25:CLS 2
150 FOR J=K TO 25
160 CIRCLE(25,25),25-J,(J-K)+100:PAINT(25,25),(J-K)+100,(J-K)+100
170 CIRCLE(125,125),25-J,(J-K)+126:PAINT(125,125),(J-K)+126,(J-K)+126
180 NEXT J
190 GET @3,(0,0)-STEP(51,51),PT%(K,0)
200 GET @3,(100,100)-STEP(51,51),PT2%(K,0)
210 NEXT K
220 '
230 FOG=12.5
240 N=64
250 DIM X(N-1),Y(N-1),Z(N-1),SX(N-1),SY(N-1),SZ(N-1)
260 FOR J=0 TO N-1
270 X(J)=RND(SIZX*8):Y(J)=RND(SIZY*16):Z(J)=RND(25+1)
280 SX(J)=(RND*1.5)+0.25:SY(J)=(RND*1.5)+0.25:SZ(J)=(RND/10)+0.1
290 NEXT J
300 '
310 INTERVAL ON,(1000\60):ON INTERVAL GOSUB 660
320 '
330 IF TSYNC=0 THEN 330
340 TSYNC=0
350 LINE(0,0)-(SIZX*8-1,SIZY*16-1),0,BF 'CLS 3
360 FOR J=0 TO N-1
370 X(J)=X(J)+SX(J):Y(J)=Y(J)+SY(J):Z(J)=Z(J)+SZ(J)
380 IF X(J)< 0 THEN X(J)= 0:SX(J)= ABS(SX(J))
390 IF X(J)> (SIZX*8)-50 THEN X(J)= (SIZX*8)-50:SX(J)=-ABS(SX(J))
400 IF Y(J)< 0 THEN Y(J)= 0:SY(J)= ABS(SY(J))
410 IF Y(J)>(SIZY*16)-50 THEN Y(J)=(SIZY*16)-50:SY(J)=-ABS(SY(J))
420 IF Z(J)< 1 THEN Z(J)= 1:SZ(J)= ABS(SZ(J))
430 IF Z(J)> 25 THEN Z(J)= 25:SZ(J)=-ABS(SZ(J))
440 NEXT J
450 '
460 ZF=0
470 FOR J=0 TO (N-1)-1
480 IF Z(J)=>Z(J+1) THEN 530 'SKIP
490 SWAP X(J), X(J+1):SWAP Y(J), Y(J+1):SWAP Z(J), Z(J+1)
500 SWAP SX(J),SX(J+1):SWAP SY(J),SY(J+1):SWAP SZ(J),SZ(J+1) 510 ZF=1
520 'SKIP
530 NEXT J
540 IF ZF=1 THEN 460
550 '
560 FOR J=0 TO N-1
570 IF Z(J)>FOG THEN 600 'SKIP
580 PUT@(X(J)/(((Z(J)/25)+1))+(25.6*Z(J))/4,Y(J)/(((Z(J)/25)+1))+(16*Z(J))/4),PT%(Z(J),0)
590 GOTO 610 'SKIP2
600 PUT@(X(J)/(((Z(J)/25)+1))+(25.6*Z(J))/4,Y(J)/(((Z(J)/25)+1))+(16*Z(J))/4),PT2%(Z(J),0)
610 'SKIP2
620 NEXT J
630 SCREEN
640 GOTO 330
650 '
660 INTERVAL OFF:TSYNC=1:INTERVAL ON:RETURN ■ このスレッドは過去ログ倉庫に格納されています