gpt4 book ai didi

java - Andengine Sprite 数组错误

转载 作者:行者123 更新时间:2023-12-01 05:01:33 24 4
gpt4 key购买 nike

我是 Android 游戏开发新手,我正在使用 AndEngine GLES 2 Java。我收到一个错误,该错误与我的数组(face1)具有非法索引有关。我无法解决这个问题,所以我需要一些帮助。代码:

@Override
public Scene onCreateScene() {
this.mEngine.registerUpdateHandler(new FPSLogger());

final Scene scene = new Scene();
scene.setBackground(new Background(0.09804f, 0.6274f, 0.8784f));
final float centerX1 = 400;
final float centerY1 = 50;
final Sprite[] face1 = new Sprite[i];
face1[i] = new Sprite(centerX1, centerY1, this.m2FaceTextureRegion, this.getVertexBufferObjectManager());
final float centerX = (CAMERA_WIDTH - this.mFaceTextureRegion.getWidth()) / 2;
final float centerY = (CAMERA_HEIGHT - this.mFaceTextureRegion.getHeight()) / 2;
final Sprite face = new Sprite(centerX, centerY, this.mFaceTextureRegion, this.getVertexBufferObjectManager()) {
@Override
public boolean onAreaTouched(final TouchEvent pSceneTouchEvent, final float pTouchAreaLocalX, final float pTouchAreaLocalY) {

if(!face1[i].collidesWith(this))
{
x+=1;
this.setPosition(x, 50 );
}
else
{
x=60;
this.setPosition(x, 50 );
}
return true;
}
};

scene.attachChild(face);
scene.registerTouchArea(face);
scene.setTouchAreaBindingOnActionDownEnabled(true);
face.setScale(4);
scene.attachChild(face1[i]);
face1[i].setScale(2);


return scene;
}

错误:

11-11 12:12:42.690: E/AndEngine(13291): java.lang.ArrayIndexOutOfBoundsException

谢谢。

最佳答案

从日志来看,com.example.sheeprun1.BaseActivity.onCreateScene(BaseActivity.java:89) 似乎引发了异常。你能检查一下这一行的代码以及那里执行的数组操作吗...

EDIT1:当你创建数组final Sprite[]face1 = new Sprite[i];时,此时i的值不应该为零。

当您访问数组中的值时,请务必检查索引是否小于数组的大小/长度

if(face!=null && i<face.length){
face1[i] = new Sprite(centerX1, centerY1, this.m2FaceTextureRegion, this.getVertexBufferObjectManager());
}

关于java - Andengine Sprite 数组错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13331016/

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