среда, 19 августа 2015 г.

Пишем игру для Андроид

Статья пятая. Предварительные настройки и создание лунной базы.

   Вообще-то, планировалось отработать столкновение астероида с базой, но тут я вспомнил, что у нас пока нет самой базы. Астероид летает на голубом фоне, и сталкиваться ему пока не с чем.

   Поэтому было решено создать две картинки лунной базы, которые будут являться фоном.


    Теперь у нас есть, что защищать.

понедельник, 17 августа 2015 г.

Пишем игру для Андроид


Статья четвертая. Игровой цикл.

Очень важно, какой тип игры вы создаете. Так как у нас игра динамическая, нам нужно всё время обновлять картинку на устройстве. Это значит сначала создать её, применив новые координаты объектов, а затем вывести на экран. Наше зрение устроено так, что если мы будем делать это меньше, чем за 0,04 с, то нам будет казаться движение объектов непрерывным. Но объекты могут быть разными по сложности прорисовки, а устройства, на которых вы играете – разными по быстродействию. Может так случиться, что на одних планшетах или мобильниках наше приложение будет «летать», так что пользователь не будет успевать играть, а на других – будет тормозить и глючить так, что пользователь, скорей всего, удалит её со своего устройства. Возникает мысль, проходить один игровой цикл за 0,04с (25 кадров (циклов) в секунду) на всех устройствах. Всё было бы хорошо, если бы все устройства могли это сделать. Представьте, что у вас 10 динамических объектов в игре, которые взаимодействуют между собой, порождая новые объекты, например, взрыв при столкновении, но надо не забыть воспроизводить звуки и реагировать на включения пользователя в игру. Я уже не говорю о реалистичной графике окружающего мира. Что же делать, если наше устройство не успевает в какой-то сцене создать игровой цикл? Решений несколько. Советую вам хорошенько проштудировать эту статью

Кому лень читать на английском, смотрите за вторник, 11 августа 2015 г. мой перевод
«Статья об игровом цикле», автор Koen Witters

Создаем игровой цикл

вторник, 11 августа 2015 г.

Статья об игровом цикле 

автор Koen Witters 

http://www.koonsolo.com/news/dewitters-gameloop/

перевод Валерий Старощук

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

Игровой цикл

   Любая игра состоит из последовательности действий, таких как: получение входных данных от пользователя, обновление состояния игры, обработка логики, проигрывание музыки и звуковых эффектов и отображение игры.
            Эта последовательность обрабатывается с помощью игрового цикла. Как я сказал в начале, игровой цикл, как сердцебиение, он задает ритм в игре. В этой статье я не буду вдаваться в подробности задач решаемых в игровом цикле, мы сосредоточимся на самом цикле. Вот почему я упростил задачи до 2 функций: обновление игры и её отображение. Вот пример кода игрового цикла в наиболее простой форме:

понедельник, 10 августа 2015 г.

Пишем игру для Андроид

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


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


 Теперь нужно решить проблему расположения кнопки. Она в том, что на разных экранах наша кнопка должна располагаться примерно в одном и том же месте относительно заднего фона. Я воспользовался методом разметки TableLayout. Фактически мы разобьем экран на 9 прозрачных ячеек (3 строки и 3 столбца). В 8 ячейку вставим изображение светлой кнопки.
Но прежде, давайте создадим второе активити, на которое будем переходить при нажатии кнопки. Для этого наведите мышку на папку java, кликните правой кнопкой.



В выпадающем меню двигаемся по пути New>Activity>Blank Activity. Кликаем левой кнопкой. Нам открывается окно, в котором мы можем назвать наше активити SecondActivity.

суббота, 8 августа 2015 г.

Пишем игру для Андроид

Часть вторая. Установка оригинальных иконок и заднего фона.

Добавим в наше приложение оригинальные иконки.


Иконки, которые автоматически вставила Андроид Студио, находятся в папке нашего проекта res/mipmap.


 В папке находится 4 файла ic_launcher, в которых располагаются иконки разного размера в пикселях. Например, открыв файл ic_launcher(mdpi), увидим изображение андроида размером 48х48 dpi (Dots per inch (количество точек на дюйм) применяется для указания разрешения изображения). Наша задача заменить иконки на оригинальные. Копируем нашу иконку нужного разрешения и вставляем в эту же папку под тем же именем ic_launcher. (Если вы скачаете мои иконки, то не забудьте в конце убрать цифры, показывающие разрешение иконки).
Студия переспросит вас, нужно перезаписать? Смело отвечаем, Overwrite


 Так проделываем еще с тремя иконками.
Теперь, если запустить наше приложение, мы увидим снова  “Hello world!”, но когда закроем приложение, на экране будет красоваться наша иконка!


 Размещение фона MoonBase

Сначала нашу картинку с фоном нужно разместить в папку, где будут храниться все наши изображения  res/drawable

четверг, 6 августа 2015 г.

  1. Введение

Статья для начинающих программистов, которые решили создать свою игру для Андроид. 


Прежде чем писать код, постарайтесь в одном предложении сказать, о чем ваша игра. Потом представьте себе игроков, которые будут загружать ваше приложение. Это дети, подростки, домохозяйки или геймеры, определитесь. Если вы решили зарабатывать на своей игре, то подумайте, что такого ценного будет в ней, за что люди в здравом уме добровольно будут готовы заплатить J.

Закончим статью реальной простенькой игрушкой, которую никто никогда не купит. 

Наша игра будет называться «Moon Base».
Сценарий:
На лунную базу падают астероиды. Базу нужно спасать специальным щитом, передвигая его пальцем по экрану. Если 5 астероидов упадут на базу, то игра будет проиграна, а если выдержите атаку из 30 астероидов, то вы победитель. Никаких переходов на новый уровень в нашей игре не будет. Всё это вы потом можете с легкостью сделать сами, внимательно почитав материал.

Код был написан мною в среде разработчика Android Studio. Как его скачать и установить, вы найдете во множестве статей в И-нете.  Рекомендую замечательный сайт разработчика А.Климова, который без ума от кошек, но главное – обновляет свои статьи и насколько я понял с Эклипса перешел на Андроид Студио. На его сайте вы найдете многие ответы и по программированию под андроид.

Стоит также упомянуть прекрасную статью Дарьи о создании игры Пинг Понг.

В процессе нашей работы, буду приводить ссылки на другие сайты, где вы можете более углубленно изучить конкретный вопрос. Библией для нас  по-прежнему остается 

Я буду считать, что у вас уже установлена на компьютере среда разработчика Android Studio, и вы создали свое первое приложение Hello World!