2015-06-05 127 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.xposition.y价值观,否则,你将永远失去健康吧。你想要的东西,如:

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

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