1
0
Fork 0
1/jekyll_site/ru/2023/01/21/volumetric-tetris.md
2023-12-17 07:55:25 +03:00

5.3 KiB
Raw Blame History

title description sections tags scripts styles canonical_url url_translated title_translated date
Объёмный тетрис Общеобразовательная игра в широком смысле этого слова. При изучении языков программирования рекомендуется сначала написать свою версию и потом использовать...
Логическая игра
Экспериментальный интерфейс
javascript
canvas
игра
головоломка
геометрия
матрица
графика
квадрат
куб
3d
трёхмерный
/js/classes-point-cube.js
/js/tetris-figures.js
/js/tetris-model.js
/js/tetris-controller.js
/js/tetris-view.js
/css/pomodoro1.css
/ru/2023/01/21/volumetric-tetris.html /en/2023/01/22/volumetric-tetris.html Volumetric tetris 2023.01.21

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

Описание алгоритма графики: [Вращаем куб в пространстве]({{ '/ru/2023/01/10/spinning-cube-in-space.html' | relative_url }}).

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

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

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

{% include volumetric-tetris-ru.html -%}

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

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

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

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

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