분류 전체보기
-
팩맨 - 2일차(플레이어 움직임 및 이미지)게임 개발/팩맨 포트폴리오 2020. 1. 15. 23:22
플레이어 이동 실제 팩맨의 플레이어 움직임은 움직이는 키를 누르지 않아도 마지막에 눌렀던 방향으로 움직입니다. 플레이어의 렉트를 작게 만들고 팩맨 이미지 자체도 줄여 방향키로 계속 조종하는 형식으로 하면 쉽게 할 수 있었지만 똑같이 해보고 싶어 구현해보았습니다. 마지막에 누른 방향으로 계속 이동하는 것에는 문제가 없었지만 방향을 변경할 때 플레이어가 벽에 어깨빵하고 지나갈 수 없으니 이를 해결하는 데에 시간이 꽤 걸렸습니다. 변경하고자 하는 방향의 키를 눌렀을 때 해당 방향의 타일에 벽이 없어야 하며 그 타일과 일직선으로 위치해야 해당 방향으로 이동할 수 있는데 이것 때문에 좀 힘들었습니다. 처음에는 플레이어 렉트의 4방향에 얇고 긴 렉트를 붙여 해당 방향에 충돌을 안하는지 검사하도록 하였으나 방법을 변..
-
팩맨 - 1일차(맵툴 및 맵 제작)게임 개발/팩맨 포트폴리오 2020. 1. 14. 22:33
일주일 안에 에이스타 적용까지 해야 하므로 맵툴은 최대한 간단하게 만들었습니다. 버튼은 4개로 저장, 불러오기, 오브젝트 설치, 오브젝트 지우기 버튼만 만들었습니다. 키보드의 특정 키를 누르면 타일들과 샘플타일들을 격자로 나눠볼 수 있도록 하였습니다.(칸이 너무 작아서;;) 타일 드래그 샘플 타일을 1개만 선택하였을 때 shift + 드래그하면 여러 타일에 동시에 설치되도록 하였습니다. 샘플타일 드래그 및 저장 & 불러오기 샘플 타일을 드래그해서 여러 개를 선택하였을 경우 선택한 샘플 타일들이 한 번에 뙇 찍히도록 하였습니다. 맵을 완성시킨 모습입니다. 맵은 간단하게 1개만 찍었고 실제 팩맨 맵이랑 최대한 유사하게 만들도록 하였습니다. 위에 3줄, 밑에 2줄이 비어있는데 UI가 들어갈 예정이라 비워두었습..
-
[알고리즘] 힙 정렬(Heap Sort)공부/알고리즘 2019. 6. 14. 12:30
오늘은 힙 정렬에 대해 공부하였습니다. 힙 정렬을 알기 전에 먼저 이진트리와 힙에 대해 알아야 합니다. [이진트리] 이진트리란 각각의 노드가 최대 두 개의 자식 노드를 가지는 트리 자료구조로 자식 노드를 각각 왼쪽 자식 노드와 오른쪽 자식 노드라고 합니다. 완전 이진트리란 이진트리에서 자식 노드들이 왼쪽부터 차곡차곡 채워져 있는 트리를 말하며 완전 이진트리는 마지막 레벨을 제외하고 노드가 모두 채워져 있어야 합니다. 마지막 레벨도 왼쪽부터 채워져 있어야 합니다. 포화 이진트리란 리프 노드를 제외하고 모든 노드들이 2개의 자식 노드를 가집니다. 또한 노드는 왼쪽에서 오른쪽으로 채워져 있습니다. 리프 노드란 자식이 없는 맨 끝에 있는 노드를 말합니다. [힙] 힙 정렬에는 힙을 사용하게 되는데 힙이란 최댓값 ..
-
[알고리즘] 병합 정렬(Merge Sort)공부/알고리즘 2019. 6. 13. 17:37
병합 정렬은 합병 정렬이라고도 불리며 존 폰노이만이 개발하였습니다. 퀵 정렬과 같이 분할 정복 알고리즘의 하나입니다. [병합 정렬의 과정] 1. 리스트의 길이가 0 또는 1이면 이미 정렬된 것으로 본다. 2. 그렇지 않은 경우에는 정렬되지 않은 리스트를 절반으로 잘라 비슷한 크기의 두 부분 리스트로 나눈다. 3. 각 부분 리스트를 재귀적으로 병합 정렬을 이용해 정렬한다. 4. 두 부분 리스트를 다시 하나의 정렬된 리스트로 병합한다. 병합 정렬에 대해 조금 더 쉽게 설명하자면 1. 먼저 분할 과정을 통해 리스트에 원소가 1개 남을 때까지 분할을 합니다. 2. 새로운 리스트에 2개의 리스트를 비교해가며 작은 값을 넣어줍니다. 3. 둘 중에 하나가 끝날 때까지 반복합니다. 4. 하나가 먼저 끝나면 나머지 리스..