// 進行と描画 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, 換行列, 転送元矩形: 矩形); }
// 進行と描画 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._矢印画像.描画する(換行列, 転送元矩形: 矩形); }
// 進行と描画 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, 換行列, 転送元矩形: 矩形); }