Je veux dessiner une carte de tuiles sur un canevas avec la méthode drawRect(). Le problème est qu'il dessine seulement le premier rectangle sur la coordonnée 0,0. C'est supposé être une carte de carreaux 30x20 des couleurs rouge et vert. Je prévois de faire un jeu de serpent.Tuiles Android avec drawRect
Tile.java
public class Tile extends View{
private final int TILE_SIZE = 16;
private static int[][] tileMap;
private static int rows, columns;
public Tile(Context context) {
super(context);
createTilemap();
}
public void createTilemap(){
tileMap = new int[30][20];
rows = tileMap.length;
columns = tileMap[1].length;
Random r = new Random();
for (int i = 0; i < rows; i++){
for (int j = 0; j < columns; j++){
tileMap[i][j] = r.nextInt(2);
}
}
}
public Tile(Context context, AttributeSet attrs) {
super(context, attrs);
}
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
Paint p = new Paint();
for (int i = 0; i < rows; i++){
for (int j = 0; j < columns; j++){
int pos_i = TILE_SIZE * i;
int pos_j = TILE_SIZE * j;
switch (tileMap[i][j]){
case 0:
p.setColor(Color.GREEN);
canvas.drawRect(pos_i, pos_j, TILE_SIZE, TILE_SIZE, p);
break;
case 1:
p.setColor(Color.RED);
canvas.drawRect(pos_i, pos_j, TILE_SIZE, TILE_SIZE, p);
break;
}
}
}
}
}
activity_main.xml
<com.example.mohamed.snake.Tile
android:layout_width="match_parent"
android:layout_height="match_parent" />
Merci, cette réponse a fonctionné! – melkawakibi