我正在用 Java/JavaFX 编写一个“星际迷航”游戏。我的想法是主游戏屏幕是一个 10x10 的按钮网格面板。所有游戏部件(企业、克林贡、行星等)都将在按钮中显示为图标。这样,您可以单击一个空间对象来选择它、扭曲到它、射击它等等:
当然,这一切都取决于能够将我的小星舰图像分配给适当的按钮。我已经弄清楚如何将背景应用到按钮,但是当我应用图像时,契合度不佳。这是迄今为止我的游戏的屏幕截图:
“企业”形象有点合适……但实际上并不合适。必须有办法拉伸船以适应按钮exactly,但我还没有找到它。我还必须找到一种在 Java(不是 CSS 或 FXML)中执行此操作的方法,因为 Java 代码必须移动图标。
这是我的代码:
public void setUpBoard(){
// set up 10x10 GridPane of Buttons...
Image testImage = new Image(getClass().getResourceAsStream("Enterprise.png"));
ImageView testImageView = new ImageView(testImage);
testImageView.setFitWidth(55); // My button is 55 x 37 pixels, according to the FXML
testImageView.setFitHeight(37);
//testImageView.fitWidthProperty().bind(gridButton37.widthProperty()); // This didn't work either
//testImageView.fitHeightProperty().bind(gridButton37.widthProperty());
gridButton37.setGraphic(testImageView);
}
我已经谷歌搜索了几个小时,但我找不到似乎适用于此的“将图像拉伸到父级”解决方案。我有什么遗漏的吗?
btnTest.setMinSize(55, 37);
btnTest.setMaxSize(55, 37);
Image image = new Image("/view/images/someImage.png", btnTest.getWidth(), btnTest.getHeight(), false, true, true);
BackgroundImage bImage = new BackgroundImage(image, BackgroundRepeat.NO_REPEAT, BackgroundRepeat.NO_REPEAT, BackgroundPosition.CENTER, new BackgroundSize(btnTest.getWidth(), btnTest.getHeight(), true, true, true, false));
Background backGround = new Background(bImage);
btnTest.setBackground(backGround);
See https://docs.oracle.com/javase/8/javafx/api/javafx/scene/layout/Background.html https://docs.oracle.com/javase/8/javafx/api/javafx/scene/layout/Background.html
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)