LongLongAgo,在做泡泡龙游戏的时候,发现数据结构的好处。使用树结构的
[url=http://gain-loss.org/?tag=%e6%95%b0%e5%ad%a6]数学[/url]
模型可以清晰的描述逻辑处理方式。比如在判断是否有球掉落的时候,见下图,就可以用这样的
[url=http://gain-loss.org/?tag=%e6%95%b0%e5%ad%a6]数学[/url]
语言描述:“[1b]对某个球而言,不存在一条路径到达root[/1b]”。root就是最顶层。
[img]/uploads/allimg/100130/2133250.png[/img]
泡泡龙
如果这样的球存在的话,就说明它是“浮空”的,也就是说可以掉下来了。
这类的数学描述在很多领域都用过,记得
[url=http://gain-loss.org/?tag=flash]flash[/url]
的垃圾回收机制么,原来使用计数法来判断一个对象要不要被消灭,如果用在displayObject树结构里就不够了,因为它们可以相互引用,于是,用上面所说的数学描述就成了很好的补充,跟泡泡龙的原理类似,如果有一个displayObject不能到达root的话,它就脱离了显示树,就该被消灭,而不用管计数是多少。
回到泡泡龙的问题上来,一个被发射上来的球可以看成一个根节点,当它被打到一堆球当中的时候,一个树结构就形成了:以这个新球为根,周围的六个球为第一层子节点(可能某些是空,或者重复应用,需要剔除),然后使用广度优先或者深度优先遍历来查找“通往root的路径”,再加上些优化,就能实现这种数学描述,从而完成“掉落”这个游戏功能。
数学在flash游戏中无处不在。此乃往事,特此笔记。
本文转自:http://www.5uflash.com/flashjiaocheng/Flashyingyongkaifa/5306.html
flash游戏与数学问题的一些结合
最新推荐文章于 2025-04-30 13:34:38 发布