Python实现贪吃蛇游戏
贪吃蛇是一款经典的小游戏,它的目标是控制一条蛇在屏幕上移动,吃到屏幕上出现的食物,每吃到一个食物,蛇的长度就会增加,如果蛇碰到自己的身体或者屏幕边缘,游戏就结束了,在这篇文章中,我们将使用Python编程语言来实现这个游戏。
我们需要安装pygame库,pygame是一个用于开发视频游戏的Python模块,它包含了一些用于处理图形、声音和用户输入的函数,我们可以使用pip来安装pygame库,命令如下:
pip install pygame
接下来,我们来编写贪吃蛇游戏的代码,我们需要导入pygame库,并初始化游戏窗口:
import pygame import sys 初始化pygame pygame.init() 设置窗口大小 screen_size = (640, 480) screen = pygame.display.set_mode(screen_size) 设置窗口标题 pygame.display.set_caption("贪吃蛇")
我们需要定义一些常量,如颜色、食物的大小和位置等:
定义颜色 WHITE = (255, 255, 255) GREEN = (0, 255, 0) RED = (255, 0, 0) 定义食物的大小和位置 FOOD_SIZE = 20 food_pos = [320, 240]
接下来,我们需要定义蛇的数据结构,蛇由一系列的坐标组成,每个坐标代表蛇身体的一个部分,我们还需要一个变量来记录蛇的移动方向:
定义蛇的数据结构 snake_body = [[100, 100], [80, 100], [60, 100]] snake_dir = "RIGHT"
我们需要定义一个函数来绘制蛇和食物:
def draw(): # 清空屏幕 screen.fill(WHITE) # 绘制蛇和食物 for pos in snake_body: pygame.draw.rect(screen, GREEN, pygame.Rect(pos[0], pos[1], FOOD_SIZE, FOOD_SIZE)) pygame.draw.rect(screen, RED, pygame.Rect(food_pos[0], food_pos[1], FOOD_SIZE, FOOD_SIZE))
接下来,我们需要定义一个函数来处理用户的输入:
def handle_input(): global snake_dir for event in pygame.event.get(): if event.type == pygame.QUIT: pygame.quit() sys.exit() elif event.type == pygame.KEYDOWN: if event.key == pygame.K_UP and snake_dir != "DOWN": snake_dir = "UP" elif event.key == pygame.K_DOWN and snake_dir != "UP": snake_dir = "DOWN" elif event.key == pygame.K_LEFT and snake_dir != "RIGHT": snake_dir = "LEFT" elif event.key == pygame.K_RIGHT and snake_dir != "LEFT": snake_dir = "RIGHT"
接下来,我们需要定义一个函数来更新蛇的位置:
def update(): global snake_body, food_pos, snake_dir new_head = [snake_body[0][0] + (FOOD_SIZE if snake_dir == "RIGHT" else -FOOD_SIZE), snake_body[0][1] + (FOOD_SIZE if snake_dir == "DOWN" else -FOOD_SIZE)] snake_body.insert(0, new_head) if new_head == food_pos: food_pos = [random.randrange(1, screen_size[0] // FOOD_SIZE) * FOOD_SIZE, random.randrange(1, screen_size[1] // FOOD_SIZE) * FOOD_SIZE] else: snake_body.pop()
我们需要定义一个主循环来控制游戏的逻辑:
while True: # 处理输入和事件 handle_input() update() # 绘制游戏画面和分数等元素(如果有的话)
还没有评论,来说两句吧...