2013-07-17 5 views
-1

Для мини-игры, написанной в java, у меня есть основной уровень и уровень фона. Игрок может ходить только на уровне почты, а фоновый уровень предназначен только для украшения. Ive написал метод, который проверяет все видимые фоновые фрагменты и помещает координаты этих фрагментов в int [] [] []. Массив является трехмерным, поскольку фон также является трехмерным. Поскольку фон не всегда виден, я думал, что могу сэкономить довольно некоторое время обработки, сначала проверив, была ли видима только одна фоновая плитка. Другими словами, проверка наличия массива, содержащего все видимые фоновые фрагменты, имеет любое значение, записанное в любом слоте. Когда видна плитка, эта координата в массиве становится равной 1, а в остальном она остается по умолчанию (0 я думал). Вы, ребята, знаете хороший способ эффективно проверить, содержит ли массив значение, поэтому программе не нужно просматривать каждый отдельный слот 60 раз в секунду?java все значения int [] 0

+5

код стоит 1.024 слов ... –

+1

Я хотел бы сделать это с помощью графического процессора, а не пытаться сделать это в Java. Нарисуйте несколько изображений с прозрачными частями. Это может быть на 100 раз быстрее, чем попытка сделать это на Java. –

+0

Почему бы не подсчитать количество видимых фрагментов во время вставки и _append_ this _information_ в массиве? Таким образом, вам нужно будет проверить только один _space_, а не каждый отдельный слот. –

ответ

0

Если вы не хотите каждый раз проходить через весь массив, вы можете сохранить флаг или аналогичный, который говорит вам, есть ли видимые.

Даже если вы должны иметь достаточно вычислительной мощности, чтобы пройти через массив 60 раз в секунду :)

0

Я не думаю, что есть встроенный механизм для проверки, если массив полностью разряжен в Java. Однако, если ваш массив действительно массивный, вы не должны недооценивать свой компьютер; для проверки массива 60 раз в секунду на самом деле не требуется большая вычислительная мощность.

В качестве альтернативы, вы можете сохранить имущество count или что-то в этом роде; увеличивайте его каждый раз, когда вы меняете элемент массива на 1, и уменьшаете его, когда вы возвращаете элемент обратно на null. Всякий раз, когда count равен 0, вы можете предположить, что массив пуст.

Кроме того, важно отметить, что в Java, слоты массива инициализируются null, а не 0.

+1

Это 'int []', поэтому слоты действительно инициализированы на 0. – GriffeyDog

+0

Но 'int [] [] []' - массив ссылок на 'int [] []' массивы ссылок на 'int []' массивы 'int'. –

Смежные вопросы