Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/220.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 如何将雪碧添加到andengine中的某个点?_Java_Android_Andengine - Fatal编程技术网

Java 如何将雪碧添加到andengine中的某个点?

Java 如何将雪碧添加到andengine中的某个点?,java,android,andengine,Java,Android,Andengine,我正在使用此方法在andengine中将新的精灵添加到我的场景中 private void addBody(final float pX, final float pY) { final Scene scene = this.mEngine.getScene(); if (BodyCount >= MAX_BODIES) return; BodyCount++; final Sprite matSprite; final Body body;

我正在使用此方法在andengine中将新的精灵添加到我的场景中

private void addBody(final float pX, final float pY) {
    final Scene scene = this.mEngine.getScene();
    if (BodyCount >= MAX_BODIES) return;
    BodyCount++;
    final Sprite matSprite;
    final Body body;
    if(BodyCount % 2 == 0) {
    matSprite = new Sprite(pX, pY,
    mTargetTextureRegion);
    body = PhysicsFactory.createBoxBody(mPhysicsWorld,
    matSprite, BodyType.DynamicBody,
    FIXTURE_DEF);
    } else {
    matSprite = new Sprite(pX, pY,
    mTargetTextureRegion);

    body = PhysicsFactory.createCircleBody(
            mPhysicsWorld, matSprite,
            BodyType.DynamicBody, FIXTURE_DEF);
            }
            scene.getLastChild().attachChild(matSprite);
            mPhysicsWorld.registerPhysicsConnector(
            new PhysicsConnector(matSprite, body, true, true));
            }
在这里,我调用该方法向场景中添加实体 但什么也没发生。我记录日志以查看代码是否正在运行,并返回true

private void createSpriteSpawnTimeHandler(){
    TimerHandler spriteTimerHandler;
    float mEffectSpawnDelay = 1f;
    Random rand = new Random();

    final float x = (int) mCamera.getWidth() + mTargetTextureRegion.getWidth();
    int minY = mTargetTextureRegion.getHeight();
    int maxY = (int)(mCamera.getHeight() - mTargetTextureRegion.getHeight());
    int rangeY = maxY - minY; 
    final float y = rand.nextInt(rangeY) + minY;

    spriteTimerHandler = new TimerHandler(mEffectSpawnDelay,true,new ITimerCallback(){

        @Override
        public void onTimePassed(TimerHandler pTimerHandler) {
            Log.e("MainGame", "Adding Body");
            addBody(x,y);

        }


    });
    getEngine().registerUpdateHandler(spriteTimerHandler);

}
有什么问题吗?或者最好的方法是什么?
我想做的是将精灵添加到屏幕顶部,然后沿着屏幕向下流动,最后离开屏幕。

当你说“什么都没发生”时,你的意思是你在视觉上看不到任何事情发生吗?如果调用addBody方法,您可能需要仔细检查正在传递的(x,y)值(它们是否在屏幕外?),以及是否正确创建了精灵(有效纹理?)并将其添加到场景中进行渲染(如果这不是自动发生的)。您正在将精灵附加到
场景。getLastChild()
。您可能需要检查这是否是要附加到的实体。看起来你的x,y可能是全局的,所以也许你只是想附加到
场景
。当你说“什么都没发生”时,你的意思是你在视觉上看不到任何事情发生吗?如果调用addBody方法,您可能需要仔细检查正在传递的(x,y)值(它们是否在屏幕外?),以及是否正确创建了精灵(有效纹理?)并将其添加到场景中进行渲染(如果这不是自动发生的)。您正在将精灵附加到
场景。getLastChild()
。您可能需要检查这是否是要附加到的实体。看起来您的x,y可能是全局的,所以您可能只想附加到
场景