2015-06-05 4 views
0

У меня есть небольшая проблема с моим здоровьем. Когда я перемещал свой персонаж, саундбар выскочил из экрана. Как я могу держать его на своем экране, что-то не нравится никуда. Но когда я перемещаю свой персонаж, он тоже будет двигаться.Бар здоровья в XNA

Вот мой код:

private Texture2D container, lifebar; 
    public Vector2 position; 
    public int fullHealth; 
    public int currentHealth; 
    public Healthbar(ContentManager content) 
    { 
     LoadContent(content); 
     fullHealth = lifebar.Width; 
     currentHealth = fullHealth; 
    } 

    private void LoadContent(ContentManager content) 
    { 
     container = content.Load<Texture2D>("Untitled"); 
     lifebar = content.Load<Texture2D>("Health 2"); 

    } 

    public void Update() 
    { 
     if (Keyboard.GetState().IsKeyDown(Keys.Right)) 
      position.X += 3; 
     if (Keyboard.GetState().IsKeyDown(Keys.Left)) 
      position.X -= 3; 
    } 

    public void Draw(SpriteBatch spriteBatch) 
    { 
     spriteBatch.Draw(container, position ,Color.Red); 
     spriteBatch.Draw(lifebar, position, new Rectangle((int)position.X, (int)position.Y, currentHealth, lifebar.Height), Color.Pink); 
    } 

ответ

0

Вы должны проверить значения position.x и position.y с экраном границами иначе вы всегда будете терять бар здоровья. Вы хотите что-то вроде:

if (position.X <= 10) 
    position.X = 10; 

if (position.X >= 1270) 
    position.X = 1270; 

и т.д.

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

  • Нет связанных вопросов^_^