43

Как я движущиеся кубики делал

примерно год назад, когда я взялся учить java и программирование под android, попалась мне такая вот игрушка в гуглплей -

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


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


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


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


вот такой симпатишный деревянный дизайн нашел, например:

и вот такой не очень симпатичный, имхо:

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


все выше конечно имхо, ну и исходя из этого стал ваять свою игрушку. вот тогда я и почувствовал всю силу ооп. описать имеющиеся объекты, распределить по классам и прописать их взаимодействия оказалось не так сложно, как может показаться начинающему программисту. использованы конструкции джава: Thread, Enum, HashMap, Deque, InputStream/OutputStream. ну эт так уточнение для специалистов.

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


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

приложение есть в гуглплей. мне не очень понятно что тут на пикабу с рекламой, потому ссылку не привожу. кому интересно можете написать на почту ssk29@yandex.ru - дам ссылку.


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


занимайтесь тем, что вам интересно) всем пис)

2
Автор поста оценил этот комментарий

Да ладно тебе - много дизайна там и не нужно.
Даже эта пятиминутка из пеинта уже выглядит лучше.

Иллюстрация к комментарию
раскрыть ветку (1)
2
Автор поста оценил этот комментарий

кхм, ну я не считаю что она лучше выглядит) по кр мере непонятно как это на игровом поле будет с остальными элементами

там судя по профилю ты 3д графикой занимаешься, по этому по своей теме едешь. нарисуй симпатишные квадраты сделаю с ними версию)

показать ответы
5
Автор поста оценил этот комментарий

У тебя с дизайном не лучше.
Хоть бы игровое поле отрисовал да спрайты по-интереснее =\

А что касается разбавки - можно сделать какую-нибудь расшифровку. Мол, в течении 10 уровней прокладываешь маршрут через специальную клеточку и получаешь кучку пикселей. В конце эти кучки собираются в картинку. Или что-нибудь в этом роде.

раскрыть ветку (1)
2
Автор поста оценил этот комментарий

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

показать ответы
0
Автор поста оценил этот комментарий
Установлен CM13 (на базе marshmallow). Может почтами обменяемся, чтобы комментарии не засырать?
раскрыть ветку (1)
1
Автор поста оценил этот комментарий

а вот и пришел отзыв что на 5 версии андроид тоже не работае. снимаю с публикации буду разбираться

2
Автор поста оценил этот комментарий
Но обосрать конкурентов успел
раскрыть ветку (1)
1
Автор поста оценил этот комментарий

приведи цитату где я обсирал конкурентов в плане дизайна

показать ответы
0
Автор поста оценил этот комментарий
Привет, чувак ты это по какому-то туториалу делал? Есть ссылка для друга?
раскрыть ветку (1)
0
Автор поста оценил этот комментарий

ага, туториал назыввается книжка по ооп и джава и сайт по основам андроид

0
Автор поста оценил этот комментарий

Прошивка работает нормально, хоть и не stable, так почему бы и не поставить. В других приложениях багов нет.

раскрыть ветку (1)
0
Автор поста оценил этот комментарий

починил, можно играть)

0
Автор поста оценил этот комментарий
Установлен CM13 (на базе marshmallow). Может почтами обменяемся, чтобы комментарии не засырать?
раскрыть ветку (1)
0
Автор поста оценил этот комментарий

"Команда Cyanogen продолжает активно работать над новой прошивкой CyanogenMod 13 на базе Android 6.0 Marshmallow"

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

показать ответы
1
Автор поста оценил этот комментарий

Друг, хотел потестить твою игру, но не судьба.
>> "поиграв в разные варианты вычислил слабые места многих приложений. в основном они были сделаны тяп-ляп лишь бы закинуть в гуглмаркет. у кого-то кубы уезжали за экран, у кого-то никак не отображалось, когда куб наезжал на клетку-дом или клетку-менятель_движения, у кого-то игровая площадь наглядно было поделена на квадраты вот как на примере выше, где-то кубы при тапе не постепенно переезжали куда надо, а просто исчезали и появлялись на новом месте. в общем в основном все это было некрасиво кошмарно и играть в такое не хотелось."
Поставил на свой телефон и вижу, что в твоем приложении действительно нет этих проблем. И кубиков нет и всего остального тоже нет...
Nexus 4, CM13.

Иллюстрация к комментарию
Иллюстрация к комментарию
Иллюстрация к комментарию
Иллюстрация к комментарию
раскрыть ветку (1)
0
Автор поста оценил этот комментарий

версия андроид не ниже 4-ой на этом телефоне?

показать ответы
0
Автор поста оценил этот комментарий
Может ещё какие-то данные нужны?
раскрыть ветку (1)
0
Автор поста оценил этот комментарий

пока не знаю какие нужны.. дело в том что все компоненты отрисовываются динамически и почему половина отрисовалось половина нет пока нет версий


с Asus Nexus 7 2013 тоже норм работает


с хайскрин тоже норм

1
Автор поста оценил этот комментарий

Друг, хотел потестить твою игру, но не судьба.
>> "поиграв в разные варианты вычислил слабые места многих приложений. в основном они были сделаны тяп-ляп лишь бы закинуть в гуглмаркет. у кого-то кубы уезжали за экран, у кого-то никак не отображалось, когда куб наезжал на клетку-дом или клетку-менятель_движения, у кого-то игровая площадь наглядно было поделена на квадраты вот как на примере выше, где-то кубы при тапе не постепенно переезжали куда надо, а просто исчезали и появлялись на новом месте. в общем в основном все это было некрасиво кошмарно и играть в такое не хотелось."
Поставил на свой телефон и вижу, что в твоем приложении действительно нет этих проблем. И кубиков нет и всего остального тоже нет...
Nexus 4, CM13.

Иллюстрация к комментарию
Иллюстрация к комментарию
Иллюстрация к комментарию
Иллюстрация к комментарию
раскрыть ветку (1)
0
Автор поста оценил этот комментарий

ого 0_о будем разбираться. на леново работает норм

показать ответы
1
Автор поста оценил этот комментарий
Дружище, дай хотя бы название, лень на почту писать. Лига лени негодует(
раскрыть ветку (1)