gpt4 book ai didi

java - 敌人生成 Android

转载 作者:行者123 更新时间:2023-12-01 15:22:00 26 4
gpt4 key购买 nike

我正在制作一款 Android 游戏,它会在屏幕顶部以一定的间隔生成敌人 Sprite 。没有语法错误,但是当我运行游戏时,它会因为这个函数而崩溃:

public void updateEnemies() {
if (numEnemiesCreated == numVisibleEnemies) {
if (timeLastCreatedEnemy + 1000 < System.currentTimeMillis()) {
timeLastCreatedEnemy = System.currentTimeMillis();
boolean createdNewEnemy = false;

for (int i = 0; i < this.numVisibleEnemies; i++) {
if (createdNewEnemy == false) {
if (holderEnemy[i].isDisposed()) {
this.generateNewEnemy(i);
createdNewEnemy = true;
}
}
}
}

for(int i = 0; i<numVisibleEnemies; i++){
if(!holderEnemy[i].isDisposed()){
holderEnemy[i].move();
}
}
} else {
holderEnemy[numEnemiesCreated] = new Enemy(context, 0, 0);
numEnemiesCreated++;
}
}

我已经尝试了一切,但就是无法让它发挥作用!这是我的日志猫崩溃报告:

05-25 18:49:13.031: W/dalvikvm(6736): threadid=9: thread exiting with uncaught exception (group=0x40015578)
05-25 18:49:13.035: E/AndroidRuntime(6736): FATAL EXCEPTION: Thread-10
05-25 18:49:13.035: E/AndroidRuntime(6736): java.lang.NullPointerException
05-25 18:49:13.035: E/AndroidRuntime(6736): at com.jlennon.gametest.EnemySpawn.updateEnemies(EnemySpawn.java:49)
05-25 18:49:13.035: E/AndroidRuntime(6736): at com.jlennon.gametest.MainGamePanel$AnimationThread.update(MainGamePanel.java:94)
05-25 18:49:13.035: E/AndroidRuntime(6736): at com.jlennon.gametest.MainGamePanel$AnimationThread.run(MainGamePanel.java:61)

最佳答案

由于您收到的未捕获异常是 NullPointerException,因此您需要检查 holderEnemy 内的每个元素是否都实例化为正确的类型。您无法取消引用 null - 这是数组中默认给出的内容。

稍微阐述一下这一点,如果您采用一个元素数组,例如:

Enemy[] holderEnemy = new Enemy[1000];

这不足以实例化数组。您将需要循环数组并为每个元素创建新的 Enemy。否则,您需要保证在 [0, numVisibleEnemies) 的范围内,您的数组元素已正确实例化。

(请注意,我猜测对象类型,但原则适用。)

关于java - 敌人生成 Android,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10763061/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com