计软 实习 项目 2 贪吃蛇

一、贪吃蛇
1. 蛇的定义
(1)head_x,head_y:蛇头部的坐标可以用两个变量来定义,一个储存蛇头在地图的第几行,另一个储存蛇头在地图的第几列。

(2)coordinate[]:整条蛇包括蛇头的坐标可以放在一个列表里,列表里的每一个元素为字符串类型,方便用于查找判定蛇头是否与自身发生碰撞。

(3)direction:蛇头部的当前方向。

2. 食物的定义
(1)food_coordinate:用于储存当前食物的坐标。
(2)food_type:食物种类。

3. 初始化窗口
(1)__init__方法: 设置窗口大小,窗口图标,以及固定窗口大小。

4. 初始化游戏
 init()方法:
(1)随机蛇头位置、蛇头方向、食物位置食物种类;
(2)初始化蛇的速度、分数;
(3)初始化暂停标志、结束标志;
(4)初始化游戏音乐;

5. 欢迎界面
(1)初始化欢迎界面音乐;
(2)根据游戏标志选择进入主游戏界面;

6. 开始游戏
(1)snakeMove()方法:蛇的自动移动。
(2)check()方法:判断蛇是否吃到食物、是否吃到自己、是否撞墙。
(3)update()方法:重新绘制,刷新地图。

7. 子方法
(1)snakeMove()方法:
  根据当前蛇的方位,更新蛇头坐标。

(2)food()方法:
  随机产生食物坐标,且坐标不与整条蛇的任意一个结点坐标重合。

(3)bodyMove()方法:
  更新蛇身和蛇头的坐标位置。

(4)check()方法:
  ①判断蛇是否吃到食物,如果吃到,更新速度、分数。
  ②判断蛇是否触碰到边界,如果碰到就执行结束游戏方法。
  ③判断蛇头是否触碰到自身,如果碰到就执行结束游戏方法。

(5)gameOver
  ①更新最高分。
  ②根据游戏结束标记判断游戏失败或游戏胜利。
  ③画出胜利标志,播放对应音效。

8. 事件
(1) keyPressEvent()方法:
  获取键盘按下的按键,通过区分不同按键来做出对应操作。

  ①↑↓←→ 键:改变龙头方向
  ②Space 键:开始游戏 / 暂停游戏 / 重新开始游戏
  ③Esc 键:退出游戏

(2)paintEvent()方法:
  每次执行update()方法的时候会调用paintEvent方法,通过在类内定义的各种标志来绘制不同的图形。

  ①创建一个画笔。
  ②根据欢迎界面标志判断是否要画欢迎界面,如果不是则画主游戏界面。
  ③画主界面的背景图、信息栏图、分割线、分数、最高分、提示信息等。
  ④蛇龙头、蛇身、蛇尾巴。
  ⑤根据食物种类标记,画不同的食物。
  ⑥画信息栏,包括:分数、最高分、按键规则、游戏规则。
  ⑦根据游戏暂停标记画游戏暂停提示。
  ⑧根据游戏结束标记绘制游戏胜利 / 游戏失败,显示得分以及提示信息。
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值