Flashpunk碰撞问题

时间:2016-04-04 10:13:15

标签: actionscript-3 flash

我试图让我的角色与底池发生碰撞,但我一直遇到问题。

我的代码目前(这是在更新功能中):

        if (collide("Pot",MyWorld.Pot.graphic.x,MyWorld.Pot.graphic.y))
        {
            trace("HUH!?")
            // Player is colliding with a "bullet" type.
        }

它永远不会追踪" HUH?!"即使我去了锅。我甚至尝试在80,80(这是底池的位置)创造我的角色

如果我键入0,0它有效,那为什么不是80,80?

底池的点击框是36x34(它的框架大小是它的spritemap)

这里是底池的代码(在一个单独的类中)

公共类Po扩展实体 {

[Embed(source = "../img/28x29.png")]

public var PotImage:Class;

public var sprPot:Spritemap = new Spritemap(PotImage,36,34)

public function Po(xP:Number,yP:Number)
{
    sprPot.add("Break",[0,1],2,false)
    graphic = sprPot
    graphic.x = xP
    sprPot.unlock()
    setHitbox(36,34)
    type = "Pot"
    graphic.y = yP
}

}

1 个答案:

答案 0 :(得分:0)

首先,只需使用其xy属性即可更改实体的位置。图中的x,y只是偏移量。

其次,要检查碰撞,请执行

if (collide("pot", x, y)) trace("killed by pot!");

第二个和第三个参数是坐标this实体放置以检查碰撞。最常见的情况是你检查实体的新位置,看看它是否与某些障碍物碰撞,如果你没有把它放在那里。