初学者RPG(游戏)随机遭遇

时间:2018-10-19 13:49:47

标签: c# ascii console-application

在对我正在研究的RPG进行编程时遇到了一个问题。触发随机相遇时会发生此问题。

对我来说,很重要的一点是要告诉您该游戏是基于控制台的,并且我正在使用的地图是使用ascii字符创建的。它使用w,a,s,d进行移动。每当按下这些键之一时,玩家角色就会在该方向上移动一个图块。您可以按住按钮以更高的速度向相应的方向移动。

在我的代码中,确保确保像这样触发相遇时保存玩家的坐标:

 oldx = Console.CursorLeft;
 oldy = Console.CursorTop;
 RandomEncounter();

由此,我触发了随机遇到子例程,该子例程如下所示:

public static void RandomEncounter()
    {
        Console.Clear();
        Console.WriteLine("Random Encounter!");
        System.Threading.Thread.Sleep(1000);
        Console.WindowHeight = 33;
        Console.Clear();
        map = @"D:\personal\tests\Tests\ascii map tools\map1.txt";
        DrawMap(map);
        Console.WindowHeight = 32;
    }

这种随机相遇只是暂时的,我将用某种战斗代替它,但这是我稍后要做的事情。

可以在这里找到地图:https://drive.google.com/open?id=1wzsHS7iz9OS-WndihFFNOMXt4h18PPwl

无论如何,当随机遇到完成时,就会发生此问题。如代码所示,地图将被重绘。然后,将光标设置在正确的坐标处。但是,它会立即沿随机遇到的最后一次按下的按钮(w,a,s,d)的方向移动大约十个图块。

我使用的运动系统很简单:

switch (input);
case 'w'
case 'a'
case 's'
case 'd'

这不是输入代码的全部,我认为这不是必要的。

所以我的问题是:在随机遇到之后如何停止不必要的运动?

0 个答案:

没有答案