点描方法として、ビット単位の
Or を使用する
Put 描画命令文へのパラメタ
構文:
Put [ target, ] [ STEP ] ( x,y ), source [ ,( x1,y1 )-( x2,y2 ) ], Or
パラメタ:
説明:
Or 方法は、ビット演算の
Or 関数を使って、それぞれのソース画素を、対応するあて先画素に結合します。
この結果は、あて先画素として出力されます。
この方法は、すべての描画モードで使えます。
マスク色は、全くありません。色値
0 (フルカラー・モードでの
RGBA(0、0、0、0))は、無効です。
Or のふるまいです。
フルカラー・モードでは、各要素(赤、緑、青、アルファ)が、ビットの離散的なセットで保たれます。このため、特定のチャンネルだけに影響するように、操作することができます。確実にするため、他のすべてのチャンネルの値は、 0 に設定されます。
例:
注:FreeBASIC 1.08〜 で、SetEnviron を追加しなくても、日本語環境で描画画面が表示されるように改善されました。
' Sets the graphics method GDI
' 描画方法を GDI に設定
SetEnviron("fbgfx=GDI")
''描画画面を開けます
ScreenRes 320,
200,
16
''赤、緑、青の円を含む、3つのスプライト(sprite)を生成します
Const As Long r =
32
Dim As Any Ptr cr, cg, cb
cr =
ImageCreate
(r *
2 +
1, r *
2 +
1,
RGBA(0,
0,
0,
0))
cg =
ImageCreate
(r *
2 +
1, r *
2 +
1,
RGBA(0,
0,
0,
0))
cb =
ImageCreate
(r *
2 +
1, r *
2 +
1,
RGBA(0,
0,
0,
0))
Circle cr,
(r, r
), r,
RGB(255,
0,
0), , ,
1, f
Circle cg,
(r, r
), r,
RGB(0,
255,
0), , ,
1, f
Circle cb,
(r, r
), r,
RGB(0,
0,
255), , ,
1, f
''3の異なった乗算器(multiplier)に、スプライト(sprite)を置きます
''中央で互いを重ね合わせるレベル」
Put (146 - r,
108 - r
), cr,
Or
Put (174 - r,
108 - r
), cg,
Or
Put (160 - r,
84 - r
), cb,
Or
''スプライト(sprite)によって使用されたメモリを解放します
ImageDestroy cr
ImageDestroy cg
ImageDestroy cb
''プログラムを閉じる前に待ちます
Sleep
QB との違い:
参照: