【问题标题】:XNA: Object not drawn on screenXNA:对象未在屏幕上绘制
【发布时间】:2015-01-08 21:53:47
【问题描述】:

我以使用 XNA 在屏幕上绘制纹理而闻名。我只是无法让它工作。 我确实正确加载了纹理。

    protected override void Draw(GameTime gameTime)
    {
        spriteBatch.Begin(SpriteSortMode.Deferred, null, null, null, null, null,
            selectedLevel.GetCamera().getViewMatrix(new Vector2(1.0f)));

        graphics.GraphicsDevice.Clear(Color.Black);
        foreach (MovableObject movableObject in selectedLevel.movableObjects)
        {
            if (movableObject is Enemy)
            {
                Enemy enemy = (Enemy)movableObject;
                ThrowAttack attack = ((ThrowAttack)enemy.getAttack());
                if (attack != null && attack.getThrowObject() != null)
                {
                    attack.getThrowObject().Texture = TextureLoader.GetInstance().GetTexture(attack.getThrowObject().TextureName);
                    attack.getThrowObject().Animate(Direction.Right, gameTime);
                    attack.getThrowObject().Walk(Direction.Right, 2f);
                    attack.getThrowObject().Update(gameTime);
                    attack.getThrowObject().Draw(spriteBatch);
                }
            }
        }
spriteBatch.End();
base.Draw(gameTime);
}

攻击对象中的平局:

public void Draw(SpriteBatch spriteBatch)
{
    spriteBatch.Draw(texture, position, SpriteRectangle, Color.White, 0f, Vector2.Zero, 1.0f, SpriteEffects.None, 0f);
}

上述 .draw 方法中的纹理和位置变量有效。只是不使用 foreach 循环中的特定纹理。

有什么想法吗?

【问题讨论】:

  • 什么不起作用?它会抛出异常还是只是没有出现在屏幕上? positionSpriteRectangle 变量在调试器中是否合理?
  • SpriteRectangle 为 0,0。但也在绘制的精灵上。是的,问题是我没有错误/无论如何。它只是没有显示,但会更新(四处移动)。
  • 出于好奇,如果你看不到它,你怎么知道它在四处移动?
  • 魔术!哈哈,不,我调试了位置。它确实发生了变化(一直水平变化)。但奇怪的是,一切都是用这种方法绘制的。我猜不是这个纹理?这很奇怪,因为我在其他地方使用了这种纹理并且确实显示了。
  • 那就不知道了。我唯一能想到的另一件事是有什么东西正在擦除/绘制它。

标签: c# xna draw


【解决方案1】:

您的代码看起来是正确的,所以它可能正在被绘制。

确保没有其他任何东西(如另一个精灵或背景)在上面绘制。这将发生得如此之快,以至于看起来根本没有被绘制。

【讨论】:

    猜你喜欢
    • 2021-06-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多