Java如何将图像放在矩形上

时间:2015-12-23 21:07:36

标签: java image import rectangles

这是代码

 player = createEntity(400, 600, 40, 60, Color.BLUE);

private Node createEntity(int x, int y, int w, int h, Color color) {
    Rectangle entity = new Rectangle(w, h);
    entity.setTranslateX(x);
    entity.setTranslateY(y);
    entity.setFill(color);

    gameRoot.getChildren().add(entity);
    return entity;

}

我不确定如何将图像放到我的播放器上,有什么想法吗?

2 个答案:

答案 0 :(得分:3)

  

Java如何将图像放在矩形

我的建议(如果这是Swing)不是使用Rectangle,要么使用Rectangle但是作为更大解决方案的一部分。

相反,我创建了一个逻辑类,可能称为Entity,它有一个位置,一个图像和一个draw方法,它接受一个Graphics参数在任何需要的位置绘制它的图像,然后创建Entity对象。然后在我的JPanel的paintComponent方法中,我遍历所有创建的实体,调用它们的draw方法。

答案 1 :(得分:0)

首先,您要使用active rendering。这样可以防止您遇到与刷新显示相关的各种问题,并且Java BufferStrategy会自动为您处理多缓冲,假设您请求多个缓冲区。

现在您确定屏幕已更新,在渲染时,您可以使用java.awt.Graphics方法绘制带有drawRect对象的矩形。如果您想填充此矩形,请使用fillRectGraphics对象以预定义的颜色绘制所有内容。如果您想更改颜色,可以致电setColor。此方法需要java.awt.Color对象作为参数,这允许您使用其中一个构造函数定义所有可能的64位透明颜色。它还有一些预定义的颜色,例如Color.RED,即0xFF0000

我建议您浏览Graphics提供的所有方法,甚至可以查看Graphics2D,它支持一些额外的内容。请注意,大多数Graphics个对象都可以转换为Graphics2D,但如果您不确定,您可能要查看Java的源代码(有{{1}在JDK安装中)或使用src.zip检查。事实上,instanceof支持使用Graphics2DRectangle方法绘制drawShape形状。

对于那些好奇的人,fillShape是一种格式化颜色的方式。它被RGB编码为十六进制(0xFF0000)。它在其他语言中通常也代表0xRRGGBB,例如CSS(层叠样式表,用于轻松格式化HTML文档)