首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >精灵引擎数组错误

精灵引擎数组错误
EN

Stack Overflow用户
提问于 2012-11-11 20:15:20
回答 1查看 766关注 0票数 1

我是安卓游戏开发的新手,我使用的是AndEngine GLES2Java。我得到一个错误,这与我的数组(Face1)有一个非法的索引有关。我不能解决这个问题,所以我需要一些帮助。代码:

代码语言:javascript
复制
@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;
}

错误:

代码语言:javascript
复制
11-11 12:12:42.690: E/AndEngine(13291): java.lang.ArrayIndexOutOfBoundsException

谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-11-11 21:46:53

从日志中看,似乎在com.example.sheeprun1.BaseActivity.onCreateScene(BaseActivity.java:89)引发了异常。你能检查这一行的代码和在那里执行的是什么数组操作吗?

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

访问数组中的值时,请始终检查索引是否小于数组的大小/长度

代码语言:javascript
复制
if(face!=null && i<face.length){
face1[i] = new Sprite(centerX1, centerY1, this.m2FaceTextureRegion, this.getVertexBufferObjectManager());
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13331016

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档