如何删除 Java 游戏中的对象
How do I delete objects in a Java game
我的 java 游戏中有一个对象,它是一枚硬币,目前它只是一个用
制作的矩形
g.setColor(Color.yellow);
g.fillRect(x, y, 16, 16);
我设置了碰撞,让玩家在触摸它时获得分数,效果很好,但我如何让它在触摸后自行删除?因为它的点数一直在上升。
我唯一能想到的就是重新给它上色,让它看起来好像不存在,但那完全不是一回事。
如果您创建了一个对象,您可以使它等于 null。
rectObj = null;
如果您只是执行了一个 fillRect() 方法而没有创建实际对象,您可以将其移出面板或简单地将其涂成白色。但是,我希望您确实使用了一个对象,因为它会更简单、更有效。
您确实应该在某种级别或处理程序 class
中拥有 ArrayList
个对象来处理多个对象。这样你就可以很容易地 add
或 remove
它们,因为你需要使用 ArrayList
函数 add()
和 remove()
。有关实际删除对象的更多具体信息,请参阅此 . And for information on handling objects in a game see this 。
您应该有一个 Rectangle
class,或者 Coin
class,例如
public class Coin {
int xPos;
int yPos;
int width;
int height;
// For giving player points
int points;
// Constructors, etc
// e.g. public int getXPos(), public int getYPos()..
}
一开始,您会得到类似于 Coin
的 ArrayList
,例如
ArrayList<Coin> coins = new ArrayList<Coin>();
在你的画法中,
for (Coin c : coins) {
g.fillOval(c.getXPos(), c.getYPos(), c.getWidth(), c.getHeight());
}
当玩家与 Coin
碰撞时,您只需将其从 ArrayList
中移除。
为了使其更具可扩展性,您甚至可以定义一个接口 Collectible
,并使所有可收集的游戏内对象(例如 Coin
在这种情况下实现 Collectible
接口.
我的 java 游戏中有一个对象,它是一枚硬币,目前它只是一个用
制作的矩形g.setColor(Color.yellow);
g.fillRect(x, y, 16, 16);
我设置了碰撞,让玩家在触摸它时获得分数,效果很好,但我如何让它在触摸后自行删除?因为它的点数一直在上升。
我唯一能想到的就是重新给它上色,让它看起来好像不存在,但那完全不是一回事。
如果您创建了一个对象,您可以使它等于 null。
rectObj = null;
如果您只是执行了一个 fillRect() 方法而没有创建实际对象,您可以将其移出面板或简单地将其涂成白色。但是,我希望您确实使用了一个对象,因为它会更简单、更有效。
您确实应该在某种级别或处理程序 class
中拥有 ArrayList
个对象来处理多个对象。这样你就可以很容易地 add
或 remove
它们,因为你需要使用 ArrayList
函数 add()
和 remove()
。有关实际删除对象的更多具体信息,请参阅此
您应该有一个 Rectangle
class,或者 Coin
class,例如
public class Coin {
int xPos;
int yPos;
int width;
int height;
// For giving player points
int points;
// Constructors, etc
// e.g. public int getXPos(), public int getYPos()..
}
一开始,您会得到类似于 Coin
的 ArrayList
,例如
ArrayList<Coin> coins = new ArrayList<Coin>();
在你的画法中,
for (Coin c : coins) {
g.fillOval(c.getXPos(), c.getYPos(), c.getWidth(), c.getHeight());
}
当玩家与 Coin
碰撞时,您只需将其从 ArrayList
中移除。
为了使其更具可扩展性,您甚至可以定义一个接口 Collectible
,并使所有可收集的游戏内对象(例如 Coin
在这种情况下实现 Collectible
接口.