Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/image/5.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 为同一对象绘制的不同图像_Java_Image_Arraylist_Logic_Side Scroller - Fatal编程技术网

Java 为同一对象绘制的不同图像

Java 为同一对象绘制的不同图像,java,image,arraylist,logic,side-scroller,Java,Image,Arraylist,Logic,Side Scroller,我在游戏中的图像有问题。我正在使用由我的老师编写的ImageLoader类。我创建了两个图像变量,如下所示: private static Image healthPic = ImageLoader.loadCompatibleImage("Health.gif"); private static Image enemyRocket = ImageLoader.loadCompatibleImage("EnemyShip2Rocket.png");; 要创建运行状况通电,我使用arraylis

我在游戏中的图像有问题。我正在使用由我的老师编写的ImageLoader类。我创建了两个图像变量,如下所示:

private static Image healthPic = ImageLoader.loadCompatibleImage("Health.gif");
private static Image enemyRocket = ImageLoader.loadCompatibleImage("EnemyShip2Rocket.png");;
要创建运行状况通电,我使用arraylist,并使用以下代码填充它:

if (frameCount % 951 == 0){
        Random r = new Random();
        int randX = r.nextInt(width - 20)+10;
        healthP.add(new GameObject(randX, -400, 20,20,healthPic,8,0));
}
enemyWH是一个用于宽度和高度的变量。等于35。 我用这个代码填充敌人的火箭阵列列表

if (frameCount % 300 == 0){
            for (int i = army.size()-1;i>=0;i--){
                EnemyShip curEnemy = army.get(i);
                rocketP.add(new GameObject(curEnemy.getR().x, curEnemy.getR().y, 20,20, enemyRocket,5,d));
    }
}

20和20是宽度和高度,x和y是敌人所在的确切位置和时间,enemyRocket是图像变量,5是y速度(它在屏幕上移动的速度),d是它对玩家造成的伤害。我的问题是,随着游戏的进行,在敌人全部发射火箭后大约一秒钟左右,随机地,与火箭相关的图片变量突然切换到健康加电图片,因此看起来好像是健康加电,但实际上是敌人的火箭。图片正在从火箭切换到健康通电

通过重写方法和使用不同的对象(而不是游戏对象)修复了我自己的问题