import pygame
from pygame import locals

# 初始化pygame,为使用硬件做准备
pygame.init()

# 创建一个窗口
screen = pygame.display.set_mode((660, 480))

# 背景
background = pygame.image.load('bg.png')
right = pygame.image.load('right.png')
left = pygame.image.load('left.png')
up = pygame.image.load('up.png')
down = pygame.image.load('down.png')
food = pygame.image.load('apple.png')
body = pygame.image.load('body.png')
CLOCK = pygame.time.Clock()
x = 240
y = 120
heading = 'right'
snakeheading = right
zuobiao = [(180,90),(180,120),(210,120),(x,y)]
while True:
    for event in pygame.event.get():
        if event.type == locals.QUIT:
            # 接收到退出事件后退出程序
            exit()
        if event.type == locals.KEYDOWN:    
            if event.key == locals.K_DOWN and heading != 'up':
                heading = 'down'
                snakeheading = down
            if event.key == locals.K_RIGHT and heading != 'left':
                heading = 'right'
                snakeheading = right
            if event.key == locals.K_LEFT and heading != 'right':
                heading = 'left'
                snakeheading = left
            if event.key == locals.K_UP and heading != 'down':
                heading = 'up'
                snakeheading = up
    if heading == 'down':
        y +=30
    elif heading == 'up':
        y -=30
    elif heading == 'right':
        x +=30
    else :
        x -=30
    zuobiao.append((x,y))
    zuobiao.pop(0)
    # 背景图画上去
    screen.blit(background, (0, 0))
    # 将贪吃蛇画上去
    screen.blit(snakeheading, (x, y))
    # 将贪吃蛇的身体画上去
    for i in range(len(zuobiao)-1):
        screen.blit(body,zuobiao[i])

    # 将果实画上去
    screen.blit(food, (360, 300))
    # 刷新画面
    pygame.display.update()
    CLOCK.tick(3)