我正在制作基于pacman控制台的游戏,其中有一个40x40的游戏板。董事会上有吃豆子和敌人在吃东西。pacman用0表示,敌人用#表示。每当位置发生变化时,都会调用显示功能,按照当前的逻辑,每秒都会清除整个控制台并重新打印板上的每个元素。但是,这样,每当显示整个板上时都会出现这些抖动。请告诉我一个更好的方式来实现吃豆人和敌人的平稳运动,理想情况下,我只应只更改吃豆人和敌人的位置,但我需要清除控制台才能在同一位置显示网格,否则它将保持向下滚动。显示功能的代码如下:
public static void display()
{
Console.Clear();
for (int i = 0; i < 40; i++)
{
for (int j = 0; j < 40; j++)
{
bool packFound = false;
bool enmFound = false;
foreach (Packman element in myVers.packmans)
{
if (element.x == i && element.y == j)
{
packFound = true;
break;
}
}
foreach (Packman element in myVers.enemys)
{
if (element.x == i && element.y == j)
{
enmFound = true;
break;
}
}
if (packFound == true)
{
Console.Write('0');
myVers.board[i, j] = ' ';
}
else if (enmFound == true)
{
myVers.board[i, j] = ' ';
Console.Write('#');
}
else
{
Console.Write(myVers.board[i, j]);
}
}
Console.Write('\n');
}
//Console.Write("\nFood Count " + myVers.foodCount + "\n");
}
如果您只重绘真正改变的字符怎么办?也许使用Console.SetCursorPosition
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句