Java 将画布的宽度和高度传递给类的构造函数
在下面的Java 将画布的宽度和高度传递给类的构造函数,java,android,Java,Android,在下面的GameSurfaceView类的构造函数中创建对象时,我需要将画布宽度和高度的值传递给Player类的构造函数。问题是当时我无法获得画布宽度和高度的任何值。到目前为止,对于我来说,唯一的方法是我可以在Run()方法中获得画布的宽度和高度,但是现在已经太晚了,因为我已经扭曲了对象 我想出了一个主意,将GameSurfaceView的引用传递给Player类的第二个构造函数,这样我就可以通过这种方式从画布上传递和获取值,但我想,在创建对象的那一刻也不会有值 请问我的问题是否不清楚。下面是我
GameSurfaceView
类的构造函数中创建对象时,我需要将画布宽度和高度的值传递给Player
类的构造函数。问题是当时我无法获得画布宽度和高度的任何值。到目前为止,对于我来说,唯一的方法是我可以在Run()
方法中获得画布的宽度和高度,但是现在已经太晚了,因为我已经扭曲了对象
我想出了一个主意,将GameSurfaceView
的引用传递给Player
类的第二个构造函数,这样我就可以通过这种方式从画布上传递和获取值,但我想,在创建对象的那一刻也不会有值
请问我的问题是否不清楚。下面是我正在使用的代码的主要部分。我还使用MainActivity
类来创建下面这个类的对象
public class GameSurfaceView extends SurfaceView implements Runnable {
SurfaceHolder surfaceHolder;
Canvas canvas;
int screenWidth, screenHeight;
// Constructor
public GameSurfaceView(Context context) {
super(context);
surfaceHolder = getHolder();
// Create player sprite object
player = new Player(texturePlayer, xPlayer, yPlayer);
}
// Create player sprite object alternative 2
player = new Player(this, texturePlayer, xPlayer, yPlayer);
}
@Override
public void run() {
canvas = surfaceHolder.lockCanvas();
screenWidth = canvas.getWidth();
screenHeight = canvas.getHeight();
// Do the drawing to screen here
surfaceHolder.unlockCanvasAndPost(canvas);
}
}