private void MoveDownConstant(BlockFacade blockFacade) { _secondsPassedAfterMove += Time.deltaTime; if (_secondsPassedAfterMove >= _secondsBetweenMove) { blockFacade.BlockTransform.position += Vector3.down; _secondsPassedAfterMove = 0; if (!_gridProcessor.CheckMovementIsValid(blockFacade.BlockTransform)) { _audioPlayer.PlaySound(SoundType.DropBlock); blockFacade.BlockTransform.position -= Vector3.down; _gridProcessor.AddToGrid(blockFacade.BlockTransform); if (_gridProcessor.CheckIfTopBorderReached(blockFacade.BlockTransform)) { _audioPlayer.PlaySound(SoundType.EndGame); _gridProcessor.DetachChildren(blockFacade.BlockTransform); } else { _gridProcessor.DetachChildren(blockFacade.BlockTransform); _gridProcessor.CheckForFullLines(); } } else { _audioPlayer.PlaySound(SoundType.MoveBlock); } } }
private void HandleUserInput(BlockFacade blockFacade) { if (Input.GetKeyDown(KeyCode.RightArrow)) { MoveByControls(blockFacade, Vector3.right); } if (Input.GetKeyDown(KeyCode.LeftArrow)) { MoveByControls(blockFacade, Vector3.left); } if (Input.GetKeyDown(KeyCode.UpArrow)) { RotateByControls(blockFacade); } if (Input.GetKey(KeyCode.DownArrow)) { ChangeMoveRate(_speedSettings.currentSpeed / 15); } else { ChangeMoveRate(_speedSettings.currentSpeed); } }
private void RotateByControls(BlockFacade blockFacade) { _audioPlayer.PlaySound(SoundType.RotateBlock); blockFacade.BlockTransform.RotateAround(blockFacade.BlockTransform.TransformPoint(blockFacade.RotationPoint), Vector3.forward, 90); if (!_gridProcessor.CheckMovementIsValid(blockFacade.BlockTransform)) { blockFacade.BlockTransform.RotateAround(blockFacade.BlockTransform.TransformPoint(blockFacade.RotationPoint), Vector3.forward, -90); } }
private void MoveByControls(BlockFacade blockFacade, Vector3 movement) { _audioPlayer.PlaySound(SoundType.MoveBlock); blockFacade.BlockTransform.position += movement; if (!_gridProcessor.CheckMovementIsValid(blockFacade.BlockTransform)) { blockFacade.BlockTransform.position -= movement; } }
public void Move(BlockFacade blockFacade) { if (!IsMovementEnabled) { return; } HandleUserInput(blockFacade); MoveDownConstant(blockFacade); }
public void SpawnNewBlock() { _currentBlock = _nextBlock ?? _blockFactory.Create(); _currentBlock.BlockTransform.position = _spawnPoint.transform.position; _currentBlock.BlockTransform.gameObject.SetActive(true); _currentBlock.GhostBlockTransform.gameObject.SetActive(true); _nextBlock = _blockFactory.Create(); _nextBlock.BlockTransform.position = _spawnPoint.transform.position; _nextBlock.BlockTransform.gameObject.SetActive(false); _nextBlock.GhostBlockTransform.gameObject.SetActive(false); _blockPreviewImage.sprite = _nextBlock.Block.PreviewSprite; }
public void Move(BlockFacade blockFacade) { if (!IsMovementEnabled) { return; } blockFacade.GhostBlockTransform.position = blockFacade.BlockTransform.position; blockFacade.GhostBlockTransform.rotation = blockFacade.BlockTransform.rotation; while (_gridProcessor.CheckMovementIsValid(blockFacade.GhostBlockTransform)) { blockFacade.GhostBlockTransform.position += Vector3.down; } if (!_gridProcessor.CheckMovementIsValid(blockFacade.GhostBlockTransform)) { blockFacade.GhostBlockTransform.position += Vector3.up; } }