项目名称:贪吃蛇
小组成员:邵瀚庆、徐宏璇
码云地址:https://gitee.com/nothingbigger/snake/tree/master
————————————————————————————————————————————
阶段一:熟悉Python,pygame,能够熟练操作Python
阶段二:
功能分析:
1、玩家只能在屏幕上固定的区域内玩游戏
2、蛇的身体由一个个小方块来构成,蛇头由两个小方块构成;
3、食物由一个方块构成,食物要随机出现在游戏区域
4、玩家可用键盘上的↑、↓、←、→四个方向键来控制蛇的运行方向;
5、当蛇在移动过程中,吃到了食物,蛇身增长一节,当前食物消失,并且在另一处游戏区内随机出现一个食物;
6、蛇每增长一节,计分板分数相应增加;
7、得分实时显示在屏幕顶部
8、蛇在移动的过程中,蛇头不能撞上蛇身、不能撞上窗口边框,若这两种情形发生任意一种,则认为蛇已死,在游戏区域内显示“GAME OVER”信息,并在顶部显示所得分数,游戏结束;
项目开发:
1、首先需要调用pygame模块
2、设置一个640 × 480的游戏窗口
1 width,height=640,480 2 screen=pygame.display.set_mode((width,height))
3、绘制蛇身、食物、并设置控制蛇方向的按键
1 snake = [pygame.Rect(10, 10, 10, 10), pygame.Rect(10, 20, 10, 10)]
if food is None: food = pygame.Rect(randrange(48) * 10, randrange(48) * 10, 10, 10) pygame.draw.rect(screen, (0, 0, 0), food)
1 if event.type == pygame.KEYDOWN: 2 if event.key == pygame.K_UP and dir != down: 3 dir = up 4 if event.key == pygame.K_DOWN and dir != up: 5 dir = down 6 if event.key == pygame.K_LEFT and dir != right: 7 dir = left 8 if event.key == pygame.K_RIGHT and dir != left: 9 dir = right
4、添加时钟用于计时、设置计分板用以计算并显示当前玩家分数
5、判断蛇是否吃到食物、是否碰到自己身体和触碰墙壁、最后判断是否死亡
1 if node in snake or node.left > width or node.top > height or node.left < 0 or node.top < 0: 2 dead = True 3 continue 4 5 if node == food: 6 food = None 7 score += 10 8 else: 9 del snake[0]
6、吃到食物、蛇身加长游戏继续;碰壁以及碰到身体、游戏结束
时间: 2024-11-10 15:08:50