これは、SJ Zero のチュートリアルに基づいた、QBasic プログラマのための、FB への優れた入門書です。
ソフトウェアを、開始します
FreeBASIC は、下のURL で、ダウンロードできます:
https://www.freebasic.net/∞
FBIDE は、下記で:
http://fbide.sourceforge.net/∞
FBIDEをインストールするときには、「FBIDE のみ」を選択してください。そのパッケージに含まれている FB の古いバージョンを、インストールしないためです。
最初に FBIDE を走らせるときに、コンピュータの上の FB コンパイラを見つけるために、ブラウズして下さい。
注:渡辺は、下記の FbEdit の方を推奨します。
http://www.hi-ho.ne.jp/makoto_watanabe/FbEdit/
こんにちは、世界!
FBIDE か FbEdit を起動して下さい。そして、下のように、タイプしてください:
今度は、F5(コンパイル)を押してください。
おめでとうございます。あなたは FreeBASICが、QB にとてもよく似ていることが、分かったでしょう。
あなたが覚えている、QBのための大部分のコンソール・コマンドを、使うことができます。
例えば:
LOCATE 10,10
PRINT "私は宇宙の中心です!"
SLEEP
最後、Sancho3によるレビュー(2018年2月06日)
驚くべき Screen 13
コードの前に、"SCREEN 13" を置いて下さい。描画モードを使うのが、どれくらい簡単か、確認してください:
SCREEN 13
PRINT "Hello World!"
SLEEP
あなたが覚えている標準の QB 描画コマンドのすべてが、働いています。下の例をご覧下さい:
SCREEN 13
LINE (1,1)-(100,100),1,bf
PRINT "Hello World!"
CIRCLE (10,10),10,11
PSET (30,15),15
SLEEP
また、FreeBASIC には、新しい描画機能があります。
例えば、QB には、screen 14 以上は、ありませんでした。
下のプログラムを、動かしてみてください:
SCREEN 15
LINE (1,1)-(100,100),1,bf
PRINT "Hello World!"
CIRCLE (10,10),10,11
PSET (30,15),15
SLEEP
SCREEN コマンドで、描画画面を開けた後、あなたは、ALT-ENTER キーで、通常の画面と、全画面表示を切り替えることができます。
FreeBASIC の描画ライブラリの別の良い特徴は、どのビデオモードでも瞬時に切り替えるページができるということです。
下のコードは、これを示しています。
DIM as integer page
DIM as integer notpage
DIM as integer a, b
screen 12, , 2 'これは、2 ページの画面を設定します。
notpage = 1 'これは、背景ページを設定します。
DO
IF page = 0 THEN page = 1 ELSE page = 0 'この 2 行で、表と裏のページを切り替えます。
IF notpage = 1 THEN notpage = 0 ELSE notpage = 1
SCREENSET page, notpage 'これはページを切り替えます
CLS 'まず画面を消去します
b = b + 1
IF b > 100 THEN b = 0
FOR a = 1 TO 128
PSET (b,a),a '線を描きます。線はちらつかずに?動きます。
NEXT a
SLEEP 10
LOOP UNTIL INKEY = CHR(27) 'Esc キーで終了します。
これは、どのモードでも働いているので、瞬時に切り替えるページのプログラムで、高解像度モードを使用できます。標準の QB 描画コマンドを使用して!
ASM(アセンブリ言語) は、何故もう必要ないか
これが正しくないなら、私はこれを言わないでしょう。
プログラムの機能性を増加させるために、BASIC で ASM(アセンブリ言語) を使う必要は、もうありません。
しばらく、SDL, Allegro,
DirectX,
OpenGL などを、無視して下さい。
あなたは、上で、ページ切り替えをしました。あなたの構成で、先進的な描画モードを獲得しました。私たちが皆、愛したり憎んだりして育てた Inkey も同様です。
また、FB には、2つの新しい入力コマンドがあります。これができないために、QB プログラマは、昔からアセンブリコードに頼らざるを得なかったのです。
DIM as integer x, y, buttons
CONST as integer escapeKey = 1
SCREEN 12
WHILE NOT MULTIKEY(escapeKey) 'これは、全てのフレームで、Esc キーをチェックします
GETMOUSE x, y, , buttons 'これは、マウスの状況を取得します
PRINT x,y,buttons
WEND
あなたは、この知識で、FreeBASIC のプログラムを作り始めることができます。
FreeBASIC が備える、すべての特権で:速度、パワー、そして、移植性!