コードに問題があります。
ユーザーが現在選択していることを示すために、メニュー画面のオプションの両側にアイコンを点滅させようとしています。問題は、カーソルを同時に点滅させ、ユーザーが入力しているキーを読み取ってカーソルの位置を移動できるようにしたいことです。これを行う方法、または現在のセットアップよりも簡単な方法はありますか?
私はまだ学んでいるので、どんな助けも大歓迎です、ありがとう。
Sub Main()
Dim KeyPressed As String
Dim Pos As Integer
Dim MenuSelection As Integer = 1
PreStuff()
DisplayMenu()
Cursor(MenuSelection, False)
Do
KeyPressed = GetKeyPressed()
If KeyPressed = "ConsoleKey.DownArrow" And Pos = 1 Then
MenuSelection = 2
ElseIf KeyPressed = "ConsoleKey.DownArrow" And Pos = 2 Then
MenuSelection = 1
ElseIf KeyPressed = "ConsoleKey.UpArrow" And Pos = 1 Then
MenuSelection = 2
ElseIf KeyPressed = "ConsoleKey.UpArrow" And Pos = 2 Then
MenuSelection = 1
End If
Loop Until KeyPressed = "ConsoleKey.Enter"
Cursor(0, True)
End Sub
Sub PreStuff()
Console.Title = "Populatio - Pre Alpha"
Console.SetWindowSize(80, 25)
Console.CursorVisible = False
End Sub
Function GetKeyPressed()
Dim KeyChoice As String
KeyChoice = Console.ReadKey().ToString
Return KeyChoice
End Function
Sub Cursor(ByVal Op As Integer, ByVal State As Boolean)
Do
Select Case Op
Case 1 And State = False
Console.SetCursorPosition(32, 5)
Console.Write("►")
Console.SetCursorPosition(43, 5)
Console.Write("◄")
State = True
Case 1 And State = True
Console.SetCursorPosition(32, 5)
Console.Write(" ")
Console.SetCursorPosition(43, 5)
Console.Write(" ")
State = False
Case 2 And State = False
Console.SetCursorPosition(34, 7)
Console.Write("►")
Console.SetCursorPosition(41, 7)
Console.Write("◄")
State = True
Case 2 And State = True
Console.SetCursorPosition(34, 7)
Console.Write(" ")
Console.SetCursorPosition(41, 7)
Console.Write(" ")
State = False
End Select
System.Threading.Thread.Sleep(500)
Loop Until Op = 0
Console.SetCursorPosition(32, 5)
Console.Write(" ")
Console.SetCursorPosition(43, 5)
Console.Write(" ")
Console.SetCursorPosition(34, 7)
Console.Write(" ")
Console.SetCursorPosition(41, 7)
Console.Write(" ")
End Sub
Sub DisplayMenu()
Console.WriteLine("╔═════════════════════════════════════════════════════════════════════════════╗")
Console.WriteLine("║ Populatio! By Alx ║")
Console.WriteLine("╠═════════════════════════════════════════════════════════════════════════════╣")
Console.WriteLine("║ ║")
Console.WriteLine("║ New Game ║")
Console.WriteLine("║ ║")
Console.WriteLine("║ Exit ║")
Console.WriteLine("║ ║")
Console.WriteLine("║ ║")
Console.WriteLine("║ ║")
Console.WriteLine("║ ║")
Console.WriteLine("║ ║")
Console.WriteLine("║ ║")
Console.WriteLine("║ ║")
Console.WriteLine("║ ║")
Console.WriteLine("║ ║")
Console.WriteLine("║ ║")
Console.WriteLine("║ ║")
Console.WriteLine("║ ║")
Console.WriteLine("║ ║")
Console.WriteLine("║ ║")
Console.WriteLine("║ ║")
Console.WriteLine("║ ║")
Console.WriteLine("║ ║")
Console.Write("╚═════════════════════════════════════════════════════════════════════════════╝")
End Sub