Chapter 1-2. C# 준비
카테고리: Algorithm Lesson 2
인프런에 있는 Rookiss님의 강의 Part2: 자료구조와 알고리즘 를 듣고 정리한 필기입니다. 😀
🔔 게임의 3 단계
- 입력
- 유저의 입력
- 게임 로직
- 입력에 따른 어떤 실행
- 렌더링
- 로직에 따라 게임 화면에 그래픽을 그려 줌
🔔 Console
Console.WriteLine
- 콘솔 창에 문자열 출력하고 자동으로 한 줄 띄워준다. (Line)
- Console.WriteLine(“문자열)
- Console.WriteLine();
- 단순 개행. std::endl; 같은
- 콘솔 창에 문자열 출력하고 자동으로 한 줄 띄워준다. (Line)
Console.SetCursorPosition
- 콘솔 창의 커서 위치를 세팅한다.
- Console.SetCursorPosition(0, 0);
- 커서 위치가 콘솔 창의 맨 왼쪽 상단에.
Console.CursorVisible
- 콘솔 창에서 커서 위치를 보이게 할건지 아닌지.
- Console.CursorVisible = false
- 콘솔 창에서 커서 위치가 안보이게 됨. 커서 깜빡 깜빡 하는거 없어짐.
Console.ForegroundColor
- 콘솔 창에 있는 텍스트 등등의 컬러를 설정
- Console.ForegroundColor = ConsoleColor.Green;
🔔 프레임
프레임이 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 세컨즈
- 경과시간이 1 / 30 초가 안됐으면 continue
- 즉 30 프레임마다 그리도록 한다.
- 1 / 30 초 마다 그리도록 한다.
#region
~#endregion
- 이렇게 범위를 지정해주면 비주얼 스튜디오 내에서 해당 범위를 접을 수 있게 해준다.
System.Environment.TickCount;
- 현재 시간을 밀리 세컨즈로 리턴해준다.
- 1 초 = 1000 밀리 세컨즈
- \u25cf : 동그라미 문자를 표현하는 코드인 것 같..ㄷ r … ⭐
🌜 개인 공부 기록용 블로그입니다. 오류나 틀린 부분이 있을 경우
언제든지 댓글 혹은 메일로 지적해주시면 감사하겠습니다! 😄
댓글 남기기