我正在尝试制作扫雷游戏。但我有点困惑如何为游戏中的每个单元获取x和y协调器,以便为每个单元绘制图像。此代码仅绘制具有位置(0,0)的第一个单元格。如何获得对其他单元格的引用?
这是我的代码:

    public  class Cell {
     private int row, col;
     private int ulx, uly, w, h;
     private boolean marked, covered, mined;
     private int adjcount;

     private Cell(int r, int c) {
        marked=false;
        covered=true;
        mined=false;
        row=r;
        col=c;
        w=h=16;
        adjcount=0;
     }

     public int getX(){
         return ulx;
     }

     public int getY(){
         return uly;
     }

     public boolean getMarked() {
        return marked;
     }

     public void setMarked(boolean value) {
        marked=value;
     }

     public boolean getCovered() {
        return covered;
     }

     public void setCovered(boolean value) {
        covered=value;
     }

     public boolean getMined() {
        return mined;
     }

     public void setMined(boolean value) {
        mined=value;
     }

     public void setAdjCount(int count) {
        adjcount = count;
     }

     public int getAdjCount() {
        return adjcount;
     }


这是我在游戏中绘制每个单元格的地方

  if (getCovered() == true && getMarked () == false) {    // gray rectangle
           g.drawImage(gRec,getX(),getY(),w,h,null);

        }

最佳答案

似乎您没有在任何地方分配ulxuly。您可以将以下代码放在构造函数的末尾:

ulx = col * w;
uly = row * h;

09-26 20:03