diff --git a/apple.png b/apple.png new file mode 100644 index 0000000..e58cb8f Binary files /dev/null and b/apple.png differ diff --git a/bg.png b/bg.png new file mode 100644 index 0000000..a085237 Binary files /dev/null and b/bg.png differ diff --git a/body.png b/body.png new file mode 100644 index 0000000..a254609 Binary files /dev/null and b/body.png differ diff --git a/down.png b/down.png new file mode 100644 index 0000000..41d1525 Binary files /dev/null and b/down.png differ diff --git a/left.png b/left.png new file mode 100644 index 0000000..365dffe Binary files /dev/null and b/left.png differ diff --git a/neuropol.ttf b/neuropol.ttf new file mode 100644 index 0000000..ddefb40 Binary files /dev/null and b/neuropol.ttf differ diff --git a/right.png b/right.png new file mode 100644 index 0000000..e77639a Binary files /dev/null and b/right.png differ diff --git a/snake.py b/snake.py new file mode 100644 index 0000000..f7bf103 --- /dev/null +++ b/snake.py @@ -0,0 +1,90 @@ +import pygame +from pygame import locals +import random +# 初始化pygame,为使用硬件做准备 +pygame.init() +num1=0 +num2=0 +# 创建一个窗口 +screen = pygame.display.set_mode((660, 480)) +FPSCLOCK = pygame.time.Clock() # pygame时钟,控制游戏速度(帧数) +score=0 +# 背景 +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') # 头 朝下 +my_font=pygame.font.Font('neuropol.ttf',20) + +x, y = 240, 120 +position = [(180, 90), (180, 120), (210, 120), (x, y)] + +setheading = "right" +snake_head = right + +apple_x=360 +apple_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": + setheading = 'right' + snake_head = right + if event.key == locals.K_LEFT and setheading != "right": + setheading = 'left' + snake_head = left + if event.key == locals.K_UP and setheading != "down": + setheading = 'up' + snake_head = up + if event.key == locals.K_DOWN and setheading != "up": + setheading = 'down' + snake_head = down + + # 设置贪吃蛇的头部坐标 + if setheading == "right": + x += 30 + elif setheading == "left": + x -= 30 + elif setheading == "up": + y -= 30 + else: + y += 30 + + position.append((x, y)) + if x<0 or x>630 or y<0 or y>450: + exit() + + if x == apple_x and y == apple_y: + num1=random.randint(1,22) + num2=random.randint(1,16) + apple_x = random.randint(0,660) + apple_y = random.randint(0,480) + apple_x=num1*30-30 + apple_y=num2*30-30 + score=score+10 + else: + 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(food, (apple_x, apple_y)) + info = "score"+str(score) + text = my_font.render(info,True,(0,0,0)) + screen.blit(text,(540,10)) + + # 刷新画面 + pygame.display.update() + FPSCLOCK.tick(3) \ No newline at end of file diff --git a/up.png b/up.png new file mode 100644 index 0000000..44f2e28 Binary files /dev/null and b/up.png differ