ペンタブ初心者用のまる練習用ツールを作る(その5)


アニメ『ラブライブ!2期』

1期面白かったです。何かを目標にするのって大事ですね。

ペンタブ初心者用のまる練習用ツールを作る(その4)」の続きです。
「ペンタブ初心者用のまる練習用ツールを作る(その4)」までは、Windows.Formsを使ってましたが、せっかくDXライブラリを使い始めたので、DXライブラリを使用するプログラムに変えてみます。

ペンが離されたときに、画像を切り替える処理は、DX.GetMouseInputLog2というAPIを使って実現します。

int Button;
int UpDown;
int X;
int Y;

DX.GetMouseInputLog2( out Button, out X, out Y, out UpDown, DX.TRUE);

if( ( Button & DX.MOUSE_INPUT_LEFT ) != 0 ){
	if(UpDown == DX.MOUSE_INPUT_LOG_UP){
		// ペンががタブレットから離された時に処理される
	}
}

これを組み込んだ全ソースです。
maru.cs

using System;
using DxLibDLL;
	
class Test{
	static string[] files;
	static int file_no=0;
	static void UpdatePicture(){
		DX.DrawBox(0,0,200,200,DX.GetColor(255,255,255),DX.TRUE);
		DX.LoadGraphScreen(0,0,files[file_no++],DX.TRUE);
		if(file_no>=files.Length)
			file_no=0;
	}
	[STAThread] static void Main(){
		int Button, UpDown;
		int X, Y;
		uint Color;
		Random r=new Random();
		DX.ChangeWindowMode(DX.TRUE);
		DX.SetGraphMode(200,200,32);

		files = System.IO.Directory.GetFiles(
		@"img", "*.png", System.IO.SearchOption.AllDirectories);

		if(DX.DxLib_Init() == -1) return;

		UpdatePicture();

		while(DX.ProcessMessage() == 0
			&& DX.CheckHitKey(DX.KEY_INPUT_ESCAPE) == 0){

			if( ( DX.GetMouseInput() & DX.MOUSE_INPUT_LEFT ) != 0 ){
				DX.GetMousePoint(out X, out Y);
				Color = DX.GetColor(0,0,0);
				DX.DrawCircle(X, Y, 2, Color,DX.TRUE);
			}
			DX.GetMouseInputLog2( out Button, out X, out Y, out UpDown, DX.TRUE);
			if( ( Button & DX.MOUSE_INPUT_LEFT ) != 0 ){
				if(UpDown == DX.MOUSE_INPUT_LOG_UP){
					UpdatePicture();
					UpDown = 0;
				}
			}
		}
		DX.DxLib_End();
	}
}

コマンドプロンプトで、ビルドして実行

C:\>csc maru.cs DxDll.cs
C:\>maru

実行動画です。

Leave a Reply

Your email address will not be published. Required fields are marked *

CAPTCHA