Java Spritebatch不显示某些精灵

Java Spritebatch不显示某些精灵,java,libgdx,spritebatch,Java,Libgdx,Spritebatch,我正在创建一个自上而下的射击游戏,并使用单个精灵批渲染多个精灵 public void render(SpriteBatch sb) { // SHOW PLAYER HP Game.drawString("Hp: " + currentHp, 50, 450); // SHOW CURRENT WEAPON Game.drawString("Weapon: " + weapons.get(currentWeapon).getClass().getSimpleNa

我正在创建一个自上而下的射击游戏,并使用单个精灵批渲染多个精灵

public void render(SpriteBatch sb) {
    // SHOW PLAYER HP
    Game.drawString("Hp: " + currentHp, 50, 450);
    // SHOW CURRENT WEAPON
    Game.drawString("Weapon: " + weapons.get(currentWeapon).getClass().getSimpleName(), 50, 430);
    // SHOW CURRENT WEAPON + BULLET
    Game.drawString("Current Ammo: " + weapons.get(currentWeapon).getCurrentBullet(), 50, 410);
    // SHOW FPS
    Game.drawString(String.valueOf("FPS: " + Gdx.graphics.getFramesPerSecond()), 50, 390);
    // SHOW PLAYER SPEED
    Game.drawString("Player Speed: " + (int) (body.getLinearVelocity().x * Game.PPM) + " , " + (int) (body.getLinearVelocity().y * Game.PPM), 50, 370);

    // RENDER PLAYER SPRITE
    sprite.draw(sb);

    // RENDER WEAPON
    weapons.get(currentWeapon).render(sb);

    // RENDER BOMBHELD
    bombHeld.render(sb);

    // RENDER BULLETS
    for (int i = 0; i < bullets.size(); i++) {
        bullets.get(i).render(sb);
    }
}
问题是spritebatch不渲染Bombhold,当我在该点结束spritebatch并再次使用begin时,它工作正常,显示sprite

这样结束和开始很好:

// RENDER PLAYER SPRITE
    sprite.draw(sb);

    // RENDER WEAPON
    weapons.get(currentWeapon).render(sb);
    sb.end();
    sb.begin();
    // RENDER BOMBHELD
    bombHeld.render(sb);

    // RENDER BULLETS
    for (int i = 0; i < bullets.size(); i++) {
        bullets.get(i).render(sb);
    }
//渲染播放器精灵
精灵画(某人);
//渲染武器
获得(当前的武器)给予(某人);
(某人结束);
某人开始做某事;
//使爆炸停止
使(某人);
//渲染子弹
对于(int i=0;i
我看了这堂课,我确信这堂课没有什么错。 没有一个精灵与另一个重叠

spritebatch是否有精灵限制或类似的限制?我是否应该使用多个开始和结束


谢谢您的帮助。

SpriteBatch有一个限制,但是一旦达到这个限制,它应该自动调用
flush
。你能展示一下
游戏.抽绳法吗?你是怎么画那些
字符串的?在调用另一个批处理的
begin
之前,请记住为该批处理调用
end
。一次只能有一个活动的
Batch
public static void drawString(String str,float x,float y){testSb.begin();testFont.draw(testSb,str,x,y);testSb.end();}
我临时创建了drawString,但我意识到我在spritebatch中使用了spritebatch。我现在修复了它,但仍然是相同的问题。多亏了你,我意识到我在做其他事情,而不是渲染精灵。我编辑了渲染方法并对所有内容进行了排序。它现在工作正常。你能把解决方案作为答案发布吗?它将来可能会帮助别人。谢谢
// RENDER PLAYER SPRITE
    sprite.draw(sb);

    // RENDER WEAPON
    weapons.get(currentWeapon).render(sb);
    sb.end();
    sb.begin();
    // RENDER BOMBHELD
    bombHeld.render(sb);

    // RENDER BULLETS
    for (int i = 0; i < bullets.size(); i++) {
        bullets.get(i).render(sb);
    }