我开始了解ActionScript并且越来越好。但是,我正在构建一个无限长度的平台游戏。什么是创造玩家跳跃的“阻止”的最佳方式?
除了数组,我并不熟悉其他任何东西。还有其他方法吗?当然,需要对这些动画片段进行碰撞检测(最好的做法是在没有通过阵列的巨大循环等的情况下进行)。屏幕上可能同时有5个块。
谢谢, Martti Laine
答案 0 :(得分:0)
您可以使用功能hitTestObject或hitTestPoint
测试碰撞然而,将游戏中的每个块的列表保存在一个数组中并循环遍历它并检查每个帧上的碰撞听起来并不像它可以很好地扩展。
如果它真的只有5个元素可以循环通过一个数组,但我不会每帧都检查它,每次播放器或块移动时只检查一次。如果在第X帧它们没有碰撞并且自框架X以来没有任何移动,则必须仍然没有碰撞。
不确定它是否可行,但可能会将所有块保留在容器中并检查容器是否与播放器发生冲突。但是,这可能不起作用,因为如果玩家位于容器边界框内并且实际上没有触及一个(如果是孩子的话),它可能会触发。
答案 1 :(得分:0)
如果您将“无限长度”表示为“无缝世界”,则无法将所有块存储在数组中(因为您没有无限的内存)。您将需要研究级别的程序创建,并仅在内存中存储少量屏幕。
一旦你有了这个,你必须使用约翰在他的帖子中描述的方法,仅使用可见的可碰撞元素来限制碰撞检测。
另外,如果你可以定位到FP 10,请尝试使用Vector类,因为它更快(如果你在数组中只使用一种类型的对象)。