准备工作
安装Pygame库
```bash
pip install pygame
```
游戏的基本思路
贪吃蛇游戏的核心规则是玩家控制一条蛇在游戏区域内移动,蛇通过吃食物来增长身体长度,同时不能撞到墙壁或者自己的身体,否则游戏结束。
代码实现
```python
import pygame
import random
初始化Pygame
pygame.init()
设置游戏窗口相关参数
screen_width = 640
screen_height = 480
screen = pygame.display.set_mode((screen_width, screen_height))
pygame.display.set_caption("Snake Game")
定义蛇和食物的相关属性
snake_block = 20
food_block = 20
snake_pos = [[100, 50], [90, 50], [80, 50]]
snake_speed = 20
颜色定义
WHITE = (255, 255, 255)
GREEN = (0, 255, 0)
RED = (255, 0, 0)
BLACK = (0, 0, 0)
游戏时钟
clock = pygame.time.Clock()
游戏主循环
while True:
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.quit()
sys.exit()
获取键盘输入
keys = pygame.key.get_pressed()
if keys[pygame.K_UP]:
snake_pos.insert(0, [snake_pos, snake_pos - snake_speed])
if keys[pygame.K_DOWN]:
snake_pos.insert(0, [snake_pos, snake_pos + snake_speed])
if keys[pygame.K_LEFT]:
snake_pos.insert(0, [snake_pos - snake_speed, snake_pos])
if keys[pygame.K_RIGHT]:
snake_pos.insert(0, [snake_pos + snake_speed, snake_pos])
碰撞检测
if snake_pos in snake_pos[1:]:
pygame.quit()
sys.exit()
生成食物
food_pos = [random.randrange(1, (screen_width//food_block)) * food_block, random.randrange(1, (screen_height//food_block)) * food_block]
清屏
screen.fill(BLACK)
绘制蛇
for pos in snake_pos:
pygame.draw.rect(screen, GREEN, pygame.Rect(pos, pos, snake_block, snake_block))
绘制食物
pygame.draw.rect(screen, RED, pygame.Rect(food_pos, food_pos, food_block, food_block))
更新显示
pygame.display.flip()
控制帧率
clock.tick(10)
```
代码解释
初始化Pygame
```python
pygame.init()
```
设置游戏窗口
```python
screen_width = 640
screen_height = 480
screen = pygame.display.set_mode((screen_width, screen_height))
pygame.display.set_caption("Snake Game")
```
定义蛇和食物的相关属性
```python
snake_block = 20
food_block = 20
snake_pos = [[100, 50], [90, 50], [80, 50]]
snake_speed = 20
```