我做了一个简单的平台游戏"使用C ++中的2D数组。我试着做一个:
if (isPassable(plyrX, plyrY - 1))
{
plyrY--;
Sleep(400);
plyrY++;
}
如你所见,plyrY ++;睡觉后应该让他失望。但结果是他最终留在同一个地方,但睡眠仍然有效。
部分代码我对此感到困惑:
int main()
{
int plyrX = 1;
int plyrY = 2;
while (true)
{
DrawMap();
console.Position(plyrX, plyrY);
console << "!";
KEYPRESS KeyPress = console.WaitForKeypress();
switch (KeyPress.eCode)
{
case CONSOLE_KEY_LEFT:
if (isPassable(plyrX - 1, plyrY))
{
plyrX--;
}
break;
case CONSOLE_KEY_RIGHT:
if (isPassable(plyrX + 1, plyrY))
{
plyrX++;
}
break;
case CONSOLE_KEY_UP:
if (isPassable(plyrX, plyrY - 1))
{
plyrY--;
Sleep(400);
plyrY++;
}
break;
default:
break;
}
}
}