2015-04-14 22 views
0

我现在有一个可控的蛇头形状,可以响应输入,我也有一些形状被绘制到游戏板上。是否有人可以看看我的代码,并帮助我添加/修改任何可以使我的蛇在与其中一种衍生形状相交时增长的修改?如何让蛇在与物体碰撞时伸长?

我所有的项目文件都在引擎收录:http://pastebin.com/u/Addsy

感谢。

回答

0

您可以将蛇的身体部位存储在蛇类的链表中。渲染将归结为迭代列表并分别渲染每个部分。至于移动,一旦你有一个方向,你会移动头部,然后将列表中的每个身体部位移动到它前面的位置。例如,头部先移动,然后第一部分移动到头部的前一个位置,第二部分移动到第一部分的位置等等。为了拉长蛇,在移动中,您可以在列表的末尾再创建一个节点,并在移动之前使用尾部的位置。

+0

是的,这正是我想要做的,但由于我限于C++代码,我正在努力添加什么来实现这一点。你有什么建议添加什么以及在哪里? – Addsy

+0

在你的蛇类中有一个std :: list 。第一个元素(列表的头部)将是你的蛇的头部的位置,每个后面的元素将是body.Next,你将不得不编辑你的移动函数改为移动列表中的每个元素,而不仅仅是头部。我只查看了你的代码,但我认为你有一些功能来检查蛇是否可以在选定的方向上前进?如果是这样的话,你可以在这个类中使用一个bool变量,如果你的蛇在下一回合中会与一个形状相撞,并且在移动中增长,那么这个变量将设置为true。 – Nazara