Максимальный предел диапазона массиваC#

Место общения программистов C#
Ответить
Anonymous
 Максимальный предел диапазона массива

Сообщение Anonymous »

Я работаю над кодом для 2D-игры, в которой у игрока есть 3 сердца.
Если игрок сталкивается с префабом бомбы, он теряет 1 сердце. Если игрок сталкивается с префабом сердца, он выигрывает дополнительное сердце. Если он 3 раза подряд столкнется с префабом бомбы, игра закончится.
Текстура сердец выглядит следующим образом. Массив 0 (3 сердечка) Массив 1 (2 сердечка) Массив 2 (1 сердечко).
У меня возникла проблема с ограничением массива! Я хочу знать, как получить следующий ответ: если у игрока есть 3 сердца и он сталкивается с сердечным префабом, уничтожается только объект, количество сердечек у игрока не меняется.
Приведенный ниже код позволяет брать и давать дополнительные сердечки. Но когда я сталкиваюсь с одним heartPrefab, а у меня уже есть 3 сердца (максимум), я получаю сообщение об ошибке: индекс находится за пределами массива.
Как мне действовать? Если возможно, ответьте на C#
using UnityEngine;
using System.Collections;
using UnityEngine;
using System.Collections;

public class Heart : MonoBehaviour
{
public Texture2D[] initialHeart;
private int heart;
private int manyHeart;

void Start ()
{
// The game start with 3 hearts at RANGE 0
GetComponent ().texture = initialHeart [0];
heart = initialHeart.Length;
}

public bool TakeHearts ()
{
if (heart < 0) {
return false;
}

if (manyHeart < (heart - 1)) {
manyHeart += 1;
GetComponent ().texture = initialHeart [manyHeart];
return true;
} else {
return false;
}
}

public bool AddHearts ()
{
if (heart

Подробнее здесь: https://stackoverflow.com/questions/367 ... ange-limit
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»