본문 바로가기
728x90
반응형

c#32

월드 공간과 UI 공간 게임 오브젝트들이 움직이는 월드 공간과 UI들이 위치한 UI 공간은 다르다. 월드 공간은 기획에 따라 크기가 다를 것이고 UI 공간의 경우 화면 해상도에 따라 다르다. 예를들어 월드 공간의 넓이가 800, 높이가 400이고 UI 공간의 넓이가 200, 높이가 400인 경우 월드 공간의 A 오브젝트가 좌표 (400, 200)에 있는걸 UI 공간의 표시하면 넓이가 벗어날 것이다. 따라서 이를 해결하기 위해선 정규화가 필요하다. 이를 해결하기 위해선 다음 두 가지 공식을 순서대로 진행한다. 1. 월드 공간 A의 좌표의 값에 각각 월드 공간의 넓이와 높이로 나눈다. => (400, 200) => (400 / 월드 공간 넓이, 200 / 월드 공간 높이) = (400 / 800, 200 / 400) = (0.5,.. 2023. 10. 17.
[자료구조] 큐(Queue) 큐(Queue) -먼저 추가된 데이터가 먼저 출력되는 FIFO(First In First Out) 자료 구조로서 입력된 순서대로 처리해야 하는 상황에 이용된다. -Queue는 맨 뒤(tail)에 데이터를 계속 추가하고, 맨 앞(head)에서만 데이터를 읽기 때문에 순차적으로 데이터 처리한다. Queue 클래스 -.NET에는 큐를 Non-Generic인 Queue 클래스와 Generic 형태인 Queue 클래스가 있다. -두 Queue 클래스는 내부적으로 순환 배열로 구현되어 있는데, 배열의 마지막 요소에 다다른 경우 다시 배열 처음 요소로 순환하는 구조 (next % array_size)를 가지고 있다. -Queue는 내부적으로 head와 tail 포인터를 가지고 있는데, tail에 데이터를 추가(Enq.. 2023. 6. 26.
[자료구조] 스택(Stack) 스택이란 -가장 나중에 추가된 데이터가 먼저 출력 처리되는 Last In First Out(LIFO) 자료구조다. -가장 최근에 입력된 순서대로 처리해야 하는 상황에 이용된다. -자료를 스택에 저장할 땐 Push, 꺼낼 땐 가장 최근 것부터 꺼내는데 이를 Pop 이라 한다. -스택에서 Pop시 스택에 top 값을 가져오면서 삭제한다. Stack 클래스 -.NET에는 Non-Generic인 Stack 클래스와 Generic 형태인 Stack 클래스가 있다. -Stack은 내부적으로 순환 배열로 구현되어 있으며, 스택이 가득 차면 자동으로 배열을 동적으로 확장한다. 사용 예제 using System; using System.Collections; using System.Collections.Generic; .. 2023. 6. 23.
[Tip] @(심벌) 사용 @(심벌) 사용 1 -문자열 앞에 사용하면, 해당 문자열 안의 escape 문자를 무시하고 문자 그대로 인식하게 한다. ex) 사용 예제 //back slash를 한번 지정하면 escape 문자로 인식되기에 2개의 back slash사용 string fileName = "C:\\Temp\\example.txt"; //@을 문자열 시작 부호전에 사용하면, back slash을 그대로 back slash로 인식 string fileNmaeBySymbol = @"C:\Temp\example.txt"; @(심벌) 사용 2 -한 문자열 변수에 여러 줄의 문자열을 지정하는 경우 사용하면 편리하다. -+로 연결하여 사용할 수 있지만, @를 문자열 앞에 두면 복수행의 문자열들을 갖는 문자 데이터를 지정할 수 있다. e.. 2023. 6. 22.
[자료구조] 해시테이블(Hash Table), Dictionary 해시테이블 -Hash는 키 값을 Hash Function으로 해싱하여 해시테이블의 특정 위치로 직접 엑세스하도록 만든 방식이다. -키 값이 많아지면 매우 많은 배열 공간이 필요한데, 이렇게 낭비되는 공간을 줄이기 위해 해시 함수를 사용한다. -해시 함수는 적은 공간 안에서 모든 키를 직접 찾아갈 수 있도록 해준다. Hashtable 클래스 -.NET에 Hashtable 클래스는 Non-Generic 클래스다. -Hashtable은 key값과 value값 모두 object 타입을 받아들여 박싱/언박싱이 일어난다. -Hashtable은 Double Hashing 방식을 사용하여 Collision Resolution을 하게 된다. -즉 해시 함수를 사용하여 key가 collision(충돌)이 발생하면, 다른 .. 2023. 6. 22.
[자료구조] 연결 리스트(Linked List) Linked List 란? -데이터를 포함하는 노드들을 연결하여 컬렉션을 만든 자료 구조 -각 노드는 데이터와 다음/이전 링크 포인터를 갖게 된다. -단일 연결 리스트(Singly Linked List)는 노드를 다음 링크로만 연결한 리스트 -이중 연결 리스트는 각 노드를 다음 링크와 이전 링크 모두 연결한 리스트 -Circular Linked List(순환 연결 리스트)는 마지막 노드의 다음 링크가 맨 처음 노드를 가리키게 연결한 리스트 LinkedList 클래스 -.NET에서 LinkedList 클래스는 이중 링크드 리스트로 구현되어 있다. -LinkedListNode 클래스는 리스트 노드를 표현한다. -AddFirst, AddLast, AddBefore, AddAfter등으로 링크스 리스트 맨 앞,.. 2023. 6. 22.
728x90
반응형