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..19f59a3 --- /dev/null +++ b/snake.py @@ -0,0 +1,77 @@ +import pygame +import random +from pygame import locals + +# 初始化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 +app_x = 300 +app_y = 300 +position = [(180, 90), (180, 120), (210, 120), (x, y)] + +setheading = "right" +snake_head = right + +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 app_x==x and app_y==y: + app_x=random.randint(0,22) + app_y=random.randint(0,16) + app_x=app_x*30-30 + app_y=app_y*30-30 + 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, (app_x, app_y)) + # 刷新画面 + 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