添加代码后,精灵会消失

时间:2013-12-03 16:16:34

标签: c# xna xna-4.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);
}

当我添加

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

精灵消失了 (抱歉发布这么长的代码,我不知道我做错了什么。) (为了节省空间,我删除了大部分空白区域)

图片链接:http://i.imgur.com/WZwpGeE.png

2 个答案:

答案 0 :(得分:1)

你的比较器被翻转了。

您正在检查y位置是否小于1080,然后将其置于1080(屏幕边缘)。

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

应该做你期望的事情

答案 1 :(得分:0)

你在做什么

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

这是错误的,因为你正在将这个位置设置在屏幕之外。 也许你的意思是:

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