/// <summary> /// コンストラクタ /// </summary> /// <param name="form">指定する形</param> public Tetrimino(Form_mino form) : base() { this.form = form; col = (Blk_Col)((int)form); Initialize(); }
private Random rnd; //ランダムオブジェクト #endregion フィールド /// <summary> /// コンストラクタ. /// </summary> public Tetrimino() : base() { //ランダムを生成 rnd = DeviceManager.CreateInstance().GetRandom(); //テトリミノの型の中からランダムに型を指定 int enumLength = Enum.GetValues(typeof(Form_mino)).GetLength(0); form = (Form_mino)(rnd.Next(0, enumLength)); //使用色ブロックを指定(formの値に対応した色を指定する) col = (Blk_Col)((int)form); Initialize(); //各種変数の初期化 }
/// <summary> /// 座標補正を用いない描画 /// (主にネクストミノ、ホールドミノ用) /// </summary> /// <param name="renderer"></param> /// <param name="center"></param> /// <param name="color"></param> /// <param name="alpha"></param> public void NotOffsetRender(Renderer renderer, Vector2 center, Blk_Col color, float alpha = 1.0f) { for (int y = 0; y < data[color].GetLength(0); y++) { for (int x = 0; x < data[color].GetLength(1); x++) { if (fieldMatrixData[y, x] != 0) { renderer.DrawTexture( color.ToString(), center + new Vector2((x - 2) * Size.WIDTH, (y - 2) * Size.HEIGHT), alpha); } } } }
/// <summary> /// テトリミノの描画 /// </summary> /// <param name="renderer"></param> /// <param name="center">回転配列の中心座標</param> /// <param name="color">描画を行うテトリミノのblk_Colメンバ</param> /// <param name="alpha">透明度(デフォルト値1.0)</param> public void RenderTetrimino(Renderer renderer, Vector2 center, Blk_Col color, float alpha = 1.0f) { for (int y = 0; y < data[color].GetLength(0); y++) { for (int x = 0; x < data[color].GetLength(1); x++) { //0(Space)でなければ描画する if (fieldMatrixData[y, x] != 0) { renderer.DrawTexture( color.ToString(), center + new Vector2((x - 2) * Size.WIDTH, (y - 2) * Size.HEIGHT) + offset, alpha); } } } }