diff --git a/snake.py b/snake.py index 537316e..721d7e4 100644 --- a/snake.py +++ b/snake.py @@ -1,68 +1,64 @@ import pygame from pygame import locals - -# 初始化pygame,为使用硬件做准备 +from random import * +# 初始化pygame,为使用pygame做准备 pygame.init() # 创建一个窗口 -screen = pygame.display.set_mode((660, 480)) -FPSCLOCK = pygame.time.Clock() # pygame时钟,控制游戏速度(帧数) - -# 背景 -background = pygame.image.load('bg.png') -right = pygame.image.load('right.png') # 头 朝右 -food = pygame.image.load('apple.png') # 食物 苹果 -body = pygame.image.load('body.png') # 身体 -left = pygame.image.load('left.png') # 头 朝左 -up = pygame.image.load('up.png') # 头 朝上 -down = pygame.image.load('down.png') # 头 朝下 - -x, y = 240, 120 -position = [(180, 90), (180, 120), (210, 120), (x, y)] - +screen = pygame.display.set_mode((660,480)) +bg = 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") +FPS = pygame.time.Clock() +x,y = 240,120 +position = [(180,90),(180,120),(210,120),(x,y)] setheading = "right" -snake_head = right - +snake_heading = right +a_x = 360 +a_y = 300 while True: for event in pygame.event.get(): if event.type == locals.QUIT: - # 接收到退出事件后退出程序 exit() - if event.type == locals.KEYDOWN: - if event.key == locals.K_RIGHT and setheading != "left": + elif event.type == locals.KEYDOWN: + if event.key == locals.K_RIGHT and setheading != 'left': setheading = 'right' - snake_head = right - if event.key == locals.K_LEFT and setheading != "right": + snake_heading = right + elif event.key == locals.K_LEFT and setheading != 'right': setheading = 'left' - snake_head = left - if event.key == locals.K_UP and setheading != "down": + snake_heading = left + elif event.key == locals.K_UP and setheading != 'down': setheading = 'up' - snake_head = up - if event.key == locals.K_DOWN and setheading != "up": + snake_heading = up + else: setheading = 'down' - snake_head = down - - # 设置贪吃蛇的头部坐标 - if setheading == "right": + snake_heading = down + + if setheading == 'right': x += 30 - elif setheading == "left": + elif setheading == 'left': x -= 30 - elif setheading == "up": + elif setheading == 'up': y -= 30 else: y += 30 - position.append((x, y)) + + position.append((x,y)) + last = position[0] position.pop(0) - # 将背景图画上去 - screen.blit(background, (0, 0)) - # 将贪吃蛇的头画上去 - screen.blit(snake_head, position[-1]) - # 将贪吃蛇的身体画上去 - for i in range(len(position)-1): - screen.blit(body, position[i]) + screen.blit(bg,(0,0)) - # 将果实画上去 - screen.blit(food, (360, 300)) - # 刷新画面 + screen.blit(snake_heading,position[-1]) + for i in range(len(position)-1): + screen.blit(body,position[i]) + + if x == a_x and y == a_y: + a_x = randint(0,21)*30 + a_y = randint(0,15)*30 + screen.blit(food,(a_x,a_y)) pygame.display.update() - FPSCLOCK.tick(3) \ No newline at end of file + FPS.tick(3) \ No newline at end of file