IOS 3d для экспертов - PullRequest
       2

IOS 3d для экспертов

0 голосов
/ 02 февраля 2012

Я разработал несколько простых приложений для iOS и собираюсь разработать простую игру-лабиринт.То, что я пытаюсь сделать, является действительно базовым, поэтому я ищу несколько советов о том, куда идти.

Вот в основном то, что я пытаюсь сделать: простая игра с побегом из лабиринта, гдеЯ читаю в двумерном массиве, и это делает мой лабиринт.

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

Стены всегда будутбудет такой же высоты, и лабиринт будет простыми квадратными блоками, хотя я хочу, чтобы он мог обрабатывать комнаты размером более 2х2, например, 4х4, и обрабатывать их.

Я не уверен, что пытаться что-то сделать в OpenGL было бы излишним, поскольку мои требования действительно базовые.Как я уже говорил, это не будет свободным ходом;каждый раз, когда вы нажимаете кнопку и поворачиваете влево или вправо, он будет сдвигаться на одну клетку.

Я читал кое-что о приведении лучей для такого рода вещей, но не уверен, как бы я это сделал в iOS.Также я бы хотел, чтобы лабиринт не занимал весь экран, возможно, 2/3, в то время как остальные - стандартные элементы управления iOS, такие как кнопки и метки, и фон за ним.

Какие книги или статьи должныЯ читаю, чтобы помочь мне?Я бы предпочел не использовать сторонний движок, так как он кажется очень простым.

1 Ответ

3 голосов
/ 03 февраля 2012

Вы можете сделать это с помощью Core Animation, которая намного проще, чем OpenGL.Если вы импортируете QuartzCore в свой проект, вы можете расположить любой вид в 3D следующим образом:

//set the view's 2D position so that the vanishing point is the middle
//of the screen - use the same centre for every view
view.center = CGPointMake(window.bounds.size.width / 2.0f, window.bounds.size.height / 2.0f);

//create a 3d transform
CATransform3D transform = CATransform3DIdentity;
transform.m34 = -1.0f/500.0f; // this sets the 3D perspective

//you can transform the view in 3D relative to the camera
//this rotates the view by 45 degrees about the Y axis
//but you can also scale, translate, etc using equivalent functions
transform = CATransform3DRotate(transform, M_PI_4, 0.0f, 1.0f, 0.0f)

//transform the view in 3D
view.layer.transform = transform;

Таким образом, если вы создаете свои стены как UIImageViews, вы можете расположить их в комнате, преобразовав каждую из них по отдельности, используялогика выше.

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