Ejemplo n.º 1
0
        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);
                }
            }
        }
Ejemplo n.º 2
0
        //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);
            }
        }