有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java将画布的宽度和高度传递给类的构造函数

当我在下面的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);  
    }
}

共 (0) 个答案