Bomberman на Android

Наконец-то закончил разработку игры Bomberman. Решил на отдельную страничку вынести инфу по ней, может кому-то она будет всё-таки интересна (игра или инфа :D )

Так как Гугля удалил приложение, то решил дать возможность скачать игру прям с блога. Качаем Bomberman (Версия 3.6). Или по QR коду:

Можете почитать о том, как я писал Bomberman’а на Android. Исходники игры расшарил на GitHub’е.

Способности

В игре 8 возможных бонусных способностей. Некоторые встречаются чаще других, какие-то теряются в случае смерти…

СпособностьНазваниеОписание
Bomberman BombsЗа каждый полученный бонус количество возможных одновременно установленных бомб возрастает на один. То есть, за 1 полученный бонус, вы можете одновременно установить 2 бомбы. Если ещё один получите, то уже 3. Ну и т.д.
FlamesС каждым бонусом вы увеличиваете диапазон взрыва. После первого подобранного бонусы дальность пламени составляет 2 клетки во все стороны, после второго — 3, ну и т.д.
SpeedСамая редкая способность, встречается всего один раз на 4 уровне. Увеличивает скорость передвижения игрока./td>
WallpassЭта способность дает вам способность проходить сквозь кирпичные стены, точно так же, как некоторые противники делают. В случае смерти способность теряется.
DetonatorБыть может самая ценная способность в игре. Детонатор дает вам способность взорвать установленные бомбы, когда захотите. При детонации взрывается самая старая бомба. Будьте осторожны, способность теряется в случае смерти.
Bomberman BombpassДовольно полезная способность, которая спасёт вас, если вы заблокировали себя установленной бомбой. Если вы поймали себя в ловушку, эта способность позволит вам пройти сквозь бомбу. В случае смерти способность теряется.
FlamepassЕсли вы получили эту способность, то можете не опасаться взрыва бомб — вы получаете иммунитет от него. В совокупности с детонатором делает игру довольно простой. В случае смерти вы потеряете эту способность.
MysteryСпособность предоставляет временную неуязвимость. В это время вы не можете быть убиты ни монстрами, ни взрывами. Однако способность длится конечный промежуток времени, так что будьте осторожны.

Противники

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

ПротивникИмяОчков за убийствоСкоростьНастырность (:Проходит ли сквозь стены
Balloom100МедленноНизкоНет
Oneal200СреднеСреднеНет
Doll400СреднеНизкоНет
Minvo800БыстроСреднеНет
Kondoria1000Оч. медленноВысокоДа
Ovapi2000МедленноСреднеДа
Pass4000БыстроВысокоНет
Pontan8000БыстроВысокоДа

Bomberman на Android: 26 комментариев

  1. Уведомление: libGDX: Sprite и поворот | Suvitruf's Blog

  2. Юрий

    Добрый день! А почему гугл удалил приложение? Очень классно получилось! Протестировал на Nexus S 4G CDMA — работает всё отлично.

      1. Корд

        Эта игра всегда мне нравилась, спасибо автору. Но есть серьёзные недочеты. Так, к примеру, если не поставить игру на паузу, а простоьсвернуть приложение, то после возобновления часть противников оказываются за пределами игрового поля. А при постановке на паузу некоторые противники проходят через тросов слепую ранее бомбу

  3. Люк

    На нексус 7 кнопка установки бомбы находится ближе к центру экрана, а не у правой его границы.

    А если просто название поменять, отрисовать текстурки красивые (hd), и снова зарелизить? Ну или добавить фишечек типа подземелья или типа стрельбы, а то жалко ведь

    1. Suvitruf Автор записи

      Положение можно в настройках поменять)

      Можно попробовать с новыми текстурами зарелизить.

  4. Уведомление: Как я писал Bomberman'а на Android | Suvitruf's Blog

  5. cupuyc

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

    1. Suvitruf Автор записи

      Спрайты частично в сети нашёл, частично в эмуляторе выдирал. Музыку в эмуляторе выдирал.
      В nestopia можно некоторые звуковые каналы отрубать, чтобы выделить конкретный звук)

  6. Jabberwock

    Привет.
    Как думаешь, если отрисовать кастомную графику и продавать под другим названием — Конами не будет наезжать?
    Если игра платная, мог бы этим заняться, я относительно неплохой пиксельщик.

  7. despite

    спасибо!!!загрузил игру..и залип……..как в далеком прошлом. :-)
    успехов и новых идей!

  8. Евгений

    Добрый день! Посмотрел твой код на Github, очень интересовало взаимодействие между игровыми объектами в игровом мире.

    Возникло пару вопросов:

    1. Является ли необходимым передавать в класс игрока объект игрового мира и усложнять метод перемещения?

    Получается, игрок знает ВСЕ об игровом мире, а метод Move делает несколько действий: 1)сохраняет состояние 2)Изменяет состояние 3)Проверяет на коллизии и в случае оных: 4) Возвращает состояние.

    Не лучше ли определить класс игрового мира, как реализующий интерфейс Observer?

    Тогда Player не будет знать много о мире, а метод Move будет проще:

    1) Сохранить состояние 2)Изменить состояние 3)Оповестить об изменении состояния.

    Мир, как наблюдатель и класс, знающий о блоках и игроке посчитает коллизии и в случае оных вызовет команду Undo, которая вернет игрока на сохраненное прошлое место. (Аналог в реальной жизни: если ты идешь в стенку, то что ты остановишься, инициирует стенка, когда ты ударишься в нее лбом :))) )

    Ну и в будущем, наблюдать за движением игрока можно заставить: 1) Игровых НПС и врагов 2) Менеджер звуков, который определить звук движения и т.д.

    Все что я написал — мое ИМХО, но порассуждать на тему архитектуры: где должно происходить обработка взаимодействия между игровыми объектами и другие вопросы, я бы очень хотел :)

    А не с кем :(

    1. Suvitruf Автор записи

      В идеале класс игрового мира должен реализовать интерфейс, в Player передавать ссылку на него. Тогда игрок будет знать только о необходимых методах. Это, как минимум, в целях инкапсуляции лучше)

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *