Java fx不相交';行不通
我正在使用javafx开发一个小型平台,我的角色漂浮在地板上。我正在实现内置的javafx方法。相交检查两个矩形的边界,看它们是否重叠,将玩家的垂直速度设置为零。我认为相关的代码部分贴在了她身上,但完整的程序就在这个地址:如果你想更彻底地研究它的话Java fx不相交';行不通,java,eclipse,javafx-8,Java,Eclipse,Javafx 8,我正在使用javafx开发一个小型平台,我的角色漂浮在地板上。我正在实现内置的javafx方法。相交检查两个矩形的边界,看它们是否重叠,将玩家的垂直速度设置为零。我认为相关的代码部分贴在了她身上,但完整的程序就在这个地址:如果你想更彻底地研究它的话 if(G.getP().intersects(f)||(G.getP().intersects(pf))) { if(G.getP().getSpdY()>0)
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像素。正如我在顶部所说,.intersects方法来自javafx库。顺便说一句,我使用的是jafafx8和eclipse neon。你怎么知道它不起作用?你期望结果是什么,你实际得到了什么?相关的代码可能在intersect()方法中。另外,你为什么一直调用G.getP()?为什么不直接编写
Player p=G.getP()呢
然后使用p表示其余部分-更少键入,更容易阅读。我希望它站在地板上,但它却漂浮在地板上。我一直这样称呼它,因为我希望将我的实例放在一个地方,这样更容易跟踪,而不是有一个可能被更改然后不得不更改的重复实例将第一个设置为第二个。