Exemple #1
0
        public CANTMOVE Collision()
        {
            CANTMOVE CanYouMove = CANTMOVE.GITGUT;

            for (int y = 0; y < figura.Size; y++)
            {
                for (int x = 0; x < figura.Size; x++)
                {
                    if (figura.CurrentPiece[y, x] != 0)
                    {
                        if (landed[(int)figura.position.Y + y, (int)figura.position.X + x] != 0)
                        {
                            return(CANTMOVE.AtAll);
                        }
                        if ((figura.position.Y + y + 1 >= height) || (landed[(int)figura.position.Y + y + 1, (int)figura.position.X + x] != 0))
                        {
                            Place();
                            figura = new Figura();
                            return(CANTMOVE.DOWN);
                        }
                        if (figura.position.X + x - 1 < 0)
                        {
                            CanYouMove = CANTMOVE.LEFT;
                        }
                        if (figura.position.X + x + 1 >= width)
                        {
                            CanYouMove = CANTMOVE.RIGHT;
                        }
                    }
                }
            }

            return(CanYouMove);
        }
Exemple #2
0
        public void Update(GameTime gameTime)
        {
            ElapsedTime         += gameTime.ElapsedGameTime.Milliseconds;
            KeyBoardElapsedTime += gameTime.ElapsedGameTime.Milliseconds;
            CANTMOVE      OrCanYouQuestionMark = Collision();
            KeyboardState state = Keyboard.GetState();

            if (ElapsedTime > StepTime)
            {
                if (OrCanYouQuestionMark != CANTMOVE.DOWN)
                {
                    figura.MoveDown();
                }

                //Console.Clear();
                //Console.Write("Czas: " + (int)gameTime.TotalGameTime.TotalSeconds + " Punkty: " + Points + "\n");
                ElapsedTime = 0;
            }


            if (KeyBoardElapsedTime > 200)
            {
                if (state.IsKeyDown(Keys.Left) || state.IsKeyDown(Keys.Right) || state.IsKeyDown(Keys.Up))
                {
                    KeyBoardElapsedTime = 0;
                }

                if (state.IsKeyDown(Keys.Down))
                {
                    ElapsedTime         = StepTime + 1;
                    KeyBoardElapsedTime = 175;
                }
            }

            if (OrCanYouQuestionMark == CANTMOVE.AtAll)
            {
                //Console.Write("kuniec\n");
                Game1.State        = Game1.state.GAMEOVER;
                Game1.CurrentScore = Points;
                return;
            }

            if (state.IsKeyDown(Keys.Right) && !previousState.IsKeyDown(Keys.Right) && OrCanYouQuestionMark != CANTMOVE.RIGHT)
            {
                figura.MoveRight();
            }
            if (state.IsKeyDown(Keys.Left) && !previousState.IsKeyDown(Keys.Left) && OrCanYouQuestionMark != CANTMOVE.LEFT)
            {
                figura.MoveLeft();
            }
            if (state.IsKeyDown(Keys.Up) && !previousState.IsKeyDown(Keys.Up))
            {
                figura.Rotate();
            }
            if (Keyboard.GetState().IsKeyDown(Keys.Down) && !previousState.IsKeyDown(Keys.Down) && OrCanYouQuestionMark != CANTMOVE.DOWN)
            {
                figura.MoveDown();
            }

            RemoveCompleteLines();

            previousState = state;
        }