2017-10-03 21 views
1

私は2スプライトのスプライトシートを持っています。各スプライトは40x60です。画像の合計サイズは40x120です。 このように見えます(赤い線は第1スプライトの一部です)。私はなぜそれを追加したのか、もう一度教えてあげます。XNA/Monogameを使用してスプライトシートからスプライトを描画する

enter image description here

なお、第2のスプライトを描画しようとしたときに何らかの理由で、それは常に前のスプライトの最後の行を取るだろうと思われます。私はそれを描くためにその赤い線を引いた。

これは第二のスプライト描画私のコードです:私が間違ってやっている任意のアイデアを

enter image description here

Rectangle rect = new Rectangle(0, 60, 40, 60); // Choose 2nd sprite 
Vector2 pos = new Vector2(100, 100); 
Vector2 origin = new Vector2(0, 0); 

spriteBatch.Begin(); 
spriteBatch.Draw(mSpriteTexture, pos , rect, Color.White, 0.0f, origin, 6, SpriteEffects.None, 0.0f); 
spriteBatch.End(); 

をそして、これは私がプログラムを実行すると、それがどのように見えるかです?

注:この例では、スケール= 6を使用しています。スケール> 1のときにこの問題が常に起こると思われるので、私はこれを行いました。スケール= 1の場合、常に発生するとは思われません。

+1

は、あなたが二スプライトを選択する際のRectangle Y位置に61を使用してみましたか? – Steven

+0

それは動作しません。スプライトはさらに重複します。 – LEM

+1

この問題はいくつかの可能な解決策でここで議論されています:https://gamedev.stackexchange.com/questions/45764/xna-2d-spritesheet-drawing-rendering-problem – Monacraft

答えて

1

同じ問題がありました。私spriteBatch.Beginで使用SamplerState.PointClamp - それはこのようになり、それを修正するために

を呼び出します(MonoGame 3.6カントー)

SpriteBatch.Begin(SpriteSortMode.Deferred, BlendState.NonPremultiplied, SamplerState.PointClamp, null, null, null, viewMatrix); 
関連する問題