Тетрис-колодец, на этот раз по-настоящему круглый
Привет, я @Mblkolo и я делаю тетрис колодцем https://vk.com/well_tetris
Те, кто помнят мои обещания под предыдущим постом, могут спросить, а где версия под андроид, @Mblkolo? А я им и отвечу:
Для того чтобы сделать версию тетриса колодцем, которую можно будет портировать под мобилки, мне понадобились: компьютер, интернет, комментарии пикабушников и 3 недели времени.
За то, что колодец стал круглым, я хочу поблагодарить @Neck9, который оставил весьма содержательный отзыв, а позже согласился сделать макет дизайна.
Макет я оценил и решил делать круглый колодец, но в точности макету следовать не стал, ибо слишком тонкие кирпичи и не тот угол наклона. Потому я ударился в эксперименты, но в отличии от нормальных людей, я не стал рисовать эскизы, а стал сразу править код. Но я правил не просто так, а преследовал свои корыстные цели: хотел избавиться от ощущения, что колодец не вращается в начале игры, и добавить какую-нибудь подсветку места, куда упадёт фигура. Со вращением решил всё очень просто: добавил на дно колодца 3 риски. А вот с тем, чтобы понимать, куда упадёт фигура, возникли проблемы. Было много вариантов, в каждый я играл, но ничего не нравилось. Вот пара сохранившихся версий:
И всё было плохо, пока меня не посетила гениальная мысль: "а что если сделать тонкие блоки, как в концепте @Neck9"? И я сделал, и понял, что это то, что я искал, игра стала вызывать правильные ощущения:
Правда стало подтомаживать: появилось чувство, что фигура двигается с задержкой, как-будто в шутер играешь на слабом железе. Я чуть было не расстроился, но вспомнил, что до сих пор рисую стенки между соседними блоками. Да, рисую стенку и сразу поверх неё рисую стенки следующего блока. Небольшая оптимизация с проверкой на существования соседа — и игра перестала подтупливать. Всегда бы всё было так просто.
А сделать колодец круглым было делом техники: сжал матрицей трансформации холст по игрек и переписал весь рендер с нуля, прямо поверх старого.
В конец концов получилась вот такая симпатяжка ^__^ :
Сейчас меня мучает только один вопрос:
P.S. Добавил логирование ошибок на Sentry, избавился от матриц из Tree.js, исправил баг с загрузкой топ100, который нашёл @Deemax
P.P.S. играть тут https://vk.com/well_tetris