我一直在对迷宫游戏进行转折,我的球可以随着物理运动而移动,但我很难让它撞到它周围的墙壁。它目前是一个带有黑墙的电影剪辑,我使用此代码尝试阻止它:
if (character.hitTestObject(walls)){
character.x = //something
character.y = //something
}
所有这一切都是当它击中电影剪辑的任何部分时,(甚至是空格)它会移动我的角色,
有什么代码我可以用来检测击中某种颜色吗?
我一直在对迷宫游戏进行转折,我的球可以随着物理运动而移动,但我很难让它撞到它周围的墙壁。它目前是一个带有黑墙的电影剪辑,我使用此代码尝试阻止它:
if (character.hitTestObject(walls)){
character.x = //something
character.y = //something
}
所有这一切都是当它击中电影剪辑的任何部分时,(甚至是空格)它会移动我的角色,
有什么代码我可以用来检测击中某种颜色吗?
你可以做到这一点的一种方法是使用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/