Итак, я использую это, чтобы рисовать на холсте
@Override
public void start(Stage primaryStage) throws Exception{
Screen screen = Screen.getPrimary();
bounds = screen.getVisualBounds();
root = new VBox();
c = new Canvas(bounds.getMaxX(), bounds.getMaxY());
gc = c.getGraphicsContext2D();
root.getChildren().add(c);
primaryStage.setTitle("Test");
scene = new Scene(root, bounds.getMaxX(), bounds.getMaxY());
primaryStage.setScene(scene);
primaryStage.show();
gc.setFill(Color.BLACK);
gc.fillRect(0,0,bounds.getMaxX(), bounds.getMaxY());
levelController.createLevel(gc, bounds);
playerController.start();
}
Я пытался использовать эти два метода, чтобы получить Цветовой код определенных c координат, но он не работает, кто-нибудь знает решение?
Image image = Main.root.getBackground().getImages().get(0).getImage();
PixelReader r = image.getPixelReader();
Color argb = r.getColor((int)player.getPosition_X(), (int)player.getPosition_Y());
System.out.println(argb);
WritableImage snap = Main.gc.getCanvas().snapshot(null, null);
int test = snap.getPixelReader().getArgb((int)player.getPosition_X(), (int)player.getPosition_Y());