Categories: Programming

Programming | Part#15

Вот значит мы и подошли к завершению нашей тренировочной игры с кругами, через две недели начинаем превращать ее в «игру с пиксельным человечеком, монстрами и прочим»=)

А пока что заканчиваем:


Categories: Programming

Programming | Part#14

Было несколько сообщений на тему, что не получается сделать границы для кругов и они все равно вылетают за экран. Показываю как это делается:

public void moveOnStep() {
    x += dx;
    y += dy;
    checkBounds();

}

private void checkBounds() {
    if (x>GameManager.getWidht() || x<0) {
        dx = -dx;
    }
    if (y>GameManager.getHeight()||y<0){
        dy=-dy;
    }


Categories: Programming

Programming | Part#13

Надеюсь, что цветные круги у всех получились. Продолжаем начатое


Categories: My Life, Programming

Почему плохо быть программистом

Доброго времени суток всем, или недоброго. В связи с последними событиями в моей жизни, решил сделать «антимотивационный» пост на тему программирования, а именно – «Почему плохо быть программистом». На данный момент я отработал как во фрилансе так и в различных компаниях специализирующихся на разработке ПО. Я делал по 6-10 приложений для АйОси в день (норматив такой был в одной компании), писал движки для андройд-игрушек, отлавливал баги в C#-прогах и занимался вообще всем чем только можно будучи фрилансером, в итоге я точно могу сказать, что далеко не всегда я был рад выбранной профессии. Почему? Для начала тезисно:


Categories: Programming

Programming | Part#12

Продолжаем делать игрушку =)


Categories: Programming

Programming | Part#11

В прошлый раз мы добавили наследование. Теперь создадим коллекцию вражеских объектов. Поехали!


Categories: Programming

Programming | Part#10

Продолжаем начатое.

В данном посте речь пойдет про наследование. Допустим, что если нам нужен не один круг, а много т.е. прототипы наших будущих монстров-врагов и нашей еды. Значит нужен еще один небольшой рефакторинг.


Categories: Programming

Programming | Part#9

И снова пост про нашу игрушку, продолжаем начатое.

Основное в нашей игрушке (как несложно догадаться) — это движение, для движения мы должны касаться экрана, следовательно прикосновение экрана нужно как то «отловить». Итак, как это сделать. Для начала создадим интерфейс через который будет работать GameManager:

public interface IViewCanvas {
    void drawCircle(MainCircle circle);
}

Таким образом мы разделили данные и логику управления этими самыми данными. Еще один небольшой рефакторинг, поскольку добавился интерфейс для работы GameManager’a — уберем оттуда все лишнее:


Categories: Programming

Programming | Part#7

Продолжаем. В прошлом посте мы определились с тем, что за аппу мы будем делать — это ИГРА (ну кто бы сомневался xD). И сегодня мы начинаем разработку.


Categories: Programming

Programming | Part#6

Ну что, поскольку проголосовавших было мало (гады вы все! по гугл-аналитике пост прочитало 500+ человек и всего 4 коммента!) и все выбрали Джаву (чтоб ее), то будем кодить на джаве.

Я уже говорил — учить «хелоу ворлду» не буду, это можно прекрасно и по книжкам пройти, так что сразу будем делать игру, простую по геймплею и самой идее, но не такую простую в плане реализации.

Про игру.

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

Почему игра?

  1. Я люблю игры! Мне хватило бы и этой причины, но для вас напишу еще парочку=)
  2. Игры очень легко монетизировать. Конечно не такую простую поделку (хотя 2048 утверждает обратное), но более менее серьезный продукт зачастую всегда оказывается в плюсе.
  3. Игры более популярны чем какие-либо целевые программы (соцсети, фото/видео и прочие).

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

Что нужно.

Установите любую среду разработки под андройд (сам я буду пользоваться Андройд студией, заодно и 2ую версию потестю), вы же можете поставить IntelliJ IDEA. Плюс к этому jdk и android sdk. Все это легко ищется через гугл.

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