При запуске приложения объект появляется в данной позиции (данный вектор). Но когда я свожу к минимуму окно моногейма и снова его открываю, объект находится в верхнем левом углу.Сброс позиции при минимизации
Почему это происходит?
Примечание: это мой Draw
метод:
public virtual void Draw(GameTime gameTime, SpriteBatch spriteBatch)
{
// Position is the object position
spriteBatch.Draw(textureImage, position, new Rectangle(
(currentFrame.X * frameSize.X),
(currentFrame.Y * frameSize.Y),
frameSize.X, frameSize.Y),
Color.White, 0, Vector2.Zero, 2, SpriteEffects.None, 0);
}
Как стартовая позиция рассчитывается следующим образом:
// Vector2 position is the starting position for the object
public PlayerMovement(Texture2D textureImage, Vector2 position, Point frameSize, int collisionOffSet, Point currentFrame, Point startFrame, Point sheetSize, float speed, float speedMultiplier, float millisecondsPerFrame)
: base(textureImage, position, frameSize, collisionOffSet, currentFrame, startFrame, sheetSize, speed, speedMultiplier, millisecondsPerFrame)
{
children = new List<Sprite>();
}
Я использую Vector2 direction
знать, в каком направлении спрайт облицовочный:
public abstract Vector2 direction
{
get;
}
Я использую get
в своих PlayerMovement
класс и вернуть inputDirection * speed
(inputDirection
является Vector2
)
Наконец в моем Update
методе, я position += direction
и я также проверить, если игрок не касаясь границ экрана (он не может двигаться на экране.).
, как это currentFrame и Рассчитывается значение frameSize? –
'currentFrame' - текущий кадр в анимации. Я назначил переменную как долго игра ждет, когда она отображает следующий спрайт в анимации. «FrameSize» - это как большой спрайт в анимации (сколько пикселей в высоту и в witdth). Но это не проблема, я думаю, потому что анимация работает хорошо. – Jelle
Я проверяю 'IsActive' в основном классе' Game'? – Jelle