【发布时间】:2021-02-03 17:15:59
【问题描述】:
我刚开始学习 Java (OOP),我正在尝试开发一个简单的游戏(如太空入侵者)。我想将守卫(棕色矩形)替换为图像,以使游戏更美观。
我不知道该怎么做,因为守卫依赖很多东西。我尝试使用 loadImage() 方法和其他方法,但没有成功。
相关代码:
Guard.java
public class Guard {
private List<Square> squares;
public Guard(int x, int y) {
squares=new ArrayList<>();
for(int i=0; i<3; i++) {
for (int j = 0; j < 6; j++) {
squares.add(new Square(x + SQUARE_SIZE * j, y + SQUARE_SIZE * i));
}
}
}
public void collisionWith(MovingObject obj) {
for(Square square : squares) {
if(square.visible && square.intersects(obj.getBoundary())) {
square.setVisible(false);
obj.die();
}
}
}
public void draw(Graphics g) {
for(Square square : squares)
{
if(square.visible) square.draw(g);
}
}
}
Square.java
class Square extends Rectangle {
boolean visible;
Square(int x, int y)
{
super(x, y, SQUARE_SIZE, SQUARE_SIZE);
setVisible(true);
}
void setVisible(boolean visible) {
this.visible = visible;
}
void draw(Graphics g) {
g.setColor(new Color(228, 155, 30));
g.fillRect(x, y, width, height);
}
}
【问题讨论】:
-
为了在具有 Graphics 类的组件中绘制图像,您应该使用 drawImage() 方法。也许这个问题对你有帮助:stackoverflow.com/questions/9083096/…
-
1) “我尝试使用 loadImage() 方法和其他方法,但没有成功。” 它是如何失败的?始终复制/粘贴错误和异常输出! 2) “相关代码:” 在你眼中什么是相关的,什么是与获得帮助相关的,是两个不同的东西。 a) 为了尽快获得更好的帮助,edit 添加minimal reproducible example 或Short, Self Contained, Correct Example。 b) 例如,获取图像的一种方法是热链接到在this Q&A 中看到的图像。例如。 this answer中的代码..
-
.. 指向嵌入在this question 中的图像的热链接。
标签: java swing oop jframe game-development