매우 큰 변경사항에 따라 이 PR에서 변경되지 않은 파일도 확인해야합니다. 현재 올바르게 작동합니다.
주요 변경 사항
.circlez 파일을 지원합니다.
기존에 파일을 임포트 하려면 직접 리소스들을 폴더에 복사/이동을 해주어야 했습니다. 이 과정은 꽤 귀찮고 까다로우며 모바일 디바이스에서 하기 힘들었습니다. 그래서 새로운 파일 형식을 만들기로 결정했으며 비트맵에 필요한 모든리소스를 압축한 파일로 만들었습니다. Settings - Maintenance - Import beatmap을 통해 파일을 임포트 할 수 있습니다.
리소스를 비트맵 별로 분리합니다.
기존 저장 방식은 리소스 종류 별로 저장소를 만들어 엑세스 했습니다. 이 방식 때문에 쉬운 리소스 관리/엑세스와 중복되는 리소스 재사용 가능에 따라 낮은 저장 용량 등 이점이 있었습니다. 하지만 중복되는 리소스가 있으면 이름을 바꿔 수정해야 했고, 어느 리소스가 어느 비트맵에 쓰이는지 알 수 없었습니다.
저장 구조는 다음과 같습니다:
이전
../files/backgrounds/bg1.jpg../files/beatmaps/R.circle../files/tracks/plum-r.ogg
이 PR
../files/AwesomeBeatmapFolder/bg1.jpg../files/AwesomeBeatmapFolder/R.circle../files/AwesomeBeatmapFolder/plum-r.ogg
모든 비트맵 리소스에 대한 관리는 BeatmapStorage에서 관리 하며 리소스에 엑세스 하려면 리소스 파일의 부모 폴더/리소스 와 같이 엑세스 해야합니다. 이전 저장 구조에서 완전한 마이그레이션이 준비되었습니다.
BeatmapInfo가 Beatmap으로 변경되었으며 비트맵 파일에 대한 기본 정보를 제공하는 BeatmapInfo가 추가되었습니다.
위에 설명한 저장 방식 변경으로 리소스에 접근이 힘들어졌습니다. BeatmapInfo는 FileInfo와 같은 기본적인 정보를 제공하며 비트맵에 쓰이는 리소스의 절대/상대경로 등을 제공합니다.
게임 창 컨테이너를 BufferedContainer에서 GameScreenContainer로 변경되었습니다.
클래스 이름이 컨테이너의 용도와 맞지 않아 GameScreenContainer를 만들었습니다.
기타
72 에서 발생한 문제는 이벤트 해제를 하지 못해 폐기된 TextFlowContainer에 접근해서 생겼습니다. 이제 올바른 방법을 사용합니다.
File/Directory selector가 추가되었습니다.
BeatmapCarousel을 리팩터 했습니다.
GetTrack() 에서 트랙이 존재하지 않으면 TrackVirtual을 반환하여 게임이 충돌나지 않게 합니다.
매우 큰 변경사항에 따라 이 PR에서 변경되지 않은 파일도 확인해야합니다. 현재 올바르게 작동합니다.
주요 변경 사항
.circlez 파일을 지원합니다.
기존에 파일을 임포트 하려면 직접 리소스들을 폴더에 복사/이동을 해주어야 했습니다. 이 과정은 꽤 귀찮고 까다로우며 모바일 디바이스에서 하기 힘들었습니다. 그래서 새로운 파일 형식을 만들기로 결정했으며 비트맵에 필요한 모든리소스를 압축한 파일로 만들었습니다. Settings - Maintenance - Import beatmap을 통해 파일을 임포트 할 수 있습니다.
리소스를 비트맵 별로 분리합니다.
기존 저장 방식은 리소스 종류 별로 저장소를 만들어 엑세스 했습니다. 이 방식 때문에 쉬운 리소스 관리/엑세스와 중복되는 리소스 재사용 가능에 따라 낮은 저장 용량 등 이점이 있었습니다. 하지만 중복되는 리소스가 있으면 이름을 바꿔 수정해야 했고, 어느 리소스가 어느 비트맵에 쓰이는지 알 수 없었습니다.
저장 구조는 다음과 같습니다:
../files/backgrounds/bg1.jpg
../files/beatmaps/R.circle
../files/tracks/plum-r.ogg
../files/AwesomeBeatmapFolder/bg1.jpg
../files/AwesomeBeatmapFolder/R.circle
../files/AwesomeBeatmapFolder/plum-r.ogg
모든 비트맵 리소스에 대한 관리는
BeatmapStorage
에서 관리 하며 리소스에 엑세스 하려면리소스 파일의 부모 폴더/리소스
와 같이 엑세스 해야합니다. 이전 저장 구조에서 완전한 마이그레이션이 준비되었습니다.BeatmapInfo
가Beatmap
으로 변경되었으며 비트맵 파일에 대한 기본 정보를 제공하는BeatmapInfo
가 추가되었습니다.위에 설명한 저장 방식 변경으로 리소스에 접근이 힘들어졌습니다.
BeatmapInfo
는FileInfo
와 같은 기본적인 정보를 제공하며 비트맵에 쓰이는 리소스의 절대/상대경로 등을 제공합니다.게임 창 컨테이너를
BufferedContainer
에서GameScreenContainer
로 변경되었습니다.클래스 이름이 컨테이너의 용도와 맞지 않아
GameScreenContainer
를 만들었습니다.기타
72 에서 발생한 문제는 이벤트 해제를 하지 못해 폐기된 TextFlowContainer에 접근해서 생겼습니다. 이제 올바른 방법을 사용합니다.
BeatmapCarousel
을 리팩터 했습니다.GetTrack()
에서 트랙이 존재하지 않으면TrackVirtual
을 반환하여 게임이 충돌나지 않게 합니다.