前回までの状況はこちら。
最新ソースはこちら(gitHub)。
https://github.com/takishita2nd/sudokuGUI
今回は、マウスカーソルがマスの上に移動すると、色を変化させる所までいきます。
やり方は簡単で、マスの座標の上にマウスカーソルが上に来ると、テクスチャを設定し、カーソルが外れると、テクスチャを消します。
private const int width = 64;
private const int height = 64;
public void updateTexture(asd.Vector2DF pos)
{
if(pos.X > _x && pos.X < _x + width
&& pos.Y > _y && pos.Y < _y + height)
{
_backTexture.Texture = Resource.getTexture();
}
else
{
_backTexture.Texture = null;
}
}
これを実装したマスオブジェクトを9×9に配置します。
SquareObject[,] squareObjects = new SquareObject[9, 9];
for(int row = 0; row < 9; row++)
{
for(int col = 0; col < 9; col++)
{
var obj = new SquareObject(row, col);
obj.setValue(0);
asd.Engine.AddObject2D(obj.getBackTexture());
asd.Engine.AddObject2D(obj.getTextObject());
squareObjects[row, col] = obj;
}
}
ループ処理の中でマウスの座標を取得し、全マスオブジェクトに更新を行います。
// Altseedが進行可能かチェックする。
while (asd.Engine.DoEvents())
{
asd.Vector2DF pos = asd.Engine.Mouse.Position;
for (int row = 0; row < 9; row++)
{
for (int col = 0; col < 9; col++)
{
squareObjects[row, col].updateTexture(pos);
}
}
// Altseedを更新する。
asd.Engine.Update();
}
実行結果はこんな感じです。
うん、良い感じです。