繁体   English   中英

Java如何将图像放在矩形上

[英]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使用drawShapefillShape方法支持类似Rectangle图形形状。


对于那些好奇的人来说, 0xFF0000是一种格式化颜色的方法。 它被RGB编码为十六进制( 0xRRGGBB )。 它还通常用其他语言表示#FF0000 ,例如CSS(级联样式表,用于轻松格式化HTML文档)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM