Игра гонки на Python – это простой и захватывающий способ изучить базовые принципы программирования на языке Python. В этой игре два игрока должны проехать по дороге, преодолевая препятствия и достигая финиша первым. В этой статье мы рассмотрим пример игры гонки на Python и посмотрим, как можно использовать ее для изучения программирования.
Создание игры гонки на Python
Для начала нам понадобится некоторый код для нашей игры. Начнем с импорта библиотеки «pygame», которая позволит нам создать игровое поле и добавить в него объекты.
#python
import pygame
# Инициализация игры
pygame.init()
# Создание игрового поля
screen = pygame.display.set_mode((800, 600))
# Загрузка изображений для игровых объектов
player_image = pygame.image.load('player.png')
# Запуск игрового цикла
while True:
# Обработка ввода игрока
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.quit()
quit()
# Обновление игровой логики
# Отрисовка игровых объектов
screen.blit(player_image, (100, 100))
# Обновление экрана
pygame.display.update()
Использование библиотек Python в игре гонки
Теперь, когда мы импортировали библиотеку «pygame» и создали игровое поле, мы можем добавить игровые объекты и логику игры. Для начала добавим двух игроков и препятствия на дороге. Для этого мы добавим два класса – «Player» и «Obstacle». Класс «Player» будет отвечать за логику игрока, а класс «Obstacle» будет отвечать за логику препятствия.
#python
# Класс игрока
class Player:
def __init__(self, x, y):
self.x = x
self.y = y
self.speed = 5
def update(self):
self.x += self.speed
# Класс препятствия
class Obstacle:
def __init__(self, x, y):
self.x = x
self.y = y
self.width = 50
self.height = 50
Добавление игроков и препятствий
Теперь мы можем добавить игроков и препятствия в игру. Для этого мы добавим два списка – «players» и «obstacles». Каждый элемент этих списков будет содержать экземпляр класса «Player» или «Obstacle» соответственно.
#python
# Список игроков
players = [
Player(100, 100),
Player(200, 200)
]
# Список препятствий
obstacles = [
Obstacle(300, 300),
Obstacle(400, 400)
]
Логика игры гонки на Python
Теперь мы можем добавить логику игры. Для этого мы добавим два цикла в игровой цикл. Один цикл будет обновлять положение игроков, а другой – проверять, не столкнулись ли игроки с препятствиями.
#python
# Обновление игровой логики
for player in players:
player.update()
for player in players:
for obstacle in obstacles:
if player.x == obstacle.x and player.y == obstacle.y:
print('Game Over!')
Отрисовка игры на Python
Наконец, мы можем добавить отрисовку игровых объектов, как в игре Марио на Python. Для этого мы добавим два цикла в блок «Отрисовка игровых объектов». Один цикл будет отрисовывать игроков, а другой – препятствия.
#python
# Отрисовка игровых объектов
for player in players:
screen.blit(player_image, (player.x, player.y))
for obstacle in obstacles:
pygame.draw.rect(screen, (255, 0, 0), (obstacle.x, obstacle.y, obstacle.width, obstacle.height))
Теперь мы можем запустить игру и посмотреть, как она работает. В этой игре два игрока должны проехать по дороге, преодолевая препятствия и достигая финиша первым. Это простой и захватывающий способ изучить базовые принципы программирования на языке Python.
Полный код игры гонки на Python
import pygame
# инициализация pygame
pygame.init()
# размеры экрана
display_width = 800
display_height = 600
# цвета
black = (0, 0, 0)
white = (255, 255, 255)
# создание игрового экрана
gameDisplay = pygame.display.set_mode((display_width, display_height))
pygame.display.set_caption('Гонки')
# изображение автомобиля
carImg = pygame.image.load('racecar.png')
# позиция автомобиля
def car(x, y):
gameDisplay.blit(carImg, (x, y))
# основная программа
def game_loop():
x = (display_width * 0.45)
y = (display_height * 0.8)
x_change = 0
gameExit = False
while not gameExit:
for event in pygame.event.get():
if event.type == pygame.QUIT:
gameExit = True
if event.type == pygame.KEYDOWN:
if event.key == pygame.K_LEFT:
x_change = -5
if event.key == pygame.K_RIGHT:
x_change = 5
if event.type == pygame.KEYUP:
if event.key == pygame.K_LEFT or event.key == pygame.K_RIGHT:
x_change = 0
x += x_change
gameDisplay.fill(white)
car(x, y)
if x > display_width - carImg.get_width() or x < 0:
gameExit = True
pygame.display.update()
game_loop()
pygame.quit()
quit()
ok