基于pygame的python小游戏
时间: 2023-09-21 18:03:16 浏览: 96
好的,我可以给你介绍一个基于Pygame的小游戏——贪吃蛇。
首先,你需要安装Pygame库。可以通过pip命令来安装:
```
pip install pygame
```
接下来,我们开始编写代码:
```python
import pygame
import random
# 初始化pygame
pygame.init()
# 设置游戏窗口大小和标题
width, height = 640, 480
screen = pygame.display.set_mode((width, height))
pygame.display.set_caption('贪吃蛇')
# 定义颜色
black = (0, 0, 0)
white = (255, 255, 255)
red = (255, 0, 0)
# 定义蛇的初始位置、大小和速度
snake_x, snake_y = width / 2, height / 2
snake_size = 10
snake_speed = 5
# 定义蛇的移动方向
snake_direction = 'right'
# 定义食物的初始位置和大小
food_x, food_y = random.randint(0, width - snake_size), random.randint(0, height - snake_size)
food_size = 10
# 定义计分
score = 0
font = pygame.font.SysFont(None, 25)
# 游戏主循环
while True:
# 处理事件
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.quit()
quit()
# 处理键盘事件
if event.type == pygame.KEYDOWN:
if event.key == pygame.K_LEFT:
snake_direction = 'left'
elif event.key == pygame.K_RIGHT:
snake_direction = 'right'
elif event.key == pygame.K_UP:
snake_direction = 'up'
elif event.key == pygame.K_DOWN:
snake_direction = 'down'
# 移动蛇
if snake_direction == 'right':
snake_x += snake_speed
elif snake_direction == 'left':
snake_x -= snake_speed
elif snake_direction == 'up':
snake_y -= snake_speed
elif snake_direction == 'down':
snake_y += snake_speed
# 判断蛇是否撞墙
if snake_x < 0 or snake_x > width - snake_size or snake_y < 0 or snake_y > height - snake_size:
pygame.quit()
quit()
# 判断蛇是否吃到食物
if snake_x <= food_x < snake_x + snake_size and snake_y <= food_y < snake_y + snake_size:
food_x, food_y = random.randint(0, width - snake_size), random.randint(0, height - snake_size)
score += 1
# 绘制游戏画面
screen.fill(white)
pygame.draw.rect(screen, red, [food_x, food_y, food_size, food_size])
pygame.draw.rect(screen, black, [snake_x, snake_y, snake_size, snake_size])
# 绘制计分
text = font.render('Score: ' + str(score), True, black)
screen.blit(text, [0, 0])
# 更新游戏画面
pygame.display.update()
```
这个贪吃蛇游戏比较简单,主要包括以下几个部分:
1. 初始化pygame,设置游戏窗口大小和标题,定义颜色等。
2. 定义蛇的初始位置、大小和速度,以及食物的初始位置和大小。
3. 在游戏主循环里处理事件,包括处理键盘事件、移动蛇、判断蛇是否撞墙或吃到食物等。
4. 绘制游戏画面,包括绘制食物和蛇,以及绘制计分。
5. 更新游戏画面。
你可以根据自己的需求和兴趣,修改代码并添加更多的游戏元素,例如增加障碍物、增加多个食物、增加多条蛇等。
阅读全文