2014-11-25 5 views
0

스프라이트의 위치를 ​​이동중인 다른 스프라이트의 정확한 위치로 설정할 수 있습니까?스프라이트의 위치를 ​​다른 스프라이트의 위치로 설정하는 방법은 무엇입니까?

Character.cs :

class Character 
    { 
     Texture2D texture; 
     public Vector2 position; 
     Vector2 velocity; 

     public Character(Texture2D newTexture, Vector2 newPosition) 
     { 

      texture = newTexture; 
      position = newPosition; 

     } 
     public void Update(GameTime gameTime) 
     { 
      position += velocity; 

     } 

     public void Draw(SpriteBatch spriteBatch) 
     { 
      spriteBatch.Draw(texture, position, Color.White); 
     } 

    } 

은 Game1.cs :

public class Game1 : Microsoft.Xna.Framework.Game 
    { 


     Bullet bullet; 

     Character player; 


     protected override void Initialize() 
     { 

      allSprites = new List<ISprite>(); 
      allSpriteObstakels = new List<ISprite>(); 

      bullet.position = Character.position; // not working 




      base.Initialize(); 
     } 

     } 

그래서 나는 내 클래스의 캐릭터에 같은 위치를 "sprite.position"을 설정하려면

+0

물론 가능합니다. 당신의 접근 방식은 당신에게 문제가 있습니까? – BradleyDotNET

+0

내 Game1.cs에서 "bullet.position = Character.position;"을 호출하려고했습니다. 하지만 이것은 작동하지 않습니다. – goedkoop

+0

그리고 그것에 대해 어떻게 작동하지 않습니까? 과제가 실패 했습니까? "작동하지 않습니다."** 문제는 아닙니다 **. 프로 팁 : 다른 코드가없는 거대한 코드 벽에 "작동하지 않는"주석이있는 한 줄을 사용하지 마십시오. * 아무도 그것을 볼 수 없습니다 *. MCVE를 만들고 * 질문의 본문에서 * 작동하지 않는 것을 정확하게 * 호출하십시오. – BradleyDotNET

답변

0

의견에서 제안했듯이 "작동하지 않습니다"라고 말하면 실제로 작동하지 않는 것이 무엇인지 분명히해야합니다. 예를 들어, 컴파일 오류가 발생합니까? 런타임 예외가 발생합니까? 게임이 실행되고 있지만 예상 한대로 작동하지 않습니다 (논리적 오류)? 말했다

, 여기에 갈 수있는 무엇을 나의 추측이다 : 위의 코드가 완료하지만 총알과 플레이어가 어디 인스턴스화하지 않을 경우 나도 몰라

  • . 인스턴스를 사용하기 전에 인스턴스를 "새로 작성"해야합니다.
  • 글 머리 기호가 인스턴스 인 "bullet.position"을 사용하지만 Character가 클래스 인 경우 "Character.position"을 사용하고 있습니다. 대신에 "player.position"을 사용 하시겠습니까?
  • 이 코드는 한 번만 실행됩니다. 즉, 글 머리 기호가 문자와 동일한 위치로 설정됩니다. 총알 위치가 항상 문자와 같을 경우, 모든 프레임마다 bullet.position 값을 계속해서 다시 지정해야합니다.

하지만 가장 중요한 것은 여기 커뮤니티가 여러분을 도울 수 있도록 질문하는 법을 배우는 것입니다.

관련 문제