• 大小: 4KB
    文件类型: .py
    金币: 1
    下载: 0 次
    发布日期: 2021-05-19
  • 语言: Python
  • 标签: pygame  贪吃蛇  python  

资源简介

贪吃蛇经典小游戏pygame实现,非常简单简陋,可以作为pygame的练手

资源截图

代码片段和文件信息

import numpy sys random pygame
from pygame.locals import *

HEIGHT = 400
WIDTH = 400
S_F_SIZE = 10           # 食物和蛇一格的大小
SCREEN_SIZE = (HEIGHT WIDTH) # 屏幕尺寸
MOVE_PS = 15           # 每秒刷新次数,模拟fps
DIR = 0                 # 蛇移动的方向,0123分别为上右下左
FOOD = [0 0]           # 食物位置
SNAKE = []              # 蛇
# 屏幕设置,第一个参数分辨率,第二个参数模式(不需要全屏则置0若需要全屏则为FULLSCREEN),第三个参数色深
SCREEN = pygame.display.set_mode(SCREEN_SIZE 0 32)
SCORE = 0

def run():
    global DIR
    global SCREEN
    global SCORE
    for event in pygame.event.get():
        # 退出
        if event.type == pygame.QUIT:
            pygame.quit()
            sys.exit(0)
        # 按键
        elif event.type == pygame.KEYDOWN:
            if (event.key == K_ESCAPE):  # 终止程序
                pygame.quit()
                sys.exit(0)
            # 上下左右改变方向不能去反方向
            elif (event.key == K_LEFT and DIR != 1):
                DIR = 3
            elif (event.key == K_RIGHT and DIR != 3):
                DIR = 1
            elif (event.key == K_UP and DIR != 2):
                DIR = 0
            elif (event.key == K_DOWN and DIR != 0):
                DIR = 2

    # 蛇头接下来的位置
    if (DIR == 0):
        next_head = [SNAKE[0][0] SNAKE[0][1]-1]
    elif (DIR == 1):
        next_head = [SNAKE[0][0]+1 SNAKE[0][1]]
    elif (DIR == 2):
        next_head = [SNAKE[0][0] SNAKE[0][1]+1]
    elif (DIR == 3):
        next_head = [SNAKE[0][0]-1 SNAKE[0][1]]
    # 判断蛇是否会死
    if (next_head[0] >= WIDTH/S_F_SIZE or next_head[0] < 0 or next_head[1] > HEIGHT/S_F_SIZE or next_head[1] < 0) or ((next_head in SNAKE) and (next_head != SNAKE[-1])):
        return 5

    # 更新蛇的位置和形态
    SNAKE.insert(

评论

共有 条评论