[英]Java How can I put an image on a rectangle
这是代码
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;
}
我不确定如何将图像放置到播放器上,有什么想法吗?
Java如何将图像放在矩形上
我的建议(如果这是Swing)不是使用Rectangle,否则使用Rectangle而是作为较大解决方案的一部分。
相反,我将创建一个逻辑类(可能称为Entity),该类具有一个位置,一个图像和一个接受Graphics参数的draw方法,可以在所需的任何位置绘制其图像,然后创建Entity对象。 然后,在我的JPanel的paintComponent方法中,遍历所有创建的实体,调用它们的draw方法。
首先,您将要使用主动渲染 。 这将防止您遇到各种与刷新显示有关的问题,并且Java的BufferStrategy
自动为您处理多重缓冲(假设您请求多个缓冲)。
现在您确定屏幕已更新,在渲染时,您可以使用drawRect
方法使用java.awt.Graphics
对象绘制一个矩形。 如果要填充此矩形,请使用fillRect
。 Graphics
对象以预定义的颜色绘制所有内容。 如果您想更改颜色,可以调用setColor
。 此方法需要一个java.awt.Color
对象作为参数,它允许您使用一种构造函数定义所有可能的64位透明颜色。 它还具有一些预定义的颜色,例如Color.RED
,即0xFF0000
。
我建议您探索Graphics
必须提供的所有方法,甚至可以研究可支持一些额外功能的Graphics2D
。 请注意,大多数Graphics
对象都可以转换为Graphics2D
,但是如果不确定,则可能要研究Java的源代码(JDK安装中有src.zip
)或使用instanceof
检查。 实际上, Graphics2D
使用drawShape
或fillShape
方法支持类似Rectangle
图形形状。
对于那些好奇的人来说, 0xFF0000
是一种格式化颜色的方法。 它被RGB编码为十六进制( 0xRRGGBB
)。 它还通常用其他语言表示#FF0000
,例如CSS(级联样式表,用于轻松格式化HTML文档)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.