【发布时间】:2014-06-13 15:07:21
【问题描述】:
这是我的一段代码,它会从左到右移动 Play Field,每次碰到边时都会向下移动一个。
private void moveMonsterPlayField()
{
if (monsterPlayField.DirectionRight)
{
monsterPlayField.X++;
if (monsterPlayField.X + monsterPlayField.Width >= this.width)
{
monsterPlayField.DirectionRight = false;
monsterPlayField.Y++;
}
}
else
{
monsterPlayField.X--;
if (monsterPlayField.X == 0)
{
monsterPlayField.DirectionRight = true;
monsterPlayField.Y++;
}
}
}
但是有点冗长。
相反,我想做这样的事情:
private void moveMonsterPlayField()
{
monsterPlayField.X += monsterPlayField.DirectionRight * 1 //where DirectionRight resolves to 1 or -1
if (monsterPlayField.X + monsterPlayField.Width >= this.width || monsterPlayField.X == 0)
{
monsterPlayField.DirectionRight = !monsterPlayField.DirectionRight;
monsterPlayField.Y++;
}
}
这可能吗?
【问题讨论】: