Java 如何将雪碧添加到andengine中的某个点?
我正在使用此方法在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;
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可能是全局的,所以您可能只想附加到场景
。