private void ChangeBlock(Vector2 position1, Vector2 position2) { if (position2.X < 0 || position2.X >= Block.XMax || position2.Y < 0 || position2.Y >= Block.YMax) { return; } if (Keyboard.GetState().IsKeyDown(Keys.Space)) { int color1 = stopBlock.GetBlockColor(position1); int color2 = stopBlock.GetBlockColor(position2); if (color1 != 0 && color2 != 0) { stopBlock.SetBlock(position1, color2); stopBlock.SetBlock(position2, color1); } } }
//private void MoveRightLeft() //{ // //対応する停止ブロック上の位置を計算 // SetTablePosition(); // // 右へ移動 // // 右キー、パッド右方向を押したら // if (Keyboard.GetState().IsKeyDown(Keys.Right)) // { // // 前回が押してなければ // if (isPressRightKey == false) // { // //右側が空いてあれば // if (stopBlock.GetBlockColor(tablePosition + new Vector2(1, 0)) == 0 && // stopBlock.GetBlockColor(tablePosition + new Vector2(1, 1)) == 0) // { // position.X += Block.Size; // ブロックのサイズだけ右へ移動 // isPressRightKey = true;// 「押した」に設定 // } // } // } // else // 押してなければ // { // isPressRightKey = false; // 「押してない」に設定 // } // // 左へ移動 // // 左キー、パッド左方向を押したら // if (Keyboard.GetState().IsKeyDown(Keys.Left)) // { // // 前回が押してなければ // if (isPressLeftKey == false) // { // // 左側が空いてあれば // if (stopBlock.GetBlockColor(tablePosition+new Vector2(-1,0)) == 0 && // stopBlock.GetBlockColor(tablePosition+new Vector2(-1,1)) == 0) // { // position.X -= Block.Size; // ブロックのサイズだけ左へ移動 // isPressLeftKey = true;// 「押した」に設定 // } // } // } // else // 押してなければ // { // isPressLeftKey = false;// 「押してない」に設定 // } //} private void AliveCheck() { //対応する停止ブロック上の位置を計算 SetTablePosition(); // 画面の下に到着 if (position.Y >= Block.Size * (Block.YMax - 1) || stopBlock.GetBlockColor(tablePosition + new Vector2(0, 1)) != 0) { // 存在しない aliveFlag = false; //停止ブロックの発生 stopBlock.SetBlock(tablePosition, color); } }