рисование тайла карты из таблицы спрайтов: ничего не рисует - PullRequest
0 голосов
/ 18 октября 2018

Я пытаюсь нарисовать карту тайла из массива на холст.Но даже первая плитка не будет нарисована, холст останется пустым.

Я хотел получить вторую позицию плитки травы 3 и первую позицию плитки 5 каменного пола в первом ряду таблицы спрайтов, как показано ниже в моем int[] массив карт.

это спрайт листов:

Tile Spritesheet

Чего мне не хватает?Я думаю, что мои src Rect и des Rect не правы ... но пытался в течение нескольких дней не может заставить его работать.Независимо от того, что я пытался и как я изменил мой srcR и desR Rect, холст оставался пустым, ничего не было нарисовано.

public class Tilemap {

private int rows;

private int cols;

private int tsize;


private Bitmap tilesheet;

private int tile;

private int[]map;

private Rect srcR;

private Rect desR;


public Tilemap(String tilesheetS,int rows,int cols) {


    tilesheet = ImageHandler.getBmp(tilesheetS);

    this.rows = rows;

    this.cols = cols;

    tsize = tilesheet.getWidth() / cols;

    map = new int[]{


            3,3,3,3,3,
            3,5,5,3,3,
            3,3,5,3,3,
            3,3,5,5,3,
            3,3,3,3,3
             };


}



public int getTile(int col, int row) {


    return map[row * 5 + col];
}



    public void drawTilemap (Canvas canvas){

        for(int c = 0; c < 5; c++){


            for(int r = 0; r < 5;r++){


                tile = getTile(c,r);



                srcR = new Rect((tile-1)*tsize,0,tsize,tsize);

                desR = new Rect(c*tsize,r*tsize,tsize,tsize);

                System.out.println("tile: "+tile+"####"+"srcR: "+srcR+"####"+"desR: "+desR);

                System.out.println("imagewidth: "+tilesheet.getWidth()+"####"+tilesheet.getHeight());


                canvas.drawBitmap(
                        tilesheet, srcR, desR, null);


            }




        }



    }
}

и в моем классе GameView:

Tilemap gamemap = new Tilemap("tilemap",10,17);

Конечно, я тоже запускаю метод drawTilemap (canvas) в моем коде, это не проблема, потому что когда я пытаюсь нарисоватьвесь спрайт лист плитки, как один, он работает как шарм ... Я в замешательстве.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...