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;
精灵消失了 (抱歉发布这么长的代码,我不知道我做错了什么。) (为了节省空间,我删除了大部分空白区域)
答案 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;