목록C++ (208)
응애맘마조

문득 명령 프롬프트로 확률 게임을 갑자기 만들어보고 싶은 생각이 들었습니다. 그래서 한 번 확률로 무기를 강화하는 게임을 만들어봤습니다.스크린샷도 찍었고 나름 괜찮게 만들어진 것 같습니다. 깃허브 : https://github.com/THWert/WeaponEnforce 깃허브로 코드도 같이 공유 하겠습니다. 읽어주셔서 감사합니다.
어제 말했던 대로 오늘은 델타를 했습니다. 델타는 변화량이라고 합니다. 하지만 강의에서 쓰게 될 델타는 초당 변화량입니다. 프로그램 실행에서 사용되는 프레임워크에는 주기라는 것이 있습니다. 여기서 주기는 반복되는 구간을 말합니다. 사용하는 SetTimer에서 밀리초 단위에 따라 움직이는 정도가 달라집니다. 여기서부터 FPS와 관련이 되어 있습니다. 하지만 프레임 단위로 움직이게 되면 문제가 발생할 수도 있습니다. 게임이라면 실행 자체에 문제는 없지만 객체가 모두 제각각 움직이게 될 수도 있어서 플레이 환경에 문제를 발생시킬 수도 있습니다. 게임을 만들 때에는 밀리초 단위를 사용하지 않고 마이크로세컨드를 사용합니다. 초당 이동하는 양이 달라지면 안 되고 객체마다 제각각 움직이는 양이 달라지면 안 되기 때문..
어제는 오늘 GetAsyncKeyState에 대해서 한다고 했었습니다. 코드가 변경되면서 더 이상 사용하지 않습니다. 왜냐하면 GetAsyncKeyState 함수는 키보드를 눌렀을 때, 누르고 있는 중, 누르던 키에서 손을 떼냈을 때가 없습니다. 그래서 더 이상 사용하지 않고 삭제가 되었으며 중요하지 않습니다. 또한 키보드 입력이라는 것도 한 가지 객체만 있기 때문에 싱글톤을 상속받습니다. 오늘은 싱글톤 패턴과 키보드 입력에 대해서 배웠었습니다. 싱글톤 패턴은 생성자가 여러 차례 호출되더라도 실제로 생성되는 객체는 하나이고 최초 생성 이후에 호출된 생성자는 최초의 생성자가 생성한 객체를 리턴합니다. 이 패턴에는 static이 사용됩니다. 여기서 static이라는 것은 한 번만 할당되고 선언이나 정의 그리..
이제부터 구조가 조금씩 바뀌게 됩니다. 엄청나게 크게 바뀌는 건 아니고 여태까지는 메인cpp 파일 안에 코드를 작성하고 실행을 시켰었는데 파일 하나 안에 여러 가지를 실행하게 되면 코드가 지나치게 길어질뿐더러 C++의 객체 지향에 맞지 않기 때문에 각각에 맞는 실행 내용대로 옮기게 되었습니다. 이 작업은 수요일까지 하게 될 예정입니다. System이라는 필터를 새로 만들고 Type.h와 Type.cpp를 추가하였습니다. 안에는 Scene이라는 클래스를 만들었습니다. Scene은 사전적으로 '장면'이라는 뜻을 가지고 있습니다. 이는 게임에서 표현하자면 Map(마을 맵, 던전 맵, 보스 맵 등등)의 개념을 가지고 있습니다. 그렇게 어떤 맵에서 다른 맵으로 이동을 하는 것을 Scene의 전환이라고 합니다. 이..
이틀 전 12월 7일에 적었던 0.0174532라는 숫자의 정체는 호도법에 관련된 숫자였습니다. 오늘은 호도법에 대해 강의를 들었습니다. 우리가 사회에서 그리고 일상생활에서 사용하는 각도는 디그리(degree) 각도입니다. 하지만 전에 과제 내용에 적었듯이 프로그래밍할 때는 라디안(radian)을 사용한다고 했었습니다. 그때 사용하는 방법이 호도법입니다. 호도법은 호의 길이로 각도를 나타내는 방법입니다. 밑변과 호의 길이가 같으면 1rad(1라디안)라고 합니다. 라디안은 길이와는 상관없이 비율만 같으면 똑같은 값이 나옵니다. 이 공식을 이용하면 구할 수 있는 각도가 있습니다. 360° = 2πrad입니다. (원의 둘레입니다.) 1° = π / 180rad입니다. 이 값이 0.0174532입니다. (원래는..