Python贪吃蛇小游戏代码示例

想要学习如何使用Python编写一个简单的贪吃蛇游戏吗?这篇文章为你提供了一个完整的代码示例,并附带详细的注释,帮助你理解每个步骤的逻辑。

代码pythonimport pygameimport random

初始化游戏pygame.init()

游戏区域的宽度和高度width = 640height = 480

定义颜色black = (0, 0, 0)white = (255, 255, 255)red = (255, 0, 0)green = (0, 255, 0)

创建游戏窗口window = pygame.display.set_mode((width, height))pygame.display.set_caption('贪吃蛇')

控制游戏循环变量game_over = False

蛇头的位置和初始速度x = width // 2y = height // 2snake_size = 20x_change = 0y_change = 0

食物的位置food_x = round(random.randrange(0, width - snake_size) / 20) * 20food_y = round(random.randrange(0, height - snake_size) / 20) * 20

记录蛇的长度snake_length = 1snake_body = []snake_speed = 10

游戏时钟clock = pygame.time.Clock()

显示得分font_style = pygame.font.SysFont(None, 30)

def show_score(score): score_text = font_style.render('得分:' + str(score), True, white) window.blit(score_text, [10, 10])

def draw_snake(snake_body): for i in snake_body: pygame.draw.rect(window, green, [i[0], i[1], snake_size, snake_size])

def game_loop(): game_over = False game_end = False

# 蛇头的位置和初始速度    x = width // 2    y = height // 2    snake_size = 20    x_change = 0    y_change = 0

# 记录蛇的长度    snake_length = 1    snake_body = []

# 食物的位置    food_x = round(random.randrange(0, width - snake_size) / 20) * 20    food_y = round(random.randrange(0, height - snake_size) / 20) * 20

while not game_over:

    while game_end == True:            window.fill(black)            font_style = pygame.font.SysFont(None, 30)            end_score = font_style.render('得分:' + str(snake_length - 1), True, white)            window.blit(end_score, [width // 2.5, height // 2])            pygame.display.update()

        for event in pygame.event.get():                if event.type == pygame.KEYDOWN:                    if event.key == pygame.K_q:                        game_over = True                        game_end = False                    if event.key == pygame.K_c:                        game_loop()

    for event in pygame.event.get():            if event.type == pygame.QUIT:                game_over = True            if event.type == pygame.KEYDOWN:                if event.key == pygame.K_LEFT:                    x_change = -snake_size                    y_change = 0                elif event.key == pygame.K_RIGHT:                    x_change = snake_size                    y_change = 0                elif event.key == pygame.K_UP:                    y_change = -snake_size                    x_change = 0                elif event.key == pygame.K_DOWN:                    y_change = snake_size                    x_change = 0

    x += x_change        y += y_change        if x >= width or x < 0 or y >= height or y < 0:            game_end = True

    window.fill(black)        pygame.draw.rect(window, red, [food_x, food_y, snake_size, snake_size])        snake_head = []        snake_head.append(x)        snake_head.append(y)        snake_body.append(snake_head)        if len(snake_body) > snake_length:            del snake_body[0]

    for i in snake_body[:-1]:            if i == snake_head:                game_end = True

    draw_snake(snake_body)        show_score(snake_length - 1)

    pygame.display.update()

    if x == food_x and y == food_y:            food_x = round(random.randrange(0, width - snake_size) / 20) * 20            food_y = round(random.randrange(0, height - snake_size) / 20) * 20            snake_length += 1

    clock.tick(snake_speed)

pygame.quit()

game_loop()

代码说明

  • 首先,我们导入必要的库:pygame 用于游戏开发,random 用于生成随机数。- 然后,我们初始化游戏窗口,设置标题,定义颜色等。- 接下来,我们定义了蛇的初始位置、速度、长度等变量,以及食物的位置。- show_score 函数用于显示当前得分。- draw_snake 函数用于绘制蛇的身体。- game_loop 函数是游戏的核心循环,它处理用户输入、更新游戏状态、绘制游戏画面等。

如何运行代码

  1. 确保你已经安装了 Python 和 pygame 库。2. 将代码复制到一个 Python 文件中,例如 snake_game.py。3. 在命令行中运行 python snake_game.py

希望这个代码示例能帮助你入门 Python 游戏开发!

Python贪吃蛇小游戏代码示例

原文地址: https://www.cveoy.top/t/topic/boVE 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录