Alternative input methods

This commit is contained in:
JFronny 2020-05-26 20:40:32 +02:00
parent 6d782b2798
commit 96ae783ceb
3 changed files with 27 additions and 2 deletions

View File

@ -23,6 +23,8 @@ namespace Snakity.Loop
{
case ConsoleKey.W:
case ConsoleKey.UpArrow:
case ConsoleKey.K:
case ConsoleKey.NumPad8:
if (headDelta.Y == 0)
headDelta.Y = -1;
else
@ -31,6 +33,8 @@ namespace Snakity.Loop
break;
case ConsoleKey.A:
case ConsoleKey.LeftArrow:
case ConsoleKey.H:
case ConsoleKey.NumPad4:
headDelta.X = headDelta.X switch
{
0 => -1,
@ -39,6 +43,8 @@ namespace Snakity.Loop
break;
case ConsoleKey.S:
case ConsoleKey.DownArrow:
case ConsoleKey.J:
case ConsoleKey.NumPad2:
headDelta.Y = headDelta.Y switch
{
0 => 1,
@ -47,6 +53,8 @@ namespace Snakity.Loop
break;
case ConsoleKey.D:
case ConsoleKey.RightArrow:
case ConsoleKey.L:
case ConsoleKey.NumPad6:
headDelta.X = headDelta.X switch
{
0 => 1,
@ -54,9 +62,12 @@ namespace Snakity.Loop
};
break;
case ConsoleKey.R:
case ConsoleKey.OemPlus:
R = true;
break;
case ConsoleKey.Escape:
case ConsoleKey.End:
case ConsoleKey.OemMinus:
Esc = true;
break;
case ConsoleKey.P:

View File

@ -38,16 +38,20 @@ Highscore: {SettingsMan.Highscore}
switch (Console.ReadKey().Key)
{
case ConsoleKey.Enter:
case ConsoleKey.OemPlus:
case ConsoleKey.S:
PlayRound();
while (GameOver())
PlayRound();
break;
case ConsoleKey.Escape:
case ConsoleKey.OemMinus:
case ConsoleKey.Q:
case ConsoleKey.X:
playing = false;
break;
case ConsoleKey.V:
case ConsoleKey.Multiply:
SettingsGui.Show();
break;
case ConsoleKey.B:
@ -75,8 +79,8 @@ Play again? (y/n)");
ConsoleKey tmp;
do
tmp = Console.ReadKey().Key;
while (tmp != ConsoleKey.Y && tmp != ConsoleKey.N);
return tmp == ConsoleKey.Y;
while (tmp != ConsoleKey.Y && tmp != ConsoleKey.Enter && tmp != ConsoleKey.S && tmp != ConsoleKey.N && tmp != ConsoleKey.Escape && tmp != ConsoleKey.End);
return tmp == ConsoleKey.Y || tmp == ConsoleKey.Enter || tmp == ConsoleKey.S;
}
private static void PlayRound()

View File

@ -19,12 +19,18 @@ namespace Snakity
{
case ConsoleKey.Escape:
case ConsoleKey.Enter:
case ConsoleKey.OemPlus:
case ConsoleKey.OemMinus:
settingVals = false;
break;
;
case ConsoleKey.LeftArrow:
case ConsoleKey.RightArrow:
case ConsoleKey.H:
case ConsoleKey.L:
case ConsoleKey.Spacebar:
case ConsoleKey.NumPad4:
case ConsoleKey.NumPad6:
switch (currentSetting)
{
case 0:
@ -39,12 +45,16 @@ namespace Snakity
}
break;
case ConsoleKey.UpArrow:
case ConsoleKey.K:
case ConsoleKey.NumPad8:
currentSetting--;
if (currentSetting < 0)
currentSetting = 2;
break;
case ConsoleKey.DownArrow:
case ConsoleKey.J:
case ConsoleKey.Tab:
case ConsoleKey.NumPad2:
currentSetting++;
if (currentSetting > 2)
currentSetting = 0;