我一直在努力用MonoDevelop和MonoGame写一个非常简单的游戏。 我试图让一个敌人角色在一条直线上穿过屏幕。
到目前为止,我已编写此代码来执行此操作:
//draw enemy on screen
int enemyYPosition = 720;
int enemyXPosition = 1200;
drawEnemyRectangle.Y = enemyYPosition / 2;
drawEnemyRectangle.X = enemyXPosition;
if (enemyXPosition > 0)
{
enemyXPosition -= 50;
}
else
{
enemyXPosition = 1200;
}
然而,当我运行游戏时,敌人出现在屏幕的中间右边,但它不会移动。
我做错了什么?
我的其余代码可以在这里找到:http://pastebin.com/gVEAkMWa
答案 0 :(得分:1)
确保您的初始化代码与更新代码分开。
您的更新方法如下所示:
public void Update(GameTime gameTime)
{
//The rest of your update code here
drawEnemyRectangle.Y = enemyYPosition / 2;
drawEnemyRectangle.X = enemyXPosition;
if (enemyXPosition > 0)
{
enemyXPosition -= 50;
}
else
{
enemyXPosition = 1200;
}
}
然后,您的变量将在其他位置初始化,例如:
int enemyYPosition;
int enemyXPosition;
public Game1()
{
enemyYPosition = 720;
enemyXPosition = 1200;
}
这当然是猜测,因为你没有提供太多代码。
看完你的完整代码后,更新,这似乎就是这个问题。