我目前正在使用c#并尝试在控制台中玩耍。 我基本上想在控制台中制作徽标动画。我已经编写了两种方法来显示带有“#”的字母H和S。现在,它们只是并排编写的。现在,我希望它们从左向右移动并向后移动。在下一步中,我还要每隔几帧就将字母变大一点。它们现在的大小为5x7,因此它将像这样更改每个帧: 3x5-> 5x7-> 7x9。
我的想法是写字母,向右移动一列,删除旧行并打印新行。
关于我可以在这里做什么的任何提示?
public class Program
{
static int row, col;
public static void Main(string[] args)
{
Console.CursorVisible = false;
WriteH();
WriteS();
}
public static void WriteH()
{
for (row = 0; row < 7; row++)
{
for (col = 0; col < 7; col++)
{
if ((col == 1 || col == 5) || (row == 3 && col > 1 && col < 6))
{
Console.Write("#");
}
else
{
Console.Write(" ");
}
}
Console.WriteLine();
}
}
public static void WriteS()
{
for (row = 0; row < 7; row++)
{
for (col = 0; col < 7; col++)
{
if (((row == 0 || row == 3 || row == 6) && col > 1 && col < 5)
|| (col == 1 && (row == 1 || row == 2 || row == 6))
|| (col == 5 && (row == 0 || row == 4 || row == 5)))
{
Console.SetCursorPosition(col+7, row);
Console.Write("#");
}
else
{
Console.SetCursorPosition(col+7, row);
Console.Write(" ");
}
}
Console.WriteLine();
}
}
}
答案 0 :(得分:0)
如果有人遇到相同的问题,我现在想出了如何使用无尽的while循环来做到这一点。缩放字母应该可以以相同的方式进行。被评论的部分是我的第一个while循环,但是只是从左到右移动。
public class Program
{
static void Main(string[] args)
{
//WriteH();
//WriteS();
MoveLetters();
}
/*public static void MoveLetters()
{
int i = 0;
while (i < 100)
{
WriteH(i);
WriteS(i);
i++;
System.Threading.Thread.Sleep(20);
Console.Clear();
}
}*/
public static void MoveLetters()
{
int i = 0;
while (true)
{
for(i=0; i<100; i++)
{
WriteH(i);
WriteS(i);
System.Threading.Thread.Sleep(20);
Console.Clear();
}
for(i=100; i>0; i--)
{
WriteH(i);
WriteS(i);
System.Threading.Thread.Sleep(20);
Console.Clear();
}
}
}
public static void WriteH(int xPosition)
{
for (var row = 0; row < 7; row++)
{
for (var col = 0; col < 7; col++)
{
if ((col == 1 || col == 5) || (row == 3 && col > 1 && col < 6))
{
Console.SetCursorPosition(col + xPosition, row);
Console.Write("#");
}
}
Console.WriteLine();
}
}
public static void WriteS(int xPosition)
{
for (var row = 0; row < 7; row++)
{
for (var col = 0; col < 7; col++)
{
if (((row == 0 || row == 3 || row == 6) && col > 1 && col < 5)
|| (col == 1 && (row == 1 || row == 2 || row == 6))
|| (col == 5 && (row == 0 || row == 4 || row == 5)))
{
Console.SetCursorPosition(col + 7 + xPosition, row);
Console.Write("#");
}
}
Console.WriteLine();
}
}
}