В этом уроке от
онлайн-школы Pixel мы решили рассказать о том, как добавить ускорение падения фигуры, чтобы это еще больше напоминало оригинальный «Тетрис». Чтобы клавишу можно было зажать, требуется запустить get_pressed(). Если нажатая кнопка совпадает с pygame. K_DOWN (кнопка, назначенная на движение вниз), то число обновлений должно быть равно 31.
Как ребенок может сделать игру тетрис на Python?Если сейчас проверить функцию и нажать стрелку вниз, фигура «улетит» за нижнюю границу консоли. Чтобы этого не происходило, обозначим границы экрана по оси Y. После настройки фигура остановится на нижней границе. Проверить это легко: запускаем консоль и дожидаемся падения фигуры.
После остановки движения важно, чтобы вверху консоли появилась новая фигура. Для этого необходимо закрасить клетки сетки (где осталась деталь) белым цветом. То есть вы должны задать значение заливки и сделать его равным нулю, а цвет поменять с серого на белый. После чего необходимо настроить новый выбор случайного элемента.
Чтобы закрасить клетки, необходимо определиться с индексами клеток. Следует записать две переменные X и Y - и уже в этих переменных менять заданные параметры. После чего прописываем условие для выбора случайной детали. Проверьте написанный код через консоль — детали должны падать сверху вниз, как в «Тетрисе».
В итоге становится заметна одна проблема — во время игры выпадают исключительно семь фигур, а новые не появляются. Это стало итогом того, как именно происходит сохранение информации при использовании языка программирования «Питон». Когда менялись данные о местоположении, менялся и список. Чтобы исключить проблему, важно сделать копию фигур из списка и изменить данные местоположения копии, а не оригинальной детали. Именно поэтому потребуются возможности библиотеки copy, о которой мы писали в самом начале.
После этого снова потребуется запуск консоли для проверки. Если все выполнено верно, новые фигуры появляются в количестве более 7 штук. Но возникает новая проблема — они не ставятся друг на друга!
Так как
в онлайн-школе Pixel преподают программирование для детей, то мы знаем способ, с помощью которого любой ребенок сможет справиться с этой ситуацией. Добавляем еще одно условие нижней грани — если нижняя ячейка имеет цвет, то мы останавливаем движение. В результате фигура остается на месте.
На этом этапе основные игровые механики уже реализованы, но требуется добавить некоторые функции и особенности, которые есть в оригинальной игре. Самые важные моменты, которые должны быть реализованы — поворот фигур и «сжигание» заполненного ряда.