본문 바로가기

전체 글

(60)
CMaker 소프트렌더러 첫 실습 벡터를 화면의 점으로 표현하기 위해선 '좌표'와 '색상' 정보 두 가지가 있어야 한다.좌표 관리는 Vector2.h의 헤더 파일을 사용하고, 색상 관리는 LinearColor를 선언하였다. 평면 벡터 값을 관리하는 Vector2의 구조체는 다음과 같다. struct Vector2{public: // 생성자 FORCEINLINE constexpr Vector2() = default; FORCEINLINE explicit constexpr Vector2(int InX, int InY) : X((float)InX), Y((float)InY) { } FORCEINLINE explicit constexpr Vector2(float InX, float InY) : X(InX), Y(InY) { } // 연산자 ..
CK 소프트 렌더러 입력 축 + 방향 버튼  - 방향버튼            함수                   용도X축 왼쪽 화살표    오른쪽 화살표      GetXAxis         좌우 회전Y축 위쪽 화살표    아래 화살표         GetYAxis         상하 이동z축 페이지업         페이지 다운         GetZAxis         확대 축소W축 홈(Home)키   엔드키                 GetWAxis        회전 혹은 기타 용도
코루틴에 대한 몰랐던 사실들... 그동안 게임 제작을 하게 되면서 자연스럽게 썻던 코루틴에 대한 몰랐던 사실들을 깨달은 점을 작성하고자 한다. 먼저 코루틴이란, 경량 쓰레드라고 불리워지며, 쓰레드당 하나의 명령만 실행된다.보통, 쓰레드를 만들게 된다면 Heal 메모리에서 1MB를 차지하게 되는데, 코루틴의 경우 메모리의 64Kb 만큼의 메모리 공간을 할당하기 때문에 상대적으로 경량 쓰레드라고 불리워지게 된다. 여기서 특징은 코루틴은 동작하는 환경에서 Context Switching 하면서 진행을 하게 된다. 즉, 원래의 쓰레드에서 실행하는 것과 별개로 다른 쓰레드에서 실행을 완료할 수 있다는 특이점이 발생한다. 이때, 동시성 과 병렬성을 차이를 간단하게 서술하자면,동시성은 아주 빠르게 여러 개의 작업을 번갈아가며 마치 프로세스가 동시에 ..
운영체제 구조 운영체제 운영체제(Operating System)이란, 컴퓨터 하드웨어를 관리하는 소프트웨어다.하드웨어와 응용 프로그램 사이의 중재작 역할을 수행한다.자원을 프로그램에 효율적으로 할당하기 위해 존재한다. 1-1운영체제의 역할 컴퓨터 시스템은 네 가지 구성요소인 하드웨어, 운영체제, 응용 프로그램, 사용자로 구분한다. 하드웨어 :  CPU, I/O 장치, 기본 계산용 자원을 제공  운영체제 : 다양한 응용 프로그램 간의 하드웨어 사용을 제어하고 조정응용 프로그램 : 워드 프로세서, 스프레드시트 ,컴파일러,웹 브라우저 등 사용자의 계산 문제를 해결하기 위해 자원이 어떻게 사용되는지 정의 시스템의 관점 운영체제 = 자원 할당자(resource allocator)CPU 시간, 메모리 공간, 저장장치 공간, 입출..
BOJ 2178 BFS 최단거리 찾기 미로 탐색 성공  시간 제한메모리 제한제출정답맞힌 사람정답 비율1 초192 MB209727967076128144.544%문제N×M크기의 배열로 표현되는 미로가 있다.101111101010101011111011미로에서 1은 이동할 수 있는 칸을 나타내고, 0은 이동할 수 없는 칸을 나타낸다. 이러한 미로가 주어졌을 때, (1, 1)에서 출발하여 (N, M)의 위치로 이동할 때 지나야 하는 최소의 칸 수를 구하는 프로그램을 작성하시오. 한 칸에서 다른 칸으로 이동할 때, 서로 인접한 칸으로만 이동할 수 있다.위의 예에서는 15칸을 지나야 (N, M)의 위치로 이동할 수 있다. 칸을 셀 때에는 시작 위치와 도착 위치도 포함한다.입력첫째 줄에 두 정수 N, M(2 ≤ N, M ≤ 100)이 주어진다. 다음 N개..
String 메서드 String 에서 사용할 다양한 메서드의 정리 총 정리집 #include using namespace std; int main(){ string a = "love is"; a += " pain!"; a.pop_back(); cout    +=문자열을 더할 때 보통 +=을 써서 문자열 또는 문자를 더한다. push_back()vector의 push_back()과는 비슷하지만 다르다.string의 push_back()은 문자 하나씩 밖에 넣을 수 없다.#include using namespace std; int main() { string s = "Hello"; s.push_back(' '); s.push_back('W'); s.push_back('o'); s.push_back('r'); s.push_b..
개행 문자 입력 방식 헤더파일#include  Cin 함수와 getline 함수로 나뉘어진다.Cin은 개행문자를 입력 받으며, cin >> a >> '\n' 형태를 띈다.000 천재 라고 입력을 하였을때, a 는 000만 입력을 받을것이다.따라서 cin >> a >> '\n' 과 cin >> b >> '\n'처럼 값을 받아옴으로서000천재를 입력 받을 수 있다. 이에 추가적으로 getline()함수가 존재한다.getline함수는 개행 문자의 ('\n')을 기준으로 문자열의 끝을 인식한다.사용자 정의로 개행 문자의 종료를 알리기 위해서 getline(cin, line, '.') 처럼 세번째 인자에 종료를 선언할 값을 설정하면 된다. using namespace std;string s;int main(){ getline(c..
Unity GUI : ArgumentException : Getting control 1's position... 에러 해당 에러 메시지  나의 상황에서는 unity Spine에서 skelton Animation에 Initial Skin을 추가하는 과정에서 다음과 같은 컴파일 메시지 에러가 떳다. 해당 과정을 나의 상황에 비추어 요약을 하자면,  ArgumentException: Getting control 1's position in a group with only 1 controls when doing repaintAbortingUnityEngine.GUILayoutGroup.GetNext ()은 유니티 엔진 내부의 EditorGUILayout이나 OnGUI 처리 방식에서 문제가 생겨 발생한 것으로 보인다. GUILayout 이벤트에서 나중에 GUI 화면에서 표시되는지 여부에 대한 영향을 미치는 값을 설정하면 문제가 ..