我是java的新手,对不起我的愚蠢...... 我有以下代码
public class player {
float height=100;
float basex=0;
float x=0;
float y=(Display.getHeight()/2)-height/2;
float width=15;
float speed=2.5f;
public void drawPlayer(){
glBegin(GL_QUADS);
glVertex2f(basex+x,y);
glVertex2f(basex+x+width, y);
glVertex2f(basex+x+width, y+height);
glVertex2f(basex+x, y+height);
glEnd();
}
public float getPy() {
// TODO Auto-generated method stub
return y;
}
}
但是当我在main方法中使用player.getPy()时,它表示变量“Y”需要是静态的...但是我不能让它静止,因为我有2个玩家在展出。我尝试使用player.y,同样的。
我该怎么办? 感谢您的帮助,对不起我的英语。
答案 0 :(得分:0)
您需要使用对您创建的对象的引用来调用该方法,而不是类名:
player p = new player(); // Create a new player and call it p
p.getPy(); // Call the getPy() method for the player called p
答案 1 :(得分:0)
您将y设置为类字段,而每次getPy()时都需要获取高度。相反,你最好把这个逻辑放在函数本身,这将给出:
public float getPy() {
return (Display.getHeight()/2)-height/2;
}
当然,您需要拥有该类的实例,而不仅仅是
使用它player.getPy();