воскресенье, 28 апреля 2013 г.

Проект в текущем состоянии на дропбоксе.

Проект в полном варианте, 100% рабочий.

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


Движение врагов по траектории (по контрольным точкам).

Всем привет.




Сделал траектории для врагов. Написание данного поста постоянно упорядочивало мои мысли. По-этому при написании рефакторился код. А после рефакторинга переписывался пост. И все по новой. Отчасти по-этому я так долго не мог выпустить данный пост. Отчасти же погоду испортил WOT со своими акциями то на КВ-1С то на ИС...

суббота, 23 марта 2013 г.

Анонс

В ближайшее время выложу чуть обновленную версию проекта. Занимаюсь рефакторингом. Уже сэкономил 10-20 дополнительных ФПС. Касательно игровой части, изменений будет мало, Разьве что появятся спрайтовые взрывы. Только после окончания оэтой очередной сессии рефакторинга - возьмусь за программы полета и стрельбы для врагов.

Ниже на картинке -сферический код в вакууме.

четверг, 21 марта 2013 г.

Сборные объекты.


Идея сборных объектов появилась по нескольким причинам.
1. Если нет отдельного художника в команде, то рисовать огромное разнообразие врагов - тяжко. Проще сделать несколько "запчастей" и собирать врагов из этих частей.
2. Каждой запчасти можно назначить свои свойства. То есть мы однажды закодили пушку, стреляющую определенными пулями. И в дальнейшем мы просто добавляем ее в конструкцию очередного врага и больше не паримся над кодом для ее стрельбы.
3. Нам нужно меньше текстур для игры.


Проект полностью в текущем состоянии. (DropBox)


ВАЖНОЕ ЗАМЕЧАНИЕ!То, что я выложу сегодня - далеко не окончательный вариант и нуждается в некотором рефакторинге. Однако, я давно обещал выложить этот пост и больше не могу заставлять читателя ждать. Теперь к делу. Начнем с описания врагов в XML.

вторник, 19 февраля 2013 г.

Разные астероиды и взрывы


Ссылка на полный исходник на DropBox

Самое главное, что появилось в этой версии - некий ParticleObjectController. В будущем я собираюсь перевести ВСЕ системы частиц под его управление. Согласитесь, что это приятно, когда все почти-однотипные объекты управляются одним механизмом. И не очень приятно в разных частях кода встречать то там то тут, например, инициализаторы систем частиц. Они много-строчные и вообще мешаются. В общем, гляньте в ParticleObjectController.java и увидите, каким образом там создаются взрывы. 

суббота, 12 января 2013 г.

DOM- и SAX-подходы к парсингу XML.


Всем привет.

Как и обещал - расскажу свои мысли о парсерах.
В прошлый раз я тщательно расписывал, что же такое парсер. А в этот раз приведу лишь одну цитату. (Цитата является ссылкой на источник).


Мы будем решать конкретную задачу. У нас будет небольшая база данных, несколько астероидов. Для данного поста я максимально упрощу эту базу данных. Для каждого астероида будет указано: координата по Х, координата по У и время появления на экране. Вот картинка, которая иллюстрирует все вышесказанное:


По просьбе RedHunter выкладываю полный исходник проекта.

ВОТ ОН.


вторник, 8 января 2013 г.

Анонс

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

воскресенье, 6 января 2013 г.

Предисловие - обращение к читателю.

Всем привет.

Формат данного блога такой. Я делаю игру для Android, используя AndEngine.
В каждой следующей записи я развиваю уже существующий код.

У меня просьба к каждому, кто зашел сюда.
Если вам что-то непонятно в моих записях - обязательно сообщайте в комментариях  Даже если вам вообще ничего не понятно - тоже пишите в комментариях: что вы делаете, что не получается, какой результат должен быть в идеале.

Ну а если есть предложения\пожелания по оформлению блога - пишите их в комментарии к этому сообщению.

суббота, 5 января 2013 г.

Разбираем LevelLoaderExample.



Всем привет. Если кто-то не в курсе, то вот отсюда можно скачать все примеры автора движка. Скачайте себе всю эту папочку и будет вам счастье. Сможете сами, как и я , понемногу разбираться в движке.
Ссылка на все примеры движка GLES2.

Сначала я вкратце расскажу что такое парсер, зачем он нужен. Если вы знаете, то это - пропустите первую часть данного поста - до кода. Затем я вам представлю пример, как работает движковый парсер по задумке автора. А после этого поделюсь своими мыслями о том, почему мне НЕ нравится данный парсер и почему я хочу сделать свой.

среда, 2 января 2013 г.

Заканчиваем исследование партикл-систем.

Думаю, это последний пост про партикл-системы. Я нашел несколько интересных штук в движке и хотел бы ими с вами поделиться. В посте 3 основных вопроса:
1. Как улучшить, сделать красивее свою систему.
2. Что такое BatchedSpriteParticleSystem и стоит ли ее использовать.
3. Какие бывают эмиттеры.

Бонусом выкладываю вам для всеобщего использования файлик с частицами, которые я использую. Он не мой - он из движка HGE. Первая картинка - просто для удобства - она Jpeg. Качайте вторую себе - она PNG. Я везде пока использую третью слева в третьей строчке.


вторник, 25 декабря 2012 г.

Продолжаем обрабатывать столкновения. Плавим астероиды.

Всем привет. Огромное спасибо Евгению Shiler за то, что вернул меня в работу. В первой части данного поста выложу то, что уже сделано, а затем займусь оптимизацией.

За видео прошу прощения - снимал, чем мог. Чуть позже, возможно, переделаю.

воскресенье, 11 ноября 2012 г.

Рефакторинг кода. Продолжаем наводить порядок.


Я всегда так пишу программы. От частного к общему. Главная причина в том, что я заранее не знаю, куда иду. Ибо зачастую путь и есть цель. (О как!) Но многие вполне справедливо имеют право закидывать меня помидорами и сыпать не менее красивыми цитатами. (Вроде "Не зная куда идешь - придешь в никуда.") Что ж - у каждого своя голова на плечах. Но тот, кто прочитает мой блог и, возможно, будет копировать мой код - вместе со мной придет к моему рефакторингу.

Теперь ближе к делу. Есть у нас в игре пока два вида объектов. Герой и Астероид. И у них много общего. А потом появятся еще объекты, и под каждый пришлось бы писать код с нуля... если бы не рефакторинг, который мы сейчас и проведем! (Кода будет больше чем в предыдущих постах!)

пятница, 9 ноября 2012 г.

четверг, 8 ноября 2012 г.

Группа объектов. А добавим-ка астероидов.


Интересная особенность наследования:
public class Asteroids extends Entity implements GlobalConstants{ ...... };
Asteroids mAsteroids;
scene.attachChild(mAsteroids);
// метод attachChild принимает аргумент типа Entity, 
// и нет перегруженного метода, принимающего аргумент типа Asteroids!

среда, 7 ноября 2012 г.

Наводим порядочек - вынос части кода в отдельный файл.


Первое и главное, что я сделал - начал выносить код из одного файла в отдельные.
Так появился класс Hero. Пока в него попала только функция создания и движения.
Функцию движения чуток оптимизировал, чтобы при каждом проходе не создавать\убивать 4 int-переменные.

четверг, 4 октября 2012 г.

понедельник, 1 октября 2012 г.

Бэкграунд.


Научился добавлять бэкграунд в сцену. Хотя по сути я просто создал еще один спрайт. Главное - правильно пихать текстуры в конструкцию try-catch в загрузчике ресурсов.

воскресенье, 23 сентября 2012 г.