diff --git a/snake.py b/snake.py index ba70b5e..d9852e4 100644 --- a/snake.py +++ b/snake.py @@ -1,35 +1,29 @@ import pygame from pygame import locals import random -# 初始化pygame,为使用硬件做准备 pygame.init() - -# 创建一个窗口 screen = pygame.display.set_mode((1320,960)) -FPSCLOCK = pygame.time.Clock() # pygame时钟,控制游戏速度(帧数) - -# 背景 +FPSCLOCK = pygame.time.Clock() 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') # 头 朝下 +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') z = pygame.font.Font('neuropol.ttf',18) - x, y = 240, 120 position = [(180, 90), (180, 120), (210, 120), (x, y)] - setheading = "right" snake_head = right a = 360 b = 300 +c = 210 +d = 90 score = 0 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": @@ -44,8 +38,6 @@ while True: if event.key == locals.K_DOWN and setheading != "up": setheading = 'down' snake_head = down - - # 设置贪吃蛇的头部坐标 if setheading == "right": x += 30 elif setheading == "left": @@ -61,26 +53,28 @@ while True: a *= 30 b *= 30 score += 10 + elif x == c and y == d: + c = random.randint(0,43) + d = random.randint(0,31) + c *= 30 + d *= 30 + score += 10 else: position.pop(0) if x < 0 or x > 1290 or y < 0 or y > 930: print("Your score is:" + str(score)) exit() - # 将背景图画上去 screen.blit(background, (0, 0)) screen.blit(background, (661, 0)) screen.blit(background, (0, 481)) screen.blit(background, (661, 481)) - # 将贪吃蛇的头画上去 screen.blit(snake_head, position[-1]) - # 将贪吃蛇的身体画上去 for i in range(len(position)-1): screen.blit(body, position[i]) - # 将果实画上去 screen.blit(food, (a,b)) + screen.blit(food, (c,d)) info = "Score:" + str(score) text = z.render(info,True,(0,0,0)) screen.blit(text,(540,10)) - # 刷新画面 pygame.display.update() - FPSCLOCK.tick(score/10+3) \ No newline at end of file + FPSCLOCK.tick(score/20+10) \ No newline at end of file