Я создал игру с разбиением блоков и написал некоторый код, чтобы при уничтожении всех кирпичей в сцене загружался следующий уровень.
Это работает нормально, но есть ошибка! Когда я проигрываю, прежде чем уничтожить все кирпичи, а затем нажимаю «играть снова», статическая переменная, отвечающая за подсчет кирпичей в сцене, не сбрасывается в 0! Он сохраняет количество кирпичей до того, как я проиграл, и прибавляет к нему количество кирпичей в новой сцене! Таким образом, вместо того, чтобы возвращать, например, 24 (что является правильным количеством кирпичей в сцене), он возвращает 35 (11 + 24).
Как я могу это исправить?
Вот код, который я использую. Во-первых, кирпичный сценарий:
public int maxHits;
public int timesHit;
public Sprite[] hitSprites;
public static int breakableCount = 0;
private bool isBreakable;
private LevelManager levelManager;
// Use this for initialization
void Start () {
isBreakable = (this.tag == "Breakable");
if(isBreakable){
breakableCount++;
}
print (breakableCount);
timesHit = 0;
levelManager = GameObject.FindObjectOfType ();
}
void OnCollisionEnter2D(Collision2D collision) {
if (isBreakable) {
HandleHits ();
}
}
void HandleHits(){
//TODO remove the print!!
print ("collison");
timesHit++;
if (timesHit >= maxHits) {
breakableCount--;
print (breakableCount);
levelManager.BrickDestroyed ();
Destroy (gameObject);
} else {
LoadSprite ();
}
}
// Update is called once per frame
void Update () {
}
//TODO Remove this when player can WIN
void NextLevel(){
levelManager.LoadNextLevel ();
}
void LoadSprite(){
int spriteIndex = timesHit - 1;
this.GetComponent ().sprite = hitSprites [spriteIndex];
}
а вот скрипт LevelManager, который я использую для управления уровнями:
public void LoadLevel (string name) {
Debug.Log ("level change requested for : " + name);
Application.LoadLevel (name);
}
public void ExitRequest() {
Debug.Log ("Exit game requested");
Application.Quit ();
}
public void LoadNextLevel () {
Application.LoadLevel (Application.loadedLevel + 1);
}
public void BrickDestroyed () {
if(Brick.breakableCount
Подробнее здесь: https://stackoverflow.com/questions/395 ... -destroyed
В игре Block Breaker я пытаюсь загрузить уровни, когда все кирпичи уничтожены. ⇐ C#
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Block Block Block Block Block Разрешить доступ к списку указанных под папков
Anonymous » » в форуме Php - 0 Ответы
- 34 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Block Block Block Block Block Разрешить доступ к списку указанных под папков
Anonymous » » в форуме Apache - 0 Ответы
- 111 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Block Block Block Block Block Разрешить доступ к списку указанных под папков
Anonymous » » в форуме Php - 0 Ответы
- 25 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Block Block Block Block Block Разрешить доступ к списку указанных под папков
Anonymous » » в форуме Php - 0 Ответы
- 25 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Как отследить и обнаружить, когда все препятствия уничтожены в игре Brick Breaker? [закрыто]
Anonymous » » в форуме C# - 0 Ответы
- 20 Просмотры
-
Последнее сообщение Anonymous
-