最近用dx尝试做了一个小的贪吃蛇游戏,代码放到github上面:https://github.com/nightwolf-chen/MyFreakout
说一下自己实现的过程:
首先,我把蛇这个抽象成一个精灵类,像很多游戏引擎那样的做法。蛇由很多节点构成每一个节点存储了坐标等信息。我采用的是双向链表来存储一整条蛇上面的所有节点。
在蛇没有吃到东西的时候链表的长度不会变,蛇的移动可以同过把链表的最后一个节点放到最前面并且更新其坐标来实现,这样的话就可以比较高效率地实现蛇的移动。
实现了蛇的移动以后,就是单位碰撞检测,这个用两个矩形的中心的距离和边长的关系比较容易解决。
稍有难度的地方是双向链表的操作比较多细节要注意,有指针的地方是很容易出问题的。
目前实现了主要逻辑,但是还是一个粗坯。
本文分享了使用dx开发贪吃蛇游戏的过程,通过将蛇抽象为精灵类并利用双向链表存储节点来高效实现蛇的移动。文章详细介绍了如何进行单位碰撞检测,并讨论了双向链表操作的细节。
22万+

被折叠的 条评论
为什么被折叠?



