上次更新已经是9月20号了 上个月因为种种原因 不能上网。故迟迟没有更新,大家在公众号上的留言今天已经看了,晚点回一一回复。

接着上次的文章,今天实现 蛇吃东西的逻辑~

我们还是分几步行动

1.能判断出蛇吃到东西了,并且让这块食物消失

2.创建一个新的食物

3.蛇变长

我们先解决第一步,能判断出蛇吃到东西了,并且让这块食物消失 判断蛇吃到东西,无非就是蛇头碰到吃的东西,消失的话,就是在蛇头碰到东西以后,把数组m_arrGameRange蛇头所在的行 列置0 然后重绘

这样 代码就简单了

itHead = m_listSnake.begin();
		if (m_arrGameRange[itHead->nCol][itHead->nRow] == 2)
		{
			m_arrGameRange[itHead->nCol][itHead->nRow] = 0;
		}

这样即可处理蛇吃到东西的逻辑,我们把代码加OnTimer的Invalidate();前面试试~

我们运行起来,发现已经可以吃到东西了,但是不会产生新的食物~ 还记得我们上一篇封装的void CreateFood();函数吗,我们只要在 吃到食物以后调用它既可


至于第三点~蛇变长 我打算明天说,我希望各位先自己动脑,想想怎么实现!

打赏