2014-11-27 3 views
-1

Я сделал 1: 1 копию приложения iOS «MohrenJass» для Android. -> Austria Cardgame .. Хороший пример обучения :) Хорошее введение в Activity, Views, Canvas, Preference, API и т. Д. Теперь я сделал образец OpenGL ES с страницы разработчика. Я читал о OpenGL, но у меня есть вопрос об этом. В нем есть некоторые моменты, которые дают мне тяжелые времена. матрица, вершина, шейдер, фрагмент, проекция, камера, ... Его не то, что я не понимаю, но только знать, «сделать это, когда что» не достаточно для поиска ошибок в коде ...OpenGL ES Startup

Я думаю о попытке следующего кода ReplicaIsland, , но сначала я должен начать с OpenGL?

Я нашел Фро OpenGL -> Предпочитают, потому что его немецкий http://wiki.delphigl.com/index.php/Hauptseite (не знаю, если его можно с моим стендом знаний)

Также нашел http://www.learnopengles.com/android-lesson-one-getting-started/

Или пропустить это и перейти в ReplicaIsland? Изучение дела было всегда хорошим способом, , но иногда его удар в моем лице ...

Я бы не попробовал следующее простое 2D-приложение. Площадь, чтобы идти влево/вправо, прыгать выше другой площади или somthing. Только для того, чтобы научиться достигать когда-нибудь моя цель реально создать приложение :)

Я также кое-что прочитал об Unity, но я думаю, что это не так, как я должен начать это. Возможно, если я знаю, что я делаю, это будет легко ... Ну .. Надеюсь, у вас есть подсказки для меня!

ответ

0

Что касается библиотек, таких как Unity или Cocos 2D, и вы можете начать с вашего приложения быстрее, но они обычно ограничивают ваши возможности в качестве разработчика в какой-то момент. Если это предназначено для создания простой игры, вы должны пойти на это. Если цель состоит в том, чтобы получить как можно больше знаний, я предлагаю вам попробовать openGL. Это непросто, и со временем это становится нелегким, но оно того стоит. И если позже вы перейдете в какую-то библиотеку, все будет так же ясно, как день.

Так что о учебниках и примерах есть факт, что они в большинстве случаев вводят в заблуждение. Они объяснят вам, как что-то делается, но структура кода будет совершенно незаметна. Если вам нужен хороший код, который поможет вам с течением времени, вы должны начать с создания простой сцены «отладки», к которой вы можете добавить компоненты, которые вам потом понадобятся. Например, вы должны создать класс, который может содержать контекст openGL, который впоследствии должен быть расширен, чтобы включать кеши, такие как текстуры, шейдеры ... Тогда у вас должен быть класс, содержащий образы, на которые вы ссылаетесь, буфер кадра и буферы визуализации использовать на нем. Он должен содержать все необходимые инструменты для инициализации с представлением, включения буферов глубины, буферов трафарета, представления содержимого ... Все эти и более могут быть более или менее вставлены из примеров и руководств, все, что вам нужно сделать, это реструктурировать их. Это будет ваша базовая конструкция, так как вы сможете создавать все компоненты для рисования и представления, но не можете рисовать с ней. Чтобы проверить все, что вы можете сделать, попробуйте очистить буфер до некоторого значения и посмотреть, получится ли ожидаемый результат.

После этого начинается интересная часть: создание классов для обработки и компиляции шейдеров, классов для создания текстур из изображений, матричных стеков, VBOs ... Снова все они могут быть вставлены из Интернета, но нуждаются в реструктуризации.

Итак, когда у вас есть все необходимые инструменты, вы можете начать работать над самой игрой. В этот момент большинство людей ошибается. Попробуйте создать объекты, которые содержат все данные, необходимые для представления определенного элемента в вашей игре. Например, у вас есть символ, который определяется с помощью location, speed и изображения (texture). Этот объект может затем иметь метод draw и метод move. Метод draw будет использовать location для перевода матрицы, будет генерировать или повторно использовать некоторые данные вершин, связывать соответствующий texture и просто рисовать сам. move в этом случае будет использовать только speed для изменения location. По мере того как вы идете более глубоко, компоненты обычно добавляются, и ситуация может усложняться. Но представьте только то, что я написал выше, вы можете создать 3 изображения: персонаж, враг, пуля; затем создайте столько объектов, сколько вам нужно в любое время с этими изображениями, перемещайте их по своему усмотрению, создавайте обнаружение сбоев (что очень просто с этими данными), и у вас есть простая игра, которая может стать очень продвинутой очень быстро, только добавив несколько трюков.

+0

Спасибо, это прекрасный ответ! Я попробую, как вы объяснили, и THX для вашего времени: D – LaCocoRoco