Space Invaders

Рекомендованный уровеньУровень
10+
Если вы думаете, что самая успешная игра в мире — какой-нибудь многомиллионный блокбастер последних лет, вы ошибаетесь! Это старая добрая (не такая уж и добрая, откровенно говоря) Space Invaders («Космические захватчики»), принесшая разработчикам около 10 млрд. долларов прибыли со скидкой на инфляцию. Она оказала огромное влияние не только на индустрию видеоигр, но также на массовую культуру: вы наверняка узнаете очертания пришельцев и противостоящего им бравого космического корабля на фоне звёздного неба, даже если никогда не играли в Space Invaders. А появилась игра об одиночке, который отражает орды агрессивно настроенных инопланетных «крабов» ещё в 1978 году на аркадных автоматах. После этого она выдержала массу переизданий на самых разных платформах, спасла от гибели приставку Atari 2600, а самые новые на сегодняшний день коммерческие версии вышли под Android и iOS. Теперь ваша очередь! Напишите собственную версию Space invaders прямо здесь, на JavaRush под чутким руководством разработчиков курса. Ваша игра будет похожа на «классику»: космический сеттинг с симпатичной графикой а-ля 8 бит, стрельба по агрессивным захватчикам, рядовым и «генералам», которые прячутся за их спинами, возможность уворачиваться от вражеских выстрелов, перемещаясь вправо и влево. Игроку предстоит сражаться до тех пор, пока он не убьет всех рядовых и босса. Или пока его не сразит инопланетная пуля. Мы не ищем лёгких путей, поэтому наша версия суровей оригинала: у героя будет всего одна жизнь.
Комментарии (51)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий вы должны авторизоваться
Виталий
26 уровень, Санкт-Петербург
8 апреля, 18:59
"под чутким руководством разработчиков курса" (>﹏<)
Marina
24 уровень, Ростов-на-Дону
20 марта, 15:37
Чтобы решить 16/34, я создала матрицу PLAYER по виду матрицы ENEMY. Предложенная матрица красивее- корабль крупнее , цвет отличный, а главное - направлен в сторону интервентов! Продолжаю решать на сайте, пока без особых проблем. Спасибо за отклик.
Marina
24 уровень, Ростов-на-Дону
14 марта, 06:28
Напоминаю разработчикам игры, что баг в задании 16/34 остался-не добавляется в код матрица ShapeMatrix.Player, хотя в условии сказано о ее добавлении к коду и идут ссылки на нее при вычислении координат.
Зепп Бранниган Admin в JavaRushModerator
15 марта, 14:14
Спасибо за Ваше обращение. Напомнили.
Divertitto Android Developer Master
16 марта, 09:38
Такая ошибка может возникать после сброса большой задачи через WebIde. Есть 2 решение: 1. Рекомендуемое - использовать Intellij IDEA. 2. Почистить local storage браузера. На всякий случай прикреплю код матрицы PLAYER
public static final int[][] PLAYER = new int[][]{
         {0, 0, 6, 0, 0},
         {0, 6, 6, 6, 0},
         {6, 6, 6, 6, 6}
 };
Maксим
17 уровень, Пермь
22 февраля, 09:23
а можно как-то добавить звуковые эффекты?
Divertitto Android Developer Master
16 марта, 09:32
В текущей версии движка Web - нет, в JavaFx пользователь может сам добавлять
Mikhail Levitin
2 уровень, Москва
9 декабря 2020, 18:20
№16 - баг - матрицу ShapeMatrix.PLAYER не добавляют при переходе на задание
Mikhail Levitin
2 уровень, Москва
9 декабря 2020, 17:43
Добрый день, можете объяснить механику команды (как выполняется) : gameobject.draw(this); например: bullet.draw(this); star.draw(this); и.т.п.
Alex
23 уровень, Москва
28 ноября 2020, 17:57
не очень корректно описан алгоритм работы метода nextFrame() класса Ship...
Alukard Vampire hunter в The HellsingExpert
26 ноября 2020, 22:46
379
Борис Юхименко Full Stack Developer в PKS Software GmbH
18 октября 2020, 21:01
  уважаемые коллеги, как написать Ship.nextFrame() метод, чтобы валидатор не конил? public void nextFrame(){ if(frameIndex < frames.size() || loopAnimation) { if (frameIndex < frames.size()) { super.setMatrix(frames.get(frameIndex)); frameIndex++; } if (frameIndex >= frames.size() && loopAnimation) frameIndex = 0; } } Валидатор ругает два раза : Метод nextFrame() класса Ship не должен ничего делать, если значение frameIndex больше либо равно количеству фреймов в списке frames и loopAnimation равен false. и Метод nextFrame() класса Ship должен устанавливать полю frameIndex значение 0, если значение frameIndex больше либо равно количеству фреймов в списке frames и loopAnimation равен true. Программа работает как часы. Босс даже с двумя фреймами ручками махает. Заранее благодарен.
Alex
23 уровень, Москва
28 ноября 2020, 18:20
не совсем корректно описан алгоритм работы этого метода в условии... посмотрите реализацию "правильного решения", оно не соответствует условиям, потому и валидатор ругается...
Ivan
1 уровень, Ternopil
12 июля 2020, 11:19
вк