ГЛАВНАЯ RU typewriter

older-tomato

Объёмный тетрис

Логическая игра • Экспериментальный интерфейс 21.01.2023

Общеобразовательная игра в широком смысле этого слова. В процессе изучения языков программирования рекомендуется сначала написать свою версию и потом использовать её для демонстрации и тестирования другого программного обеспечения или оборудования. Трёхмерный интерфейс написан на JavaScript Canvas — логика самой игры двухмерная. Дополнительные внешние библиотеки не используются.

Описание алгоритма графики: Вращаем куб в пространстве.

Экспериментальный интерфейс #

По умолчанию выключен — можно просто играть в тетрис. В дополнение к двухмерной версии добавлены два объёмных варианта — параллельная проекция и перспективная проекция — параметры для каждого из них можно изменять. Для перспективной проекции: можно изменять положение экрана наблюдателя и удалённость источника проекции. Наблюдатель смотрит в центр изображения, а центр проекции удалён на расстояние, сопоставимое с размерами игрового поля. Для параллельной проекции: можно изменять вертикальное положение. Для обеих проекций: можно поворачивать игровое поле по всем трём осям. Центральная точка для поворотов — это центральная нижняя дальняя точка поля. Для всех вариантов изображения: размер кубика — 32, размер квадратика — 30 и отступ — 2. Начало координат расположено в верхней левой точке, оси направлены: X вправо, Y вниз и Z вдаль.

Тестирование: начинаем игру, набираем некоторое количество фигур на поле, ставим игру на паузу, а затем переключаем варианты объёмного изображения, поворачиваем поле с фигурами, изменяем прозрачность, двигаем центральную точку и так далее.

Управление: кнопки на клавиатуре со стрелками — вправо, влево, вверх, вниз и кнопка пауза pause.

Уровень: , следующий уровень: , счёт:

Холст для отображения результатов вычислений

Холст для отображения результатов вычислений

Прозрачность фигур:
0%
Поворот игрового поля:
-1°
Вертикальная корректировка:
64
Центр на экране наблюдателя:
150
300
64
Удалённость центра проекции:
640

Игровой процесс #

Игровые очки начисляются за полностью собранные строки из элементов фигур. Количество набранных очков зависит от количества собранных строк, по 10 очков за каждую строку, если в строке 10 кубиков, и кратно увеличивается, если одновременно собрано: 2 строки — в 3 раза, 3 строки — в 5 раз, 4 строки — в 10 раз.

Особенность игры: собранные строки сначала моргают и после этого исчезают — при этом игровой процесс на это время не останавливается — текущая фигура продолжает падать.

Уровень увеличивается при сборе 10 заполненных строк, то есть 100 очков, если в строке 10 кубиков. На каждом новом уровне скорость фигур увеличивается и на 21 уровне достигает максимума. В режиме улитки увеличение скорости становится медленнее в 5 раз, и скорость фигур достигает максимума на 104 уровне. Текущая скорость отображается над игровым полем в виде индикатора meter.


© Головин Г.Г., Код с комментариями, 2023