2016-10-14 2 views
0

학교에서 프로젝트를 위해 텍스트 기반 게임을 세 가지로 작성하고 있습니다.C#의 위쪽 화살표와 아래쪽 화살표로 스크롤 방법 만들기

작성된 모든 행을 기록하는 로그가 있습니다.

나는 항상 45 줄의 높이와 145 줄의 너비를 가지고있다. 그래서 45 줄의 글을 쓸 수있다. 그래서 GUI를 작성한 후에는 33 줄의 글자 만 쓸 수있다. 폭.

페이지가 가득 차면 프로그램이 내 GUI에 씁니다. 문제를 해결하고 싶습니다.

당신은 게임을보고 https://github.com/LegacyProgrammer/TextBasedWitcherGame

+1

디버깅 도움말 ("이 코드가 작동하지 않는 이유는 무엇입니까?")에는 원하는 동작, 특정 문제 또는 오류 및 질문 자체에서이를 재현하는 데 필요한 가장 짧은 코드가 포함되어야합니다. 분명한 문제 성명이없는 질문은 다른 독자에게 유용하지 않습니다. See : 최소한의 완전하고 검증 가능한 예제를 만드는 방법. – mybirthname

+1

GUI가 있습니까? WinForms 또는 콘솔을 사용하고 있습니까? (질문에 관련 코드를 넣지 않고도 중요하지 않음) – musefan

+1

그냥 레포를 포함하면 도움이되지 않습니다 ... 질문을 줄이고 사람들이 쉽게 도와 줄 수있는 코드를 게시하십시오. – confusedandamused

답변

0
public static void ScrollUpAndDown() 
    { 
     if (Program.busy != true) 
     { 
      ConsoleKeyInfo KeyInfo; 
      KeyInfo = Console.ReadKey(true); 
      switch (KeyInfo.Key) 
      { 
       case ConsoleKey.UpArrow: 
        CurrentLine--; 
        indexLog--; 
        if(indexLog >= Program.Log.Count) 
        if(CurrentLine == 5) 
        { 
         ClearText(); 
         CurrentLine = Program.intResol_Long - 7; 
        } 
        Console.SetCursorPosition(1, CurrentLine); 
        Program.busy = true; 
        Console.WriteLine(Program.Log[indexLog]); 
        break; 

       case ConsoleKey.DownArrow: 
        CurrentLine++; 
        indexLog++; 
        if (CurrentLine == Program.intResol_Long - 7) 
        { 
         ClearText(); 
         CurrentLine = 5; 
        } 
        Console.SetCursorPosition(1, CurrentLine); 
        Program.busy = true; 
        Console.WriteLine(Program.Log[indexLog]); 
        break; 
      } 
     } 

이 자신을 코딩 할 수 있습니다 내가 지금까지 아래로 스크롤 한 다음이 코드입니다, indexlog 로그 문자열의 양이며, 현재 라인은 currentline입니다 .

관련 문제