Java如何将图像放置在矩形上

Java如何将图像放置在矩形上,java,image,import,rectangles,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(

这是密码

 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)是不要使用矩形,或者使用矩形,而是作为更大解决方案的一部分

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

Java如何将图像放置在矩形上

我的建议(如果这是Swing)是不要使用矩形,或者使用矩形,而是作为更大解决方案的一部分


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

首先,您需要使用。这将防止出现与刷新显示相关的各种问题,并且Java的
BufferStrategy
会自动为您处理多缓冲,假设您请求多个缓冲


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

我建议您探索
Graphics
提供的所有方法,甚至可以研究
Graphics2D
,它支持一些额外的东西。请注意,大多数
图形
对象都可以转换为
图形2d
,但是如果您不确定,您可能需要查看Java的源代码(JDK安装中有一个
src.zip
),或者使用
instanceof
检查。事实上,
Graphics2D
支持使用
drawShape
fillShape
方法绘制类似于
矩形的形状



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

首先,您需要使用。这将防止出现与刷新显示相关的各种问题,并且Java的
BufferStrategy
会自动为您处理多缓冲,假设您请求多个缓冲


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

我建议您探索
Graphics
提供的所有方法,甚至可以研究
Graphics2D
,它支持一些额外的东西。请注意,大多数
图形
对象都可以转换为
图形2d
,但是如果您不确定,您可能需要查看Java的源代码(JDK安装中有一个
src.zip
),或者使用
instanceof
检查。事实上,
Graphics2D
支持使用
drawShape
fillShape
方法绘制类似于
矩形的形状



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

,这取决于事物的绘制方式,但本质上,您可以在同一位置绘制一个,然后绘制另一个。您也可以将矩形直接绘制到图像上,但是,归根结底,你要知道的比你告诉我们的要多,这取决于画东西的方式,但本质上,你要在同一个位置画一个然后另一个你也可以直接在图像上画矩形,但是,再一次,这归根结底是知道的比你告诉我们的要多