저번 주랑 반대로, 이번 주는 별로 작업을 못 했습니다.
원래 벽, 바닥 등의 좌표에는 양수 전용이었는데, 상대 좌표(임의의 원점)를 쓸 수있게 음수도 허용했습니다.
하지만 PNG에서 좌표는 0x0000~0xFFFF로 저장되는데, 제가 여기서 음수를 구현하는 방법은 단순히 0x8000을 0으로 잡는 거에요. (즉 0x8000을 빼고 더하기)
그래서 저번주에 만든 세이브 파일은 바로 사용 불가능 상태가 되었죠.
내부적으로는 많은 Class들을 상속 Class를 쓰도록 바꿨습니다.
LoadWall, LoadSlab 등은 모두 비슷한 함수와 변수를 계속 사용하니까요.
또 세부 데이터(Wall, Slab Class)도 묶어서, 위와 같이 포맷 자체를 바꿀 때 한번만 수정해도 되도록 했습니다.
하지만 이것들은 사진으로 보기 힘든 것들이죠.
이건 로드 중 생긴 버그.
벽의 좌표를 잘못된 순서로 불러와서 생긴 겁니다.
하지만 결과적으로는 해피엔딩.
그런데 왼쪽과 같이 닫힌 벽은 시작점이 깔끔하게 마무리되도록 해야겠습니다.
지금 원형 벽 코드도 똑같은 문제를 가지고 있죠.
여러 종류의 벽 만들기는 다음 주로 미뤄지겠네요.
또 저번 주에 블록 모양을 다양히 하겠다고 했는데요, 생각을 바꿨습니다.
왜냐하면 주거 건물을 로터리 안에 원기둥으로 세우는 미친 발상은 서양 중세 귀족들이나 할 일이거든요.
(기본적으로 사생활을 전시하겠다는 뜻이니까)
그리고 이건 랜드마크 수준이죠.
그래서 에디터에서는 바닥 모양이 모두 사각형일겁니다.
나중에 블록을 실제 게임에 들여올 때 뒤는 알아서 할 일이고.
하지만 로터리라고 오목한 건물을 막 생성하지는 않을 겁니다. (역이나 대형 상업건물-즉 또다시 랜드마크-이라도 되지 않는 이상)
P.S. 레딧에서 제가 지금 하는 것과 비슷한 걸 발견했습니다. (링크)
비트맵에서 방을 만들고, 벽들의 위치와 길이를 찾아내 배열을 만든 뒤 벽 생성.
저도 비트맵을 사용하지만, 저는 방 형태를 그대로 저장하는 게 아니라, 벡터 데이터 저장에 PNG의 압축 기술을 사용한다는 점이 다르죠.
(물론 최종적으로 저는 픽셀 그래픽을 지향하지만, 이 분은 더 현실적인 스타일로 간다는 점도 있죠)
하지만 창문 구현은 대단하네요. 저도 지금 창문/문 구현이 문제거든요.
'Metnias > Aipo.TXT' 카테고리의 다른 글
또다시 슬럼프 (0) | 2015.06.28 |
---|---|
유니트 안의 유니트, 유니트 안의 유니트 안의 유니트 (0) | 2015.05.03 |
PNG 포맷 실험, 벽 그리기 (0) | 2015.04.19 |
바닥 추가, 에디터 제작 준비 (0) | 2015.04.12 |
그림자 버그, 벡터 문제 (0) | 2015.04.05 |
2015년 만우절 포스트 : 목표 (0) | 2015.04.01 |
게임오브젝트 발적화 (0) | 2015.03.29 |
카메라 조정, 벽 만들기 (0) | 2015.03.22 |
반 년만의 진행 (0) | 2015.03.12 |