我正在使用javafx开发一个小平台游戏,我的角色漂浮在地板上。我正在实现内置的javafx方法.Intersects检查两个矩形的边界,看它们是否与玩家垂直速度为零的设置重叠。我认为代码的相关部分是粘贴她的,但完整的程序在这个地址:https://github.com/metrogo10/finalProject如果你想更彻底地研究它。
if(G.getP().intersects(f)||(G.getP().intersects(pf)))
{
if(G.getP().getSpdY()>0)
{
G.getP().setSpdY(0);
}
if(input.contains("SPACE")||input.contains("UP")||input.contains("W"))
{
G.getP().addVelocity(0, -560);
}
}
}
这是第一种方法调用的代码。
public boolean intersects(Sprite s)
{
return s.getBoundary().intersects( this.getBoundary());
}
G.getP()是玩家,f是地板pl是一个平台。第二个if语句基本上允许玩家跳过"跳跃" (虽然我仍在研究这些数字)。该角色的行为与预期相比仅高出约30 px。就像我在顶部说的那样.intersects方法来自javafx库。顺便说一句,我使用的是jafafx8和eclipse neon。