Chapter 1-2. C# 준비

Date:     Updated:

카테고리:

태그:

인프런에 있는 Rookiss님의 강의 Part2: 자료구조와 알고리즘 를 듣고 정리한 필기입니다. 😀

🔔 게임의 3 단계

  1. 입력
    • 유저의 입력
  2. 게임 로직
    • 입력에 따른 어떤 실행
  3. 렌더링
    • 로직에 따라 게임 화면에 그래픽을 그려 줌


🔔 Console

  • Console.WriteLine
    • 콘솔 창에 문자열 출력하고 자동으로 한 줄 띄워준다. (Line)
      • Console.WriteLine(“문자열)
      • Console.WriteLine();
        • 단순 개행. std::endl; 같은
  • Console.SetCursorPosition
    • 콘솔 창의 커서 위치를 세팅한다.
    • Console.SetCursorPosition(0, 0);
      • 커서 위치가 콘솔 창의 맨 왼쪽 상단에.
  • Console.CursorVisible
    • 콘솔 창에서 커서 위치를 보이게 할건지 아닌지.
    • Console.CursorVisible = false
      • 콘솔 창에서 커서 위치가 안보이게 됨. 커서 깜빡 깜빡 하는거 없어짐.
  • Console.ForegroundColor
    • 콘솔 창에 있는 텍스트 등등의 컬러를 설정
    • Console.ForegroundColor = ConsoleColor.Green;


🔔 프레임

image

프레임이 N fps 이다 = 1 초에 N 번 실행이 된다. = 렌더링이 1초에 N 번 된다.

  • 프레임이 높을 수록, 즉 렌더링이 여러번 될 수록 화면이 부드러움.
using System;

namespace ConsoleApp1
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.CursorVisible = false;

            int lastTick = 0;
            
            while (true)
            {
                #region 프레임 관리
                int currentTick = System.Environment.TickCount;  // 밀리 세컨즈로 나타낸 현재시간.  1초 = 1000 밀리세컨즈
                int elapsedTick = currentTick - lastTick; // 경과 시간

                // 만약 경과한 시간이 1/30초보다 작다면
                if (elapsedTick < 1000 / 30)
                    continue;
                lastTick = currentTick;  // 마지막 측정 시간 업뎃
                #endregion

                // 1.입력

                // 2.로직

                // 3.렌더링
                Console.SetCursorPosition(0, 0);
                Console.ForegroundColor = ConsoleColor.Green;
                for(int i = 0; i < 25; i++)
                {
                    for (int j = 0; j < 25; j++)
                    {
                        Console.Write('\u25cf');  // 동그라미 1개 그림
                    }
                    Console.WriteLine();  // 개행
                }   
            }
        }
    }
}

30 프레임으로 25 X 25 의 초록색 공 그리기.

  • 프레임 관리
    • 1 / 30 초 마다 그리도록 한다.
      • 경과시간이 1 / 30 초가 안됐으면 continue
        • 1000 / 30 밀리 세컨즈 = 1 / 30 세컨즈
    • 즉 30 프레임마다 그리도록 한다.
  • #region ~ #endregion
    • 이렇게 범위를 지정해주면 비주얼 스튜디오 내에서 해당 범위를 접을 수 있게 해준다.
  • System.Environment.TickCount;
    • 현재 시간을 밀리 세컨즈로 리턴해준다.
    • 1 초 = 1000 밀리 세컨즈
  • \u25cf : 동그라미 문자를 표현하는 코드인 것 같..ㄷ r … ⭐


🌜 개인 공부 기록용 블로그입니다. 오류나 틀린 부분이 있을 경우 
언제든지 댓글 혹은 메일로 지적해주시면 감사하겠습니다! 😄

맨 위로 이동하기

댓글남기기