2021/04/30(金) [n年前の日記]
#2 [basic] FreeBASICのグラフィックスライブラリを試用
ググっていたら、FreeBASIC にもグラフィックスライブラリ・描画機能があることを知った。
_さらにFreeBASIC | PIC AVR 工作室 ブログ
であれば、それら機能を試しに使ってみようかなと。環境は Windows10 x64 20H2 + FreeBASIC 1.07.3 (2021-04-10) 32bit。
_gdemo.bas
fbc gdemo.bas で、gdemo.exe を生成。gdemo.exe を実行。描画ウインドウ内に円をたくさん書いた後、文字列の入力待ちになる。入力した文字列を描画して、キー入力待ちになる。
各命令について補足。
ということで、今回色々触ってみたBASICの中で、線だの何だのを描画できるモノとなると、以下のような感じになるのだろうか…。
_さらにFreeBASIC | PIC AVR 工作室 ブログ
であれば、それら機能を試しに使ってみようかなと。環境は Windows10 x64 20H2 + FreeBASIC 1.07.3 (2021-04-10) 32bit。
_gdemo.bas
dim as integer x, y, radius, w, h, i, cnt, r, g, b dim s as string w = 512 h = 512 screenres w, h, 32 randomize cls cnt = 256 for i=0 to cnt x = rnd * w y = rnd * h radius = (w / 3) * i / cnt r = rnd * 255 g = rnd * 255 b = rnd * 255 circle (x, y), radius, RGBA(r, g, b, 32) next i color RGB(255, 255, 255) locate 4, 1 input "input any word : ", s print "input text is ... " + s print "push any key" sleep
fbc gdemo.bas で、gdemo.exe を生成。gdemo.exe を実行。描画ウインドウ内に円をたくさん書いた後、文字列の入力待ちになる。入力した文字列を描画して、キー入力待ちになる。
各命令について補足。
- dim as integer x, y, c で使う変数を宣言。integer は整数。string は文字列。
- screenres W, H, DEPTH で描画用ウインドウを生成。W, H が横幅・縦幅、DEPTH が1ドットあたりのビット数。32を指定すると、RGB各8bit+アルファチャンネル8bitの指定になる。
- cls で描画ウインドウ内をクリア。
- randomize で乱数を初期化。
- rnd で乱数を取得。0.0以上1.0未満の値が返ってくる。
- circle (X, Y), Radius, Color で円を描ける。Color は RGB(r, g, b) または RGBA(r, g, b, a) で指定できる。
- locate Y, X で、描画を開始する位置を指定できる。単位は文字サイズ。行、列の順番で指定することに注意。
- sleep で、キー入力があるまで待つ。
ということで、今回色々触ってみたBASICの中で、線だの何だのを描画できるモノとなると、以下のような感じになるのだろうか…。
- yaBasic
- Chipmunk Basic
- FreeBASIC
- SmallBASIC (非Microsoft・GPL版)
- Basic-256
[ ツッコむ ]
以上です。