在JavaFX中刷新矩形
如何在JavaFX中使矩形在视图中闪烁 我正在做一个单词搜索游戏,我有一个随机的在JavaFX中刷新矩形,java,user-interface,javafx,Java,User Interface,Javafx,如何在JavaFX中使矩形在视图中闪烁 我正在做一个单词搜索游戏,我有一个随机的字符的2D数组。 我正在将此阵列打印到600x600画布上,如下所示: for (int i = 0; i < gameBoard.length; i++) { for (int j = 0; j < gameBoard[0].length; j++) { gc.fillText(String.valueOf(gameBoard[i][j]), (25 + (20
字符的2D数组。
我正在将此阵列打印到600x600画布上,如下所示:
for (int i = 0; i < gameBoard.length; i++) {
for (int j = 0; j < gameBoard[0].length; j++) {
gc.fillText(String.valueOf(gameBoard[i][j]), (25 + (20 * j)), (25 + (20 * i)));
}
}
这意味着我可以通过增加rowSelection
和colSelection
来移动正方形。这使得:
现在唯一的问题是,我需要一个矩形来闪烁,这样当被选中时,下面的字母仍然可见。我该怎么做?我尝试过将颜色设置为不透明,但这也会导致游戏板的其他部分变得不可见。有没有一种方法我想不出来?
我是JavaFX新手,因此非常感谢您的帮助。使用save()
和restore()
将颜色更改回旧值,或通过自己将属性设置为旧值来恢复旧值
在黑色背景上添加白色文本的最简单方法是:
将填充设置为黑色
画矩形
将填充设置为白色
画课文
如果在您的情况下不可能这样做,您可以在绘制文本之前绘制白色背景,然后使用DIFFERENCE
作为混合模式在文本顶部绘制白色矩形,以反转矩形中的颜色:
Canvas canvas = new Canvas(400, 400);
GraphicsContext gc = canvas.getGraphicsContext2D();
gc.setFill(Color.WHITE);
gc.fillRect(0, 0, canvas.getWidth(), canvas.getHeight());
gc.setFill(Color.BLACK);
gc.fillText("Hello world", 30, 30);
gc.save();
gc.setGlobalBlendMode(BlendMode.DIFFERENCE);
gc.setFill(Color.WHITE);
gc.fillRect(10, 10, 100, 100);
gc.restore(); // restore old settings
// some more rendering with old settings
gc.fillRect(100, 100, 100, 100);
Canvas canvas = new Canvas(400, 400);
GraphicsContext gc = canvas.getGraphicsContext2D();
gc.setFill(Color.WHITE);
gc.fillRect(0, 0, canvas.getWidth(), canvas.getHeight());
gc.setFill(Color.BLACK);
gc.fillText("Hello world", 30, 30);
gc.save();
gc.setGlobalBlendMode(BlendMode.DIFFERENCE);
gc.setFill(Color.WHITE);
gc.fillRect(10, 10, 100, 100);
gc.restore(); // restore old settings
// some more rendering with old settings
gc.fillRect(100, 100, 100, 100);