Exemplo n.º 1
0
        // 進行と描画


        public void 描画する(DeviceContext d2ddc, 種類 type, Vector2 中央位置dpx, float 拡大率 = 1f)
        {
            var 矩形 = type switch
            {
                種類._Tom1 => this._矢印の矩形リスト["Up"],
                種類._Tom2 => this._矢印の矩形リスト["Down"],
                種類.左_Snare => this._矢印の矩形リスト["Left"],
                種類.右_Tom3 => this._矢印の矩形リスト["Right"],
                _ => throw new Exception("未対応の種類です。"),
            };

            if (矩形 is null)
            {
                return;
            }

            var 左上位置dpx = new Vector3(
                中央位置dpx.X - 矩形.Value.Width * 拡大率 / 2f,
                中央位置dpx.Y - 矩形.Value.Height * 拡大率 / 2f,
                0f);

            var 換行列 =
                Matrix.Scaling(拡大率) *
                Matrix.Translation(左上位置dpx);

            this._矢印画像.描画する(d2ddc, 換行列, 転送元矩形: 矩形);
        }
Exemplo n.º 2
0
        // 進行と描画


        public void 描画する(種類 type, Vector2 中央位置dpx, float 拡大率 = 1f)
        {
            var 矩形 = new RectangleF?();

            switch (type)
            {
            case 種類._Tom1: 矩形 = this._矢印の矩形リスト["Up"]; break;

            case 種類._Tom2: 矩形 = this._矢印の矩形リスト["Down"]; break;

            case 種類.左_Snare: 矩形 = this._矢印の矩形リスト["Left"]; break;

            case 種類.右_Tom3: 矩形 = this._矢印の矩形リスト["Right"]; break;
            }

            if (矩形 is null)
            {
                return;
            }

            var 左上位置dpx = new Vector3(
                Global.画面左上dpx.X + 中央位置dpx.X - 矩形.Value.Width * 拡大率 / 2f,
                Global.画面左上dpx.Y + 中央位置dpx.Y - 矩形.Value.Height * 拡大率 / 2f,
                0f);

            var 換行列 =
                Matrix.Scaling(拡大率) *
                Matrix.Translation(左上位置dpx);

            this._矢印画像.描画する(換行列, 転送元矩形: 矩形);
        }
Exemplo n.º 3
0
        // 進行と描画


        public void 描画する(DeviceContext dc, 種類 type, Vector2 中央位置dpx, float 拡大率 = 1f)
        {
            var 矩形 = new RectangleF();

            switch (type)
            {
            case 種類._Tom1:  矩形 = this._矢印の矩形リスト["Up"]; break;

            case 種類._Tom2:  矩形 = this._矢印の矩形リスト["Down"]; break;

            case 種類.左_Snare: 矩形 = this._矢印の矩形リスト["Left"]; break;

            case 種類.右_Tom3:  矩形 = this._矢印の矩形リスト["Right"]; break;
            }

            var 左上位置dpx = new Vector2(中央位置dpx.X - 矩形.Width * 拡大率 / 2f, 中央位置dpx.Y - 矩形.Height * 拡大率 / 2f);

            var 換行列 =
                Matrix3x2.Scaling(拡大率) *
                Matrix3x2.Translation(左上位置dpx);

            this._矢印画像.描画する(dc, 換行列, 転送元矩形: 矩形);
        }