2011-03-08 38 views
0

我开始了解ActionScript并使其更好。不过,我正在构建一个无限长的平台游戏。创建玩家正在跳跃的“块”的最佳方式是什么?在AS3中具有碰撞检测的连续影片剪辑?

我并不是真的很熟悉数组。还有其他方法吗?当然,这些影片剪辑的碰撞检测是需要的(最好的做法是在每一帧没有通过阵列的巨大循环等)。屏幕上可能同时存在5个块。

感谢, 马尔蒂·莱恩

+0

您应该在[gamedev.SE](http://gamedev.stackexchange.com/)站点上查找碰撞检测算法。 – zzzzBov 2011-03-08 17:33:51

回答

0

您可以测试碰撞与功能hitTestObjecthitTestPoint

但是保持每块的名单在比赛中的数组,并通过它循环,并检查碰撞在每个框架上听起来都不会很好。

如果它真的只有5个元素可以循环遍历一个数组,但我不会在每一帧都检查它,每次播放器或块移动时只检查一次。如果在第X帧,它们没有碰撞,并且从第X帧起没有任何移动,那么仍然不会有碰撞。

不知道它是否可以工作,但可能将所有块保留在容器中,并检查容器是否与播放器发生碰撞。然而,这可能不起作用,因为如果玩家在容器边界框内并且如果它是儿童时不实际接触一个,则它可能触发。

0

如果您的意思是“无限长度”为“无缝世界”,则无法将所有块存储在数组中(因为您没有无限制内存)。您需要研究程序创建的关卡,并仅在内存中存储少量的屏幕。

一旦你有了这个,你必须使用约翰在他的文章中描述的方法来限制碰撞检测,只使用可见碰撞元素。

此外,如果您可以定位到FP 10,请尝试使用Vector类,因为速度更快(如果您在阵列中仅使用一种类型的对象)。