2017-10-03 9 views
1

2 개의 스프라이트가있는 스프라이트 시트가 있습니다. 각 스프라이트는 40x60입니다. 이미지의 전체 크기는 40x120입니다. 붉은 선은 첫 번째 스프라이트의 일부입니다. 나는 왜 내가 그것을 추가했는지 말해 줄께.XNA/Monogame을 사용하여 스프라이트 시트에서 스프라이트 그리기

enter image description here

이 두 번째 스프라이트를 그릴하려고 할 때 어떤 이유로, 그것은 항상 이전 스프라이트의 마지막 줄을 것으로 보인다. 나는 그것을 설명하기 위해 그 빨간 선을 그렸다.

은 2 스프라이트 끌어 내 코드입니다 :

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(); 

을 내가 프로그램을 실행할 때이는 모습입니다 : 내가 무슨 일을하고 있어요

enter image description here

어떤 아이디어 ?

참고 :이 예에서는 축척 = 6을 사용하고 있습니다. scale> 1 일 때이 문제가 항상 발생하기 때문에이 작업을 수행했습니다. scale = 1 인 경우, 항상 발생하지는 않습니다.

+1

가 두 번째 스프라이트를 선택할 때 사각형 Y 위치에 (61)를 사용하여 시도 되세요 (MonoGame 3.6 THO) : - SamplerState.PointClamp 내 spriteBatch.Begin에서 사용이

그것은 다음과 같다 해결을 위해 전화? – Steven

+0

그건 작동하지 않습니다. 스프라이트는 훨씬 더 겹칩니다. – LEM

+1

이 문제는 다음과 같은 몇 가지 가능한 솔루션으로 논의됩니다. https://gamedev.stackexchange.com/questions/45764/xna-2d-spritesheet-drawing-rendering-problem – Monacraft

답변

1

같은 문제가있었습니다.

SpriteBatch.Begin(SpriteSortMode.Deferred, BlendState.NonPremultiplied, SamplerState.PointClamp, null, null, null, viewMatrix); 
관련 문제