Tijolos Resistentes
Lição 7 de 16 do curso Jogo no Unity: Quebra-Tijolos da Coddy.
Alguns tijolos precisam de mais de um impacto. Cada tijolo mantém uma contagem dos impactos que ainda pode receber: um impacto subtrai um, e somente o impacto que a leva a 0 quebra o tijolo e marca pontos. Até lá, o tijolo muda de cor, para que o jogador veja quanta resistência ainda tem.
Um array de cores preenchido no Inspector associa a contagem a uma cor. O elemento 0 é a cor para um impacto restante, o elemento 1 para dois, então a cor para uma contagem de n é o elemento n - 1. Um escudo com cargas funciona da mesma forma:
public Color[] chargeColors; // elemento 0: 1 carga restante
void ShowCharges(int charges)
{
GetComponent<Renderer>().material.color = chargeColors[charges - 1];
}Acessar material dá a este renderer sua própria cópia do material na primeira vez, então um escudo, ou um tijolo, muda de cor sem repintar cada cópia do prefab. O GameManager decide quanta resistência cada novo tijolo tem: um int[] com um número por linha, começando pela linha superior, permite que a linha superior receba mais impactos do que as demais.
Desafio
Médio- Em
Brick, adicionepublic int hits = 1epublic Color[] colors. A cena preenchecolorscom azul, laranja e vermelho, para 1, 2 e 3 acertos restantes. - Escreva
public void SetHits(int count): ele definehitse mostra a cor correspondente do tijolo. - Altere
Hit(): subtraia um dehits. Quando chegar a 0, o tijolo quebra e pontua como antes; caso contrário, ele apenas mostra sua nova cor. - Em
GameManager, adicionepublic int[] rowHits = { 2, 1, 1, 1, 1 };e atribua a cada novo tijolorowHits[row]acertos usandoSetHits.
Pressione Play, desgaste um tijolo laranja na fileira de cima e, em seguida, Check.
Experimente você mesmo
using UnityEngine;
public class Brick : MonoBehaviour
{
public int points = 10;
void OnCollisionEnter(Collision collision)
{
if (collision.gameObject.CompareTag("Ball")) Hit();
}
public void Hit()
{
GameManager.Instance.BrickBroken(this);
Destroy(gameObject);
}
}
Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.