Создайте ложное трехмерное «пространство» с навигацией вперед и назад - PullRequest
2 голосов
/ 19 февраля 2012

В iOS мне бы хотелось иметь ряд элементов в «пространстве», похожих на то, как работает Time Machine.«Пробел» будет перемещаться с помощью полосы прокрутки, как на боковой стороне страницы.Так что, если человек прокручивает вверх, это по существу увеличит пространство, и объекты, которые были дальше, будут ближе к контрольной точке.Если кто-то уменьшит масштаб, то эти объекты исчезнут в задней части, и все, что находится за рамкой референции, станет видимым.Вроде как это .

Я открыт для различных решений.Я полагаю, что в openGL есть относительно простое решение, я просто не знаю, с чего начать.

Ответы [ 2 ]

1 голос
/ 01 марта 2012

Как вы сказали, в OpenGL (ES) относительно легко выполнить то, что вы просите, однако не так легко объяснить это кому-то, кто не уверен в OpenGL:)

Прежде всего, я могу предложить вам взглянуть на Красную книгу , справочное руководство по OpenGL или на OpenGL Wiki .
Для начала вы можете потренироваться, используя GLUT ; это поможет вам обрести уверенность в OpenGL, предоставляя некоторый высокоуровневый API, который позволит вам пропустить скучную сторону настройки контекста OpenGL, позволяя перейти непосредственно к части чертежа.

OpenGL ES является подмножеством OpenGL, поэтому, по сути, имеет такую ​​же структуру. Как только вы поймете, как использовать OpenGL, не должно быть так сложно использовать OpenGL ES. Конечно, Документация Apple - очень важный ресурс.

Теперь, когда вы знаете много вещей об OpenGL, вы сможете легко понять, как должна быть структурирована ваша программа.
Вы можете, например, сохранить свою точку зрения фиксированной и перевести мир (или наоборот). Не существует (конечно) универсального решения, тем более что единственное, что имеет значение, это конечный результат.


Другое решение (может быть, в равной степени хорошее, это зависит от ваших потребностей), может заключаться в том, чтобы просто увеличивать и уменьшать изображения (представляющие объекты вашего мира) для имитации движения через сам объект.

Например, вы можете использовать массив для хранения всех ваших изображений и использовать ползунок для установки (увеличения / уменьшения) размера вашего изображения. Как только изображение становится слишком большим для дисплея, вы можете постепенно уменьшать альфа, так что изображение позади будет медленно появляться. Взгляните на UIImageView справочник , он содержит все API, необходимые для него.

Это может привести к потере трехмерности, но, вероятно, это более простое / быстрое решение, чем изучение OpenGL.

1 голос
/ 19 февраля 2012

Проверьте iCarousel Ника Локвуда на github .Это очень хороший компонент.Пример кода, который он предоставляет, использует собственный стиль карусели, очень похожий на то, что вы описываете.Вы должны попасть туда с помощью нескольких настроек.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...