게임인재원 2기 프로그래밍 2학기 미니 팀 프로젝트입니다.
이 프로젝트는 2021 부산 인디커텍트 페스티벌(BIC) 루키부문에서 라이징스타상(대상), 게임디자인상을 수상하였습니다.
- 장르 | 2D 추리, 시뮬레이션
- 언어 | C / C++
- 엔진 | Direct2D 자체엔진(+FMOD)
- 기간 | 21. 02. 08 ~ 21. 02. 26 (3주)
- 인원 | 기획 2명, 아트 3명, 프로그래머 4명
- 맡은 역할 | 프로그래밍 팀장(타팀과 의사소통 및 일정조율), 클라이언트 메인 프로그래머
- 설명 | 사인이 불분명한 사체를 부검하여 사건의 진상과 사체가 사망한 이유를 추리해야한다.
- GitHub | https://github.com/hajineys/For-Your-Tranquility
GitHub - hajineys/For-Your-Tranquility: Direct2D 자체엔진으로 만든 추리게임
Direct2D 자체엔진으로 만든 추리게임. Contribute to hajineys/For-Your-Tranquility development by creating an account on GitHub.
github.com
프로젝트 내 본인 작업
1. 씬, 씬매니저 클래스 설계
부모 Scene클래스를 사용하여 파생된 자식 Scene클래스들을 한번에 관리하기 위한 매니저 클래스입니다.
그중 씬을 교체해주는 ChangeScene함수는 파라미터로 받은 씬상태가 현재 씬상태와 다르면
기존의 씬을 삭제하고 새로 운 씬을 생성해줍니다.
현재 씬 변수를 동일한 함수 네이밍으로 호출하고 관리하기위해 다형성을 사용했습니다.
2. 사무실 씬, 현미경 관찰 구현
장기 조직 샘플이 담긴 샬렛이미지를 마우스로 집으면 이미지가 마우스의 위치와 동일하게 움직이도록 했습니다.
조직 샘플이 현미경에 닿으면 해당 조직의 디테일한 이미지가 보이고
증거 데이터를 관리하는 싱글톤 FileFolder의 상태를 변경합니다.
3. 부검실 씬
돋보기로 숨겨진 내용이 있는 사체 일부분을 클릭하면 내용을 확인 할 수있다.
실선에 충돌체크용 박스를 여러개 두고 메스가 이 위를 클릭한체 지나가면 해당 박스들의 값을 true로 변경하여
모든 충돌체크 박스들의 값이 true이면 다 잘렸다 판단하여 배가 열리게끔 구현하였습니다.
개발 중 화면에 여러 디버그 정보들을 텍스트로 출력하여 개발하였습니다.
4. 해부실 씬
// 간 조직 옮기기
if (m_pFrogLiverPiece->GetColliderBox()->IsCollided &&
InputManager::GetInstance()->CheckLeftButtonHold() && FrogLiverOpen == true)
{
m_NowPickOrganPiece = PickOrganPiece::LIVER;
if (m_UsePincette == true)
{
m_pFrogLiverPiece->Transform()->Pos.x = m_MousePos.x - m_pFrogLiverPiece->Transform()->Size.x / 2;
m_pFrogLiverPiece->Transform()->Pos.y = m_MousePos.y - m_pFrogLiverPiece->Transform()->Size.y / 2;
m_PickFrogLiverPiece = true;
}
}
현미경의 조직 샘플을 옮겼던 것과 동일한 방식으로 마우스의 포지션과 동일하게 이미지가 움직이도록 했습니다.
5. 플레이어가 사용하는 도구, 장기 클래스
플레이어가 사용하는 도구들의 이미지를 렌더하고 현재 자신이 어떤 도구를 사용하고 있는지 타입도 가지고 있다.
플레이어와 마찬가지로 장기도 따로 클래스를 만들어 관리하였고 장기의 상태는 enum class로 만들었습니다.
'프로젝트' 카테고리의 다른 글
하늘에 보내는 편지(Letter To Sky) | DirectX11 / 팀 프로젝트 (0) | 2022.04.12 |
---|---|
플랫포머 세계 수호대(Platform World Savior) | WinAPI / 팀 프로젝트 (0) | 2022.04.06 |
지뢰찾기(Minesweeper) | Windows Console / GDI / 개인 프로젝트 (0) | 2022.04.06 |
댓글