我试图让我的角色与底池发生碰撞,但我一直遇到问题。
我的代码目前(这是在更新功能中):
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
}
}
答案 0 :(得分:0)
首先,只需使用其x
和y
属性即可更改实体的位置。图中的x,y只是偏移量。
其次,要检查碰撞,请执行
if (collide("pot", x, y)) trace("killed by pot!");
第二个和第三个参数是坐标this
实体放置以检查碰撞。最常见的情况是你检查实体的新位置,看看它是否与某些障碍物碰撞,如果你没有把它放在那里。