private void Start() { snakeCollision = GetComponentInParent <SnakeCollision>(); sphereCollider = GetComponent <Collider>(); if (colliderType == SnakeColliderType.MAGNET) { sphereCollider.enabled = false; } }
private void Start() { snakeMovement = GetComponent <SnakeMovement>(); snakeCollision = GetComponent <SnakeCollision>(); snakeTailSpawner = GetComponent <SnakeTailSpawner>(); snakeHatChooser = GetComponentInChildren <SnakeHatChooser>(); snakeMovement.Init(this); snakeCollision.Init(this); snakeTailSpawner.Init(this); snakeHatChooser.Init(GameManager.instance.GetSavedData()); }
private void Start() { snakeMovement = GetComponent <SnakeMovement>(); snakeCollision = GetComponent <SnakeCollision>(); snakeTailSpawner = GetComponent <SnakeTailSpawner>(); snakeHatChooser = GetComponentInChildren <SnakeHatChooser>(); snakeMovement.Init(this); snakeCollision.Init(this); snakeTailSpawner.Init(this); snakeHatChooser.Init(GameManager.instance.GetSavedData()); waitAfterResumeWaitForSeconds = new WaitForSeconds(waitToReviveDelay); }
private void handleCollisionWithSnake(SnakeCollision collision) { switch (collision) { case SnakeCollision.Apple: m_soundEat.Play(); // --- todo notice that new position can be same as snake , fix this !!!!!! Point topLeftInsideBorder = new Point { x = m_border.TopLeft.x + 1, y = m_border.TopLeft.y + 1 }; Point bottomRightInsideBorder = new Point { x = m_border.BottomRight.x - 1, y = m_border.BottomRight.y - 1 }; m_apple.Head = Utils.GetRandPoint( topLeftInsideBorder, bottomRightInsideBorder, m_snake.GetHead()); m_apple.IsDirty = true; Point possibleSnakeTailPoint = m_snake.Grow(); if (!isCollision(possibleSnakeTailPoint)) { m_snake.AddToTail(possibleSnakeTailPoint); m_CurrentApplesResult.Score += 10; m_snake.CurrentUpdatePeriodSec = m_snake.CurrentUpdatePeriodSec * (1 - Constants.GROW_PERCENT / 100f); if (m_CurrentApplesResult.Score > m_BestApplesResult.Score) { m_storageBestResult.Write(m_CurrentApplesResult); m_BestApplesResult = m_CurrentApplesResult; m_bNewBestResult = true; } m_textOutput.Clear(); m_textOutput.AddMessage(getScoreMessage()); } m_gameState = GameState.Playing; break; case SnakeCollision.Border: case SnakeCollision.Snake: m_gameState = GameState.FinishPlaying; break; default: break; } }