Я пытаюсь сделать линкоры.
У меня есть кнопка, после нажатия я хочу, чтобы кнопка и кнопка рядом с ней изменили цвет. (размещение на кораблях)
Я добавил идентификатор для каждого объекта, поэтому у меня есть уникальная строка, чтобы попытаться идентифицировать кнопки
Не могли бы вы показать мне теперь, чтобы идентифицировать объект на основе его идентификатора, а затем редактировать переменные в этом объекте?
for(int x = 0; x < 10; x++)
{
for(int y = 0; y < 10; y++) {
myrectangle r2 = new myrectangle();
r2.id = Integer.toString(x)+Integer.toString(y);
r2.PosX = x;
r2.PosY = y;
r2.setX(30 * x);
r2.setY(30 * y);
r2.setWidth(30);
r2.setHeight(30);
r2.setY((y*30)+400);
r2.setFill(Color.GRAY);
r2.setStroke(Color.WHITE);
group.getChildren().add(r2);
r2.setOnMousePressed(event ->{
MouseButton Button = event.getButton();
r2.pressed = true;
if(Button == MouseButton.PRIMARY) { //left button
//make the ship go horizontally
int boatSize;
if(r2.ships == 8) {
boatSize = 5;
if((boatSize + r2.PosX) < 11)
{
// boat fits
r2.setFill(Color.RED);
r2.used = true;
}
//display aircraft horizontally(5 tiles)
}
else if(r2.ships == 7 || r2.ships == 6)
{
//display battleship horizontally(4 tiles)
}
else if(r2.ships == 5 || r2.ships == 4)
{
//display destoryer horizontally(3 tiles)
}
else if(r2.ships <= 3)
{
//display patrole boat horizontally(2 tiles)
}
}
if(Button == MouseButton.SECONDARY) { //right button
//make the ship go vertically
if(r2.ships == 8) {
//display aircraft vertically(5 tiles)
}
else if(r2.ships == 7 || r2.ships == 6)
{
//display battleship vertically(4 tiles)
}
else if(r2.ships == 5 || r2.ships == 4)
{
//display destoryer vertically(3 tiles)
}
else if(r2.ships <= 3)
{
//display patrole boat vertically(2 tiles)
}
}
});
if(r2.pressed == true) {
r2.setFill(Color.BLUE);
}
}
}
root.getChildren().add(group);
stage.show();