spriteBatch()가 나와 "클릭"하지 않으므로 내 머리카락을 찢을 준비가되었습니다. 나는이 정확한 상황에서 나의 사용을 다루는 온라인을 찾을 수 없다. 나는 믿을 수 없을만큼 간단한 것을 놓치고 있다고 믿게한다.다른 클래스의 Xna spriteBatch
놀랍게도 플레이어, 물리학 등을 제어하는 XNA 프로젝트의 플레이어가 있는데, 한 번에 한 단계 씩 진행합니다. 첫 단계 : 레벨에서 플레이어를 그립니다. 레벨 코드는 훌륭하게 작동합니다. 걱정할 필요가 없습니다. 하지만 나는 선수를 끌 수 없습니다.
필자가 페인트로 그린 스프라이트에 대한 기본적인 Texutre2D 텍스처가 있습니다. this 튜토리얼로가는, 난 그냥 다음을 수행 할 수 있어야한다 :
public void LoadContent()
{
spriteBatch = new SpriteBatch(GraphicsDevice);
playerSprite = Level.Content.Load<Texture2D>("player/pory");
}
public void Draw()
{
graphics.GraphicsDevice.Clear(Color.Beige);
// Draw the sprite.
spriteBatch.Begin(SpriteSortMode.BackToFront, BlendState.AlphaBlend);
spriteBatch.Draw(playerSprite, Position, Color.White);
spriteBatch.End();
}
그리고 그것은 단지 작동합니다. 하지만. 나는이 플레이어 클래스에서 몇 가지를 놓치고있다. 1) LoadContent()에서 GraphicsDevice
이 존재하지 않고 그냥 만들 수 없기 때문에 new SpriteBatch()
을 만들 수 없습니다. Game.cs에 나타나며 게임 자체를 의미하는 this
으로 초기화됩니다. 괜찮아. 하지만 Game.GraphicsDevice도 참조 할 수 없습니다.
기본적으로 전체 문제입니다. 그 밖의 모든 것은이 때문입니다. 나는 그 길을 찾을 수 없다. 아무도 시도하고 이것을 할 수있는 적절한 방법을 알고 있습니까? 이 기능을 제대로 사용하기 위해 내가 누락 된 부분을 정확하게 찾을 수없는 것 같습니다.
이 코드는 Player.cs의 일부이며, 프로젝트 내에있는 자체 파일입니다. – Eric
정확한 문제 때문에 귀하의 드로어 코드가 플레이어 클래스에 있어서는 안됩니다. 모든 렌더링 코드는이 목적을 위해 설계된 클래스를 사용해야합니다. 이 클래스는 하나의 인스턴스와 this.GraphicsDevice와 같은 필요한 객체에 대한 참조 만 가져야합니다. – ClassicThunder