「コマンドラインからC#でDXライブラリを使う(その2)」の続きです。
今回は図形描画です。
まずは点から。
DX.DrawPixel()を使います。
ランダムな色と座標で点を描画するプログラムの例です。
main1.cs
using System;
using DxLibDLL;
class Test{
[STAThread]
static void Main(){
uint Color;
int i;
Random r=new Random();
DX.ChangeWindowMode(DX.TRUE);
DX.SetGraphMode(640,480,32);
if(DX.DxLib_Init() == -1) return;
for(i=0;i<300000;i++){
Color = DX.GetColor(
r.Next(256),
r.Next(256),
r.Next(256));
DX.DrawPixel(
r.Next(640),
r.Next(480),
Color);
}
while(DX.ProcessMessage() == 0
&& DX.CheckHitKey(DX.KEY_INPUT_ESCAPE) == 0){
}
DX.DxLib_End();
}
}
コマンドプロンプトで、ビルドして実行
C:\>csc main1.cs DxDll.cs C:\>main1

線の描画は、
DX.DrawLine()を使います。
main2.cs
using System;
using DxLibDLL;
class Test{
[STAThread]
static void Main(){
uint Color;
int i;
Random r=new Random();
DX.ChangeWindowMode(DX.TRUE);
DX.SetGraphMode(640,480,32);
if(DX.DxLib_Init() == -1) return;
for(i=0;i<10000;i++){
Color = DX.GetColor(
r.Next(256),
r.Next(256),
r.Next(256));
DX.DrawLine(
r.Next(640),
r.Next(480),
r.Next(640)+1,
r.Next(480)+1,
Color);
}
while(DX.ProcessMessage() == 0
&& DX.CheckHitKey(DX.KEY_INPUT_ESCAPE) == 0){
}
DX.DxLib_End();
}
}

四角形です。
DX.DrawBoxを使います。最後の引数をDX.TRUEにすると塗りつぶしをしてくれます。
using System;
using DxLibDLL;
class Test{
[STAThread]
static void Main(){
uint Color;
int i;
Random r=new Random();
DX.ChangeWindowMode(DX.TRUE);
DX.SetGraphMode(640,480,32);
if(DX.DxLib_Init() == -1) return;
for(i=0;i<10000;i++){
Color = DX.GetColor(
r.Next(256),
r.Next(256),
r.Next(256));
DX.DrawBox(
r.Next(640),
r.Next(480),
r.Next(640)+1,
r.Next(480)+1,
Color,
DX.FALSE);
}
while(DX.ProcessMessage() == 0
&& DX.CheckHitKey(DX.KEY_INPUT_ESCAPE) == 0){
}
DX.DxLib_End();
}
}



コメント