#java #android #canvas #drawing
#java #Android #холст #рисование
Вопрос:
На самом деле я делаю игру на Android Studio на основе сетки, которую я рисую с помощью этого:
public void dessin(Canvas canvas){
paint.reset();
TenGame theGame=gam.getTenGame();
canvas.drawColor(Color.YELLOW);
paint.setColor(Color.BLACK);
for(int x=0;x<canvasWidth;x =cellSize){
canvas.drawLine(x,0,x,canvasWidth,paint);
}
for(int y=0;y<canvasWidth;y =cellSize){
canvas.drawLine(0,y,canvasWidth,y,paint);
}
paint.setTextSize(50);
paint.setFlags(Paint.ANTI_ALIAS_FLAG);
PositionList plist=theGame.getSelectedGroup();
for(int x=0;x<5;x ){
for(int y=0;y<5;y ){
Position p=new Position(x,y);
if (theGame.get(p)!=null) {
canvas.drawText(Integer.toString(theGame.get(p)), (x * cellSize) 15, (cellSize y * cellSize) - 15, paint);
}
else{
canvas.drawText("", (x * cellSize) 15, (cellSize y * cellSize) - 15, paint);
}
}
}
}
И я получаю это:
сеточная игра:
И я хотел бы, когда я касаюсь ячейки в сетке, изменять цвет фона.
Я думаю, что лучшим решением здесь для меня является выполнение drawRect (), но я не знаю, какое измерение мне следует использовать.
У меня есть игровая модель в библиотеке, по которой я могу получить позицию (x, y).
Ответ №1:
Вероятно, вам будет лучше использовать GridPane, поскольку это значительно упростит процесс рисования растровых линий и добавления обработчика событий к каждой ячейке.