Как сделать змейку на питоне pygame

Обновлено: 05.07.2024

Для многих Python - это язык для написания веб проектов, машинного обучения или для анализа данных. На самом деле он более функционален и в этой статье мы вам это докажем.

Для реализации игр на Питон мы можем выбрать одну из нескольких библиотек. Можно работать с: Kivy, Tkinter, PyQt или же с любой другой библиотекой, что обеспечивает построение графического интерфейса через Python. Таких библиотек много, но мы возьмем библиотеку PyGame , которая даже своим названием говорит о её предназначении.

PyGame появился в 2000 году. С тех пор на его основе было сделано много интересных проектов . К сожалению, PyGame не универсален и разработка на нём ведется лишь под Андроид устройства.

Настройка проекта

Перед использованием PyGame его нужно установить через терминал. Прописываем команду:

Для создания базового окна игры, необходимо лишь импортировать библиотеку, инициализировать главный объект, указать размеры, а также название окна и создать основной цикл, что должен вызываться постоянно и тем самым проект будет запущен и работать все время.

Сюда же дописываем отслеживание действий пользователя. Если он закроет окно, то мы будем останавливать программу.

Создание платформера

Для создания платформера потребуется написать куда больше строк кода. Мы прикрепляем весь код проекта ниже. В коде есть комментарии для лучшего понимания:

Также для игры вам потребуются картинки игрока и платформы. Вы можете их скачать ниже.




(фото на задний фон)

Видео на эту тему

Также вы можете просмотреть детальное видео по разработке 2D платформера на Python + PyGame:


Дополнительный курс

На нашем сайте также есть углубленный курс по изучению языка Питон . В ходе огромной программы вы изучите не только язык Питон, но также научитесь создавать веб сайты за счёт веб технологий и фреймворка Джанго. За курс вы изучите массу нового и к концу программы будете уметь работать с языком Питон, создавать на нём полноценные ПК приложения на основе библиотеки Kivy, а также создавать веб сайты на основе библиотеки Джанго.

Больше интересных новостей

10 классных проектов GitHub на языке Python

10 классных проектов GitHub на языке Python

Что нужно знать хорошему Frontend-разработчику

Что нужно знать хорошему Frontend-разработчику

5 команд терминала, которые должны знать все

5 команд терминала, которые должны знать все

Python Turtle Graphics является удивительным! Он может быть использован для изучения и преподавания программирования Python и информатики от элементарных до продвинутого уровня. Есть [пост в моем блоге] [1] о Черепаха графика демонстрация, которые приходят с Холостой (Среда в разработке, которая судет с Python) – проверьте их, чтобы получить представление о некоторых из веселых вещей, которые вы можете сделать!

Вы можете играть в версию [классической игры Snake On reft.it здесь.] [2]

Нажмите на окно черепахи, чтобы включить элемент управления клавиатурой с помощью клавиш со стрелками.

Игра Python Snake Game объяснила

Змеиное представительство

Мы представляем нашу змею как список паре координат:

Snake = [[0, 0], [20, 0], [40, 0]]

Мы могли бы использовать Sn Заменить NT-сегмент:

Как движется змея?

Есть несколько способов подходить к программированию Классическая игра змеи в Python (или другие языки для этого). Основная задача – это то, как заставить змею двигаться.

Вот два способа концептуализации, что в основном тот же эффект:

Это шаги для второй версии:

NB для этой демонстрации, рассмотрим крайний список списка, чтобы быть хвост и самый правый, чтобы быть голова Отказ

  • Создайте новый элемент списка для новой задачи головки:

Увеличить х координата new_head дарить [60, 0] Отказ

Добавьте новую голову в змею:

Snake = [[0, 0], [20, 0], [40, 0], [60, 0]] сейчас.

Змея = [S1, S2, S3, H]

  • Наконец, удалите крайний элемент ( S1 или [0, 0] ), используя Snake.pop (0) Отказ

Та да Змея продвинулась вперед одна позиция!

Перемещение змеи с Python Turtle Graphics

Основное движение змеи может быть реализовано в простой программе, как показано здесь:

Для информации об использовании супер-удобных Штамп () Функция графики Python Turtle, проверьте [Мое видео на YouTube] [3]

Python Classic Snake Game Listing

Перечисление нашей игры змеи ниже. В зависимости от вашего уровня опыта вы можете точно понять, как он работает или, может быть, просто некоторые из них. Это все хорошо.

Какой бы ни был ваш уровень, вы должны экспериментировать с кодом, играть с ним. Например, вы можете изменить несколько цветов или скорость змеи или элементы управления и т. Д.

Для более опытных программистов, почему бы не улучшить основную идею, добавив счет и другие функции?

Создание игры на Python Tkinter

В этой части изучения Tkinter мы создадим клон игры Nibbles (змейка). Nibbles – это первоначальная версия классической змейки. Впервые ее создали в конце 70х годов. Позже она была перенесена на ПК. В этой игре игрок управляет змейкой. Цель игры – съесть как можно больше яблок. После каждого съеденного яблока тело змеи увеличивается. Во время движения змейка должна уклоняться от стен и собственного тела.

Содержание курса

Содержание статьи

Этапы разработки игры на Tkinter

Для начало, мы создаем Canvas виджет. Объектами в игре являются изображения. Мы используем методы canvas для создания объектов изображения. Также, мы используем методы canvas для обнаружения объектов на холсте при помощи тегов, и для обнаружения столкновений с другими объектами.

В первую очередь, мы расшифруем некоторые переменные, использующиеся в нашей игре:

  • BOARD_WIDTH и BOARD_HEIGHT обозначают размер игрового поля.
  • DELAY – скорость игры;
  • DOT_SIZE — размер яблока и соединения змейки;
  • MAX_RAND_POS – создание случайной точки для яблока.

Метод iniGame() инициализирует переменные, загружает изображения игры и запускает функцию таймера.

Метод createObject() создает объекты на холсте, а locateApple() устанавливает яблоко на случайную точку на холсте.

Мы назначаем клавиши клавиатуры при помощи метода onKeyPressed(). Для управления замеей в игре используются стрелки на клавиатуре.

В этих строчках показана загрузка наших изображений. Это три изображения для нашей игры:

  • голова (head.jpg);
  • соединение змеи (dot.jpg);
  • яблоко (apple.jpg).

Есть вопросы по Python?

На нашем форуме вы можете задать любой вопрос и получить ответ от всего нашего сообщества!

Telegram Чат & Канал

Вступите в наш дружный чат по Python и начните общение с единомышленниками! Станьте частью большого сообщества!

Паблик VK

Одно из самых больших сообществ по Python в социальной сети ВК. Видео уроки и книги для вас!


С помощью метода createObject() мы создаем игровые объекты на холсте. Это canvas объекты. У них есть стартовые x и y координаты.

Параметр image позволяет изображениям появиться на холсте. Параметр anchor установлен на NW (Север и Запад), что означает ориентир на верхнюю левую точку холста. И этот шаг очень важен, если мы хотим отображать изображения около границ корневого окна tkinter.

Создание игр на Python

Попробуйте удалить anchor и посмотрите, что произойдет. Параметр tag используется для идентификации объектов на холсте.

Один тег может использоваться для нескольких объектов на холсте.

Метод checkAppleCollision() позволяет нам узнать, съела ли змея яблоко или нет. Если да, мы добавляем одно соединение змейке и выполняем метод locateApple() для создания нового яблока на нашей игровой карте.

Создаем игру с Pygame и Python. Часть 7

Продолжаем покорять космические просторы с Python и Pygame.В прошлой статье мы придали кораблю возможность управления с помощью клавиш. В сегодняшней статье мы добавим нашему космическому кораблю возможность ускоряться. И согласно механики игры Asteroids корабль будет двигаться только вперед.

В игре, нажатие клавиши UP-(вверх), будет увеличивать скорость космического корабля. Когда вы отпустите клавишу, космический корабль должен сохранить свою текущую скорость, но больше не должен ускоряться. И, чтобы замедлить его, вам придется повернуть космический корабль и снова нажать вверх.

Этот процесс может показаться немного сложным, поэтому, прежде чем продолжить, дадим краткое резюме:

направление(direction)-это вектор, описывающий, куда направлен космический корабль.

скорость(velocity)-это вектор, описывающий, куда движется космический корабль в каждом кадре.

УСКОРЕНИЕ(ACCELERATION)-это постоянное число, описывающее, насколько быстро космический корабль может ускориться каждый кадр.

Можно рассчитать изменение скорости, умножив вектор направления(direction) на значение УСКОРЕНИЯ(ACCELERATION) и добавив результат к текущей скорости. Это происходит только тогда, когда двигатель включен, то есть когда игрок нажимает вверх - UP. Новое положение космического корабля вычисляется путем добавления текущей скорости к текущему положению космического корабля. Это происходит каждый кадр, независимо от состояния двигателя.

Зная это, добавим значение ACCELERATION к классу космического корабля:


class Spaceship(GameObject):
MANEUVERABILITY = 3
ACCELERATION = 0.25

def accelerate(self):
self.velocity += self.direction * self.ACCELERATION


def _handle_input(self):
for event in pygame.event.get():
if event.type == pygame.QUIT or (
event.type == pygame.KEYDOWN and event.key == pygame.K_ESCAPE
):
quit()
.
.
.

if is_key_pressed[pygame.K_RIGHT]:
self.spaceship.rotate(clockwise=True)
elif is_key_pressed[pygame.K_LEFT]:
self.spaceship.rotate(clockwise=False)
if is_key_pressed[pygame.K_UP]:
self.spaceship.accelerate()

Запустим игру. Развернем корабль в нужном направлении и включим двигатель:


Если Вы не хотите пропустить новые материалы на сайте,
то Вы можете подписаться на обновления: Подписаться на обновления

Если у Вас остались какие-либо вопросы, либо у Вас есть желание высказаться по поводу этой статьи, то Вы можете оставить свой комментарий внизу страницы.

Порекомендуйте эту статью друзьям:

Если Вам понравился сайт, то разместите ссылку на него (у себя на сайте, на форуме, в контакте):

Она выглядит вот так:

Комментарии ( 0 ):

Читайте также: