Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/311.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 2D游戏,随机创建的对象_Java_Android_Libgdx - Fatal编程技术网

Java 2D游戏,随机创建的对象

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

我在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 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
    }
}