2013-04-27 90 views
1

我一直在迷宫游戏上扭曲,并且我的球有物理移动,但我正在努力让它撞到它周围的墙上。其目前的影片剪辑与黑色的墙壁,以及香港专业教育学院使用该代码,试图阻止它:如何在actionscript 3.0中创建墙?

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

这样做只是当它击中的影片剪辑的任何部分,(即使是空格),它的动作我字符,

是否有任何一种代码我可以用来检测到某种颜色?

+0

起初我还以为是'hitArea'会有帮助,但它不会为'hitTestObject'使用显示对象的边界框。 – taskinoor 2013-04-27 13:14:18

+0

有没有其他方法? – sam 2013-04-27 13:23:15

回答

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/