Я пытаюсь распрямить массив 3D 1D массив для системы «chunk» в моей игре. Это 3D-block игра, и в основном я хочу, чтобы система chunk была почти идентична системе Minecraft (однако, это не Minecraft клонировать по какой-либо мере). В моем предыдущем 2D-games я получил доступ к распрямленному массиву со следующим алгоритмом:
Tiles[x + y * WIDTH]
Однако это, очевидно, не работает с 3D, поскольку в нем отсутствует ось Z. Я понятия не имею, как реализовать такой алгоритм в 3D-space. Ширина, высота и глубина - все константы (а ширина равна высоте).
Это просто x + y * ШИРИНА + Z * DEPTH
? Я довольно плохо с математикой и я только начинаю 3D-programming так что я довольно потерян: |
PS. Причина этого в том, что я закольцовываю и получаю вещи по индексу из него довольно много. Я знаю, что 1D массивы быстрее, чем многомерные (по причинам, которые я не могу вспомнить: P). Несмотря на то, что это может быть не нужно, я хочу как можно более высокую производительность:)
-121--771417-Я строю инструмент тестирования/анализа, который требует инструментария классов Android рамки. В этом инструменте классы должны быть инструментализированы для определения вызывающего абонента метода (т.е. сигнатуры метода), который в настоящее время выполняется, и на основе вызывающего абонента выполняется некоторая обработка. Мой вопрос в том, какой метод я должен использовать для определения вызывающего абонента?
Я знаю, что один из подходов заключается в использовании java.lang.Throwable и метода getStackTrace. Однако это неэффективно. Существуют ли другие (общедоступные или скрытые) API (подобные sun.reflect.Reflection.getCallerClass стандартного JDK) для платформы Android, которые можно использовать?