Разработка программ и игр это трудоемкий процесс состоящий из нескольких этапов. Для создания игры змейка, необходимо:
- продумать логику игры;
- создать окно приложения и игровое поле;
- объявить вспомогательные переменные (размеры поля, длина змейки, цвет змейки, счет и др);
- создание объектов сегмента и змеи;
- создание дополнительных функций.
Первым делом необходимо разработать каркас для нашего приложения главное окно. С помощью переменных задаем параметры ширины и высоты окна, а также размер одного элемента змейки. Параметром title() задаем название окна, resizable() запрещаем изменение размера окна, задаем положение нашего окна поверх всех окон wm_attributes(). Теперь создадим игровое поле. Его мы реализуем с помощью Canvas. Создадим холст нужного нам размера.
Добавим в нашу программу вспомогательные переменные. Создадим функцию сегмента змейки. Визуально сегмент змейки будет представлен обычным прямоугольником, созданным при помощи метода create_rectangle класса Canvas модуля tkinter.
Добавляем в программу обработку событий нажатия клавиш. Создадим переменные, которые учитывают направление движения змейки snake_x_nav и snake_y_nav значения по умолчанию 0 змейка не движется. Функция snake_move() отвечает за движение змейки при нажатии кнопки изменяя параметры snake_x_nav и snake_y_nav. Список snake_list хранит элементы змейки, а переменная snake_size хранит размер змейки. Функция snake_paint_item рисует по направлению движения змейки сегмент змейки, если количество сегментов змейки превышает его размер то удаляем первый элемент змейки, т.е. удаляем один блок с хвоста змейки функцией chack_delete_item.
Добавляем цикл While для обеспечения беспрерывности движения.
Мы получили змейку, которая беспрерывно движется в выбранном направлении. Теперь нам необходимо сделать проверку, что змейка не выходит за пределы игрового поля. Также необходимо написать функцию создания еды (яблок), функцию поедания еды и увеличения змейки. Переменной score подсчитываем счет, переменной snake_speed задаем скорость движения. Функция create_block создает блоки еды в игровом поле, занося в список block_list.
Совершенству нет предела. Наша игра хороша, но ее можно улучшить. Вместе с съедобными боками можно создавать и ядовитые, которые уменьшают длину змеи. В зависимости от счета можно увеличивать скорость движения змеи и многое др.
С уважением, Карян Армен.
Занимаюсь профессиональной разработкой прикладных программ на Python.
email SoftSAR@yandex.ru
Telegram @SoftSar_am