闪光朋克碰撞问题
Flashpunk collision troubles
我试图让我的角色与一个锅相撞,但我一直 运行 遇到问题。
我的代码目前是(这是在更新函数中):
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 的帧大小)
这是锅的代码(在单独的 class 中)
public class 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
}
}
首先,要更改实体的位置,只需使用其 x
和 y
属性。图形中的 x,y 只是偏移量。
其次,检查碰撞只是做
if (collide("pot", x, y)) trace("killed by pot!");
第二个和第三个参数是坐标 this
放置实体是为了检查碰撞。最常见的情况是你检查实体的新位置,看看它是否与一些障碍物发生碰撞,如果你不把它放在那里。
我试图让我的角色与一个锅相撞,但我一直 运行 遇到问题。
我的代码目前是(这是在更新函数中):
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 的帧大小)
这是锅的代码(在单独的 class 中)
public class 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
}
}
首先,要更改实体的位置,只需使用其 x
和 y
属性。图形中的 x,y 只是偏移量。
其次,检查碰撞只是做
if (collide("pot", x, y)) trace("killed by pot!");
第二个和第三个参数是坐标 this
放置实体是为了检查碰撞。最常见的情况是你检查实体的新位置,看看它是否与一些障碍物发生碰撞,如果你不把它放在那里。