Java 2D游戏,随机创建的对象
我在libgdx做了一段时间的游戏。我的项目包括一艘宇宙飞船和一些流星 这是我上的课Java 2D游戏,随机创建的对象,java,android,libgdx,Java,Android,Libgdx,我在libgdx做了一段时间的游戏。我的项目包括一艘宇宙飞船和一些流星 这是我上的课 public class asteroid { public static final int var=1080-150; private Sprite sprite_asteroid; private int posAsteroidx,posAsteroidy; Rectangle asteroidBounds=new Rectangle(); private Random rand; public ast
public class asteroid {
public static final int var=1080-150;
private Sprite sprite_asteroid;
private int posAsteroidx,posAsteroidy;
Rectangle asteroidBounds=new Rectangle();
private Random rand;
public asteroid(){
sprite_asteroid=new Sprite(new Texture(Gdx.files.internal("asteroid.png")));
rand = new Random();
posAsteroidx=rand.nextInt(var);
posAsteroidy=1920+rand.nextInt(1920);
asteroidBounds.set(posAsteroidx,posAsteroidy,150,150);
}
public void reposition(){
posAsteroidy-=10;
}
在游戏屏幕中,我创建了一个数组<代码>私有数组小行星代码>
并为(inti=1;i添加了一些
,防止重叠的最佳方法类似于检查船舶碰撞的方法。您需要在小行星之间循环,并将其与其他小行星进行比较,以查看它们是否重叠
试着这样做:
for (int i = 0; i < asteroids.size() - 1; i++) {
for (int j = i + 1; j < asteroids.size(); j++) {
if (asteroids[i].asteroidBounds.overlaps(asteroids[j].asteroidBounds))
//Insert collision handling code here
}
}
for(int i=0;i
您必须稍微修改一下if语句。我不确定是否正确使用了您的overlaps
函数或astroidBounds
。
希望这能有所帮助!为什么不使用box2d?它是一个简单的物理引擎,可以以正确的方式处理所有问题,并且经过优化。。
for (int i = 0; i < asteroids.size() - 1; i++) {
for (int j = i + 1; j < asteroids.size(); j++) {
if (asteroids[i].asteroidBounds.overlaps(asteroids[j].asteroidBounds))
//Insert collision handling code here
}
}