2014-11-25 4 views
0

Возможно ли установить положение спрайта в то же положение другого перемещаемого спрайта.Как установить положение спрайта в положение другого спрайта?

Так что я хочу, чтобы установить "sprite.position" к той же позиции, что мой класс символов находится в:

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

     } 
+0

Конечно, это возможно. Как насчет вашего подхода, с которым вы столкнулись? – BradleyDotNET

+0

В моем Game1.cs я попытался вызвать «bullet.position = Character.position;» но это не работает – goedkoop

+0

И что не работает над этим? Не удалось ли присвоение? «Это не работает» ** не является проблемой **. Pro tip: У вас нет одной строки с «неработающим» комментарием в гигантской стене кода ни с чем другим. * Никто никогда его не увидит *. Сделайте MCVE и вызовите * точно * то, что не работает * в теле самого вопроса *. – BradleyDotNET

ответ

0

Как было предложено в комментариях, когда вы говорите «это не работает», вам нужно четко понимать, что означает «не работает» на самом деле. Например, вы получаете ошибку компиляции? Вы получаете исключение во время выполнения? Является ли игра запущенной, но она не делает то, что вы ожидаете (логическая ошибка)?

Тем не менее, вот моя догадка относительно того, что могло бы идти дальше:

  • Я не знаю, если приведенный выше код является полным, но пуля и игрок не экземпляр в любом месте. Вам нужно «новые» экземпляры перед их использованием.
  • Вы используете «bullet.position», где bullet - это экземпляр, но затем вы используете «Character.position», где Character является классом. Вместо этого вы намеревались использовать «player.position»?
  • Этот код запускается только один раз, что означает, что пуля будет установлена ​​в том же положении, что и символ. Если вы намерены, чтобы позиция пули всегда была такой же, как и у персонажа, вам нужно постоянно повторно назначать значение bullet.position для каждого кадра.

Но самое главное - научиться задавать вопросы, чтобы сообщество здесь могло помочь вам.

Смежные вопросы