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