Pygame游戏实战三:贪吃蛇

介绍模块

本游戏使用的是由Pycharm中的pygame模块来实现的,也可以在python中运行。通过Pygame制作一个贪吃蛇,看看这个是你小时候玩的游戏吗?

最小开发框架

详情请看此文章:
Pygame游戏模块介绍二:最小开发框架代码_pygame最小开发框架_牧子川的博客-CSDN博客

Pygame和sys模块

import pygame # 制作游戏时要使用的模块
import sys # python的标准库,对内部各功能模块进行初始化创建,系统模块

random模块

需要在屏幕上随机生成食物的位置,通过随机一个位置来表示食物的位置

from random import randint

详情请看此文章:Pygame游戏模块介绍一:random模块简介_random 范围_牧子川的博客-CSDN博客

相关功能  

窗口尺寸改变  

调节游戏屏幕的大小

WIDTH, HEIGHT = 800, 600
screen = pygame.display.set_mode((WIDTH, HEIGHT))

食物创建

# 初始化食物的位置
food_x, food_y = random.randrange(1, (WIDTH // 10)) * 10, random.randrange(1, (HEIGHT // 10)) * 10

蛇的创建

snake_x, snake_y = WIDTH // 2, HEIGHT // 2
​
# 随机选择蛇的初始移动方向
directions = ['UP', 'DOWN', 'LEFT', 'RIGHT']
snake_direction = random.choice(directions)
​
# 初始化蛇的身体
snake_body = [(snake_x, snake_y)]

键盘事件

# 监听键盘事件
  if event.type == pygame.KEYDOWN:
      if event.key == pygame.K_UP and snake_direction != 'DOWN':
          snake_direction = 'UP'
      if event.key == pygame.K_DOWN and snake_direction != 'UP':
          snake_direction = 'DOWN'
      if event.key == pygame.K_LEFT and snake_direction != 'RIGHT':
          snake_direction = 'LEFT'
      if event.key == pygame.K_RIGHT and snake_direction != 'LEFT':
          snake_direction = 'RIGHT'

界面内容显示   

当蛇吃到食物时,分数增加并且增加长度

分数增加

    # 显示得分
    score_text = font.render("得分: " + str(score), True, WHITE)
    screen.blit(score_text, (10, 10))

蛇吃到食物变长

    # 蛇的身体增长
    snake_head = (snake_x, snake_y)
    snake_body.insert(0, snake_head)
    if snake_x == food_x and snake_y == food_y:
        snake_length += 1
        score += 1  # 更新得分
        food_x, food_y = random.randrange(1, (WIDTH // 10)) * 10, random.randrange(1, (HEIGHT // 10)) * 10
    else:
        snake_body.pop()

图片界面  

扩展可添加功能

1.对贪吃蛇移动速度设置

2.长按同一方向加速移动

3.同时出现多个食物

4.添加背景音乐

5.更改界面控件

源码获取

GitHub 贪吃蛇

 欢迎关注我的公众号:@AI算法与电子竞赛    

硬性的标准其实限制不了无限可能的我们,所以啊!少年们加油吧!

猜你喜欢

转载自blog.csdn.net/qq_48764574/article/details/133716049