2013-12-03 3 views
0
protected override void Initialize() 
{ 
    graphics.PreferredBackBufferWidth = 720; 
    graphics.PreferredBackBufferHeight = 1080; 
    graphics.IsFullScreen = true; 
    graphics.ApplyChanges(); 
    Window.Title = "Game"; 
    base.Initialize(); 
} 

protected override void LoadContent() 
{ 
    spriteBatch = new SpriteBatch(GraphicsDevice); 
    Texture = Content.Load<Texture2D>("Sprite"); 
    position.X = 1; 
    position.Y = 520; 
} 

protected override void Update(GameTime gameTime) 
{ 
    if (Keyboard.GetState().IsKeyDown(Keys.Down)) 
     position.Y += 2; 
    if (Keyboard.GetState().IsKeyDown(Keys.Up)) 
     position.Y -= 2; 
    if (Keyboard.GetState().IsKeyDown(Keys.Right)) 
     position.X+= 2; 
    if (Keyboard.GetState().IsKeyDown(Keys.Left)) 
     position.X -= 2; 
    if (position.Y > 520) 
     position.Y = 520; 

    base.Update(gameTime); 
} 

и когда я добавитьSprite исчезает после добавления кода

if (position.Y < 1080) 
    position.Y = 1080; 

спрайт исчезает (извините за размещение такой длинный код, который я не знаю, что я сделал неправильно.) (для экономии места Я удалил большую часть белого пространства)

ссылки на изображение: http://i.imgur.com/WZwpGeE.png

ответ

1

Вашего компаратора переворачиваются.

Вы проверяете, находится ли позиция y меньше, чем 1080, а затем установите ее на 1080 (край экрана).

if (position.Y > 1080) 
{ 
position.Y = 1080; 
} 

должны делать то, что вы ожидали

0

Вы делаете

if (position.Y < 1080) 
    position.Y = 1080; 

и что это неправильно, потому что вы устанавливаете эту позицию из вашего экрана. Возможно, вы имеете в виду это:

if (position.Y > 1080) 
    position.Y = 1080; 
Смежные вопросы