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); }
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; }