【C#】【ALTSEED】【数独】マウスカーソルの移動で色を変える。

前回までの状況はこちら。

最新ソースはこちら(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();
            }

実行結果はこんな感じです。

うん、良い感じです。

「【C#】【ALTSEED】【数独】マウスカーソルの移動で色を変える。」への1件のフィードバック

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください