2015-01-08 4 views
1

XNA를 사용하여 화면에 텍스처를 그리는 것으로 알려져 있습니다. 나는 단지 이것을 작동시킬 수 없다. 텍스처를 올바르게로드합니다.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); 
} 

공격 오브젝트 그리기 : 상기 .draw 방법 작품

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

감촉 위치 변수. foreach 루프의 특정 텍스처를 사용하지 마십시오.

아이디어가 있으십니까?

+0

작동하지 않는 기능은 무엇입니까? 예외가 발생하거나 화면에 표시되지 않습니까? 디버거에서는'position'과'SpriteRectangle' 변수가 합리적입니까? – BradleyDotNET

+0

SpriteRectangle은 0입니다. 그러나 그려진 스프라이트에 대해서도 마찬가지입니다. 그리고 네, 문제는 아무런 오류가 없거나 무엇이든합니다. 그것은 단지 표시되지 않지만 업데이트 (주위를 이동) 않습니다. – Kraishan

+0

호기심에서 볼 ​​수 없다면 어떻게 움직이는 지 알 수 있습니까? – BradleyDotNET

답변

1

코드가 올바르게 표시되므로 이 그려집니다.이 그려집니다.

다른 스프라이트 나 배경처럼 다른 것이 그 위에 그려져 있지 않은지 확인하십시오. 이것은 너무 빨리 일어나서 전혀 그려지지 않은 것처럼 보일 것입니다.

관련 문제