Доброго времени суток всем, или недоброго. В связи с последними событиями в моей жизни, решил сделать «антимотивационный» пост на тему программирования, а именно – «Почему плохо быть программистом». На данный момент я отработал как во фрилансе так и в различных компаниях специализирующихся на разработке ПО. Я делал по 6-10 приложений для АйОси в день (норматив такой был в одной компании), писал движки для андройд-игрушек, отлавливал баги в C#-прогах и занимался вообще всем чем только можно будучи фрилансером, в итоге я точно могу сказать, что далеко не всегда я был рад выбранной профессии. Почему? Для начала тезисно:
Продолжаем делать игрушку =)
В прошлый раз мы добавили наследование. Теперь создадим коллекцию вражеских объектов. Поехали!
Продолжаем начатое.
В данном посте речь пойдет про наследование. Допустим, что если нам нужен не один круг, а много т.е. прототипы наших будущих монстров-врагов и нашей еды. Значит нужен еще один небольшой рефакторинг.
И снова пост про нашу игрушку, продолжаем начатое.
Основное в нашей игрушке (как несложно догадаться) — это движение, для движения мы должны касаться экрана, следовательно прикосновение экрана нужно как то «отловить». Итак, как это сделать. Для начала создадим интерфейс через который будет работать GameManager:
public interface IViewCanvas {
void drawCircle(MainCircle circle);
}
Таким образом мы разделили данные и логику управления этими самыми данными. Еще один небольшой рефакторинг, поскольку добавился интерфейс для работы GameManager’a — уберем оттуда все лишнее:
Всем доброго времени суток, и мы продолжаем делать игрушку на андройд.
В прошлом посте мы создали наш проект и разобрались с рисованием в Андройде (с помощью только встроенных функций) в итоге на нашем фоне рисовался кружочек. Что касается логики приложения — в ViewCanvas ее пихать «не правильно» поэтому создадим отдельный класс GameManager:
public class GameManager {
public void onDraw(Canvas canvas) {
}
}
Продолжаем. В прошлом посте мы определились с тем, что за аппу мы будем делать — это ИГРА (ну кто бы сомневался xD). И сегодня мы начинаем разработку.
Ну что, поскольку проголосовавших было мало (гады вы все! по гугл-аналитике пост прочитало 500+ человек и всего 4 коммента!) и все выбрали Джаву (чтоб ее), то будем кодить на джаве.
Я уже говорил — учить «хелоу ворлду» не буду, это можно прекрасно и по книжкам пройти, так что сразу будем делать игру, простую по геймплею и самой идее, но не такую простую в плане реализации.
Про игру.
Все максимально просто. На игровом поле мы управляем нашим персонажем (пиксельный человечек), который должен есть фрукты перемещающиеся вокруг него и уворачиваться от монстров (также перемещающихся рядом), с каждым новым фруктом человечек становится больше соответственно уворачиваться от монстров труднее. Цель — съесть все фрукты на поле.
Почему игра?
- Я люблю игры! Мне хватило бы и этой причины, но для вас напишу еще парочку=)
- Игры очень легко монетизировать. Конечно не такую простую поделку (хотя 2048 утверждает обратное), но более менее серьезный продукт зачастую всегда оказывается в плюсе.
- Игры более популярны чем какие-либо целевые программы (соцсети, фото/видео и прочие).
Думаю этих причин хватит, отмечу только, что при разработке игр используется намного больше возможностей и учиться на таком примере гораздо полезнее.
Что нужно.
Установите любую среду разработки под андройд (сам я буду пользоваться Андройд студией, заодно и 2ую версию потестю), вы же можете поставить IntelliJ IDEA. Плюс к этому jdk и android sdk. Все это легко ищется через гугл.
Пожалуй на сегодня хватит, перегружать пост кодом и прочим в этот раз не буду. На следующей неделе — старт разработки.
Продолжаю свой «цикл» постов по программированию, чет в прошлом посте как то вяло комменты идут и все блин за Джаву… Нету чтоли желающих Лисп например изучить, или там Пролог… Ну да ладно, джава так джава, еще неделя осталась в конце концов, а сегодня пост будет опять про обучение, а точнее как ускорить это самое обучение, если ранее вы не умели вообще ничего=) Скажем так, «проапргейдим» инфу из второго поста.
Одним из самых распространенных вопросов на стековерфлоу или тостере является «Выбор языка программирования»:
- «С чего начать?»
- «Java forevor!!!1111»
- «СиШарпники нубы!!!1»
И огромное количество других высказываний с этих холиваров только и делают, что сбивают новичка с выбора своего «первого» языка. Так что в данном посте я затрону именно тему различия языков программирования, с точки зрения востребованности, простоты и пр.