我正在制作垂直射击游戏,但在碰撞检测方面遇到了问题。碰撞是通过矩形方法“相交”检测到的,但为了跟踪所有可能发生碰撞的东西,我需要 Arraylists 来跟踪所有子弹和敌舰。 Enemy 和 Player 类都产生 Bullets(它们也有自己的类),所以我想在我的 GameView 类中有 2 个不同的 Arraylist(它控制游戏图形,并希望在我完成这里时发生碰撞)。
允许 Bullets 在生成时添加到各自的 ArrayLists 的最有效方法是什么?
子弹级:
public class Bullet extends Location{
private Fights bulletOwner;
private int damage;
private int velocity;
public Bullet(Fights owner, int dmg, Rectangle loca)
{
super(loca);
bulletOwner = owner;
damage = dmg;
}
public Fights getOwner(){return bulletOwner;}
public int getDamage(){return damage;}
public int getVelocity(){return velocity;}
位置类
import java.awt.Rectangle;
public class Location {
protected Rectangle loc;
public Location (Rectangle location)
{
loc = location;
}
public Rectangle getLocation()
{
return loc;
}
public void updateLocation(Rectangle location)
{
loc = location;
}
}
最佳答案
您可以拥有一个包含位置数组列表的 GameState 类,并将 GameState 实例作为参数传递给 Location 派生类的构造函数。
关于java - 如何使 Arraylist 可供多个类访问?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6238372/