2011-08-27 288 views
0

如果你看我的比赛的这个链接:碰撞?

http://www.youtube.com/watch?v=HMWl8D_OwyM

如果你看这个,你会看到的字符可以在任何地方行走。我想添加一些冲突,所以他只能例如行走在道路上..有没有一些可能的方式来做到这一点,而没有形成一个碰撞.txt文件加载到一个数组?

或者我会如何解决这个最好的方法? (级别从图片加载)

+0

嗨。请不要使用特定于语言的标记(即C++),除非您的问题与该特定语言特别相关...... –

回答

2

如果级别是纹理,则可以对纹理进行采样以允许角色仅在特定曲面上行走;或者您可以创建一个单独加载并仅用于碰撞检测的冲突掩码。

你如何实现这是你自己决定的;它可能是最简单的(也是最有效的),只需定义一个替代数据结构来包含所有碰撞对象的边界框。

编辑:

逆可能是更容易的方法;而不是定义你的对象,定义可用于角色的路径。这会严重限制自由漫游的能力,但对你的例子来说可能是理想的。

EDIT2:

这些都不是容易的解决办法:它可能是更好地为您重新的因素你的水平的数据;不要只使用BITMAP,也许应该看一下简单的基于磁贴的解决方案。

这将允许更容易区分表面,纹理和对象;并因此进行碰撞检测。

+0

我将如何使某些表面上只有行走?你可以解释一下这将如何工作? – Rakso

+0

@TheCompBoy,我更新了我的答案;也许它可能有帮助。 – dcousens

+0

非常感谢你! – Rakso