1

我一直在对迷宫游戏进行转折,我的球可以随着物理运动而移动,但我很难让它撞到它周围的墙壁。它目前是一个带有黑墙的电影剪辑,我使用此代码尝试阻止它:

if (character.hitTestObject(walls)){
        character.x = //something
        character.y = //something
    }

所有这一切都是当它击中电影剪辑的任何部分时,(甚至是空格)它会移动我的角色,

有什么代码我可以用来检测击中某种颜色吗?

4

1 回答 1

0

你可以做到这一点的一种方法是使用hitTestPoint()方法来测试是否有任何角落撞到你的墙上。

hitTestPoint()仅测试单个位置以查看该点是否与对象碰撞。这是您可以测试角色的左上角以查看它是否接触墙壁的方法:

// I am assuming that x,y is the top left corner of your character

if (wall.hitPointTest(character.x, character.y, true))
{
   // top left collided with wall
{

因此,您可以对所有角落执行相同的操作,或者如果您愿意,您可以确定要检查角色的任何碰撞点。

根据您的精度水平,此方法可能适合您的需求。但是如果你想要像素完美碰撞,你可以查看这个链接:

http://www.freeactionscript.com/2011/08/as3-pixel-perfect-collision-detection/

于 2013-04-27T14:21:00.200 回答