// Verifica Colisões private void CheckCollisions() { Model_Element head = elements[0]; // Colisão com Item if (head.Position == Controller_GameManager.main.item.Position) { IncreaseSnake(); Controller_GameManager.main.EventItemCollided(); } // Colisão consigo mesmo for (int i = 1; i < elements.Count; i++) { if (head.Position == elements[i].Position) { Controller_GameManager.main.EventSnakeCollided(); } } // Colisão com borda if (head.Position[1] > Controller_GameManager.BOARDSIZE - 1 || head.Position[0] > Controller_GameManager.BOARDSIZE - 1 || head.Position[1] < 0 || head.Position[0] < 0) { Controller_GameManager.main.EventSnakeCollided(); } return; }
// Aumenta o Snake public void IncreaseSnake() { // Cria e instancia um novo segmento Model_Element tempElement = new Model_Element(); tempElement.Model = GameObject.Instantiate(bodyPrefab); tempElement.Position = lastEndPosition; tempElement.Model.transform.position = new Vector3(tempElement.Position[0], 0, tempElement.Position[1]); tempElement.Model.transform.parent = this.transform; tempElement.Model.transform.name = "Body"; elements.Add(tempElement); }