我试图设置一种简单的能量方法,为我平原上旅行过的每一个px使用1个能量。 这是我的代码,不会起作用。在我的播放器移动之前,我似乎无法弄清楚如何获得x / y的值。
public void energy(){
for(int i = 0; i < handler.object.size(); i++){
GameObject tempObject = handler.object.get(i);
if(tempObject.getId() == ID.Player){
double dis = Math.sqrt(Math.pow(getX() - this.x, 2) + Math.pow(getY() - this.y, 2));
HUD.ENERGY -= dis;
}
}
}
答案 0 :(得分:0)
您的班级中有几个字段名为lastX
和lastY
。在.energy()
方法中,计算当前位置与(lastX, lastY)
之间的距离,然后将(lastX, lastY)
设置为当前位置。
通过这种方式,您可以跟踪之前的位置,并使用它来计算它移动的距离。该方法的粗略概述将是:
答案 1 :(得分:0)
你确实知道getX()将返回this.x,它将变为0(y相同)?您需要使用实例调用它。 你有什么想做的呢
public void energy(Point point1, Point point2){
for(int i = 0; i < handler.object.size(); i++){
GameObject tempObject = handler.object.get(i);
if(tempObject.getId() == ID.Player){
double dis = Math.sqrt(Math.pow(point1.getX() - point2.getX(), 2) + Math.pow(point1.getY() - point2.getY(), 2));
HUD.ENERGY -= dis;
}
}
}