【问题标题】:Spritebatch drawing in wrong positionSpritebatch 绘图位置错误
【发布时间】:2016-11-19 16:13:00
【问题描述】:

当我的wizardPos 变量清楚地把它放在屏幕中间时,为什么我的精灵画在左上角?

//in load content
wizardPos = new Vector2(graphics.PreferredBackBufferWidth /2, 700);
wizardChar = new Characters.Wizard(this, spriteBatch, wizardPos, wizardWalk1);


//in Draw method

 this.spriteBatch.Draw(tempWizard, wizardPos, null, Color.White, 0f, wizardPos, 1f, SpriteEffects.None, 0f);

【问题讨论】:

    标签: c# xna monogame spritebatch


    【解决方案1】:

    试试这个:

    this.spriteBatch.Draw(tempWizard, wizardPos, null, Color.White, 0f, Vector2.Zero, 1f, SpriteEffects.None, 0f);
    

    你的精灵的position实际上是你的精灵的origin的位置。因此,当您将origin 设置为wizardPos 时,origin 是相对于精灵设置的,而不是屏幕。因此,将originposition 设置为相同的值可以有效地相互抵消。

    origin 通常会在您的 sprite 范围内的某个位置,因为它也用于计算旋转等内容

    【讨论】:

    • 谢谢贝诺!工作完美。我不明白 origin 是如何工作的。欣赏它。
    猜你喜欢
    • 1970-01-01
    • 2013-12-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-26
    • 1970-01-01
    • 1970-01-01
    • 2018-11-28
    相关资源
    最近更新 更多