플랫포머 세계 수호대(Platform World Savior) | WinAPI / 팀 프로젝트

    게임인재원 2기 프로그래밍 1학기

    C, C++, WinAPI 수업을 받은 뒤 타학과 학생들과 같이 처음으로 작업한 팀 프로젝트입니다.

    • 장르   |   2D 퍼즐, 시뮬레이션
    • 언어   |   C / C++
    • 엔진   |   WinAPI 자체엔진
    • 기간   |   20. 11. 16 ~ 20. 11. 27 (2주)
    • 인원   |   기획 2명, 아트 2명, 프로그래머 3명
    • 맡은 역할   |   프로그래밍 팀장(타팀과 의사소통 및 일정조율이 주 업무), 클라이언트 서브 프로그래머
    • 설명   |   플랫포머 세계가 원인 모를 공격을 받아 맵이 파괴되었다. 자동으로 움직이는 캐릭터를 위해 수호대(플레이어)가 파괴된 맵을 다시 복구해야한다.

    프로젝트 내 본인 작업


    1. 2차원 맵 설계

    block의 type과 화면에 그려줄 박스데이터로 이루어진 클래스형으로 2차원 배열 맵을 만들었습니다.

    현재 마우스의 포지션값에 Tile Size를 나누면 마우스의 위치에 해당하는 맵 배열의 인덱스 값을 구할 수 있어

    이것으로 배열의 type값을 Get()하거나 원하는 다른 type값으로 Set(Block type)하였다.

     

    2. 게임 리소스 로드

    // 인게임 백그라운드 맵
    IMAGEMANAGER->AddImage("BG_MOUNTAIN", ConvertPath("BG_MOUNTAIN.bmp", 1), 2800, 2100, true, RGB(255, 0, 255));
    IMAGEMANAGER->AddImage("BG_INGAME", ConvertPath("BG04.bmp", 1), 2832, 2318, true, RGB(255, 0, 255));
    IMAGEMANAGER->AddImage("BG_INGAME02", ConvertPath("BG.bmp", 1), 2832, 2318, true, RGB(255, 0, 255));
    
    // 플레이어 애니메이션
    IMAGEMANAGER->AddFrameImage("PLAYER_MOVE_R", ConvertPath("1123_slime_R_MOVE.bmp", 1), 0, 0, 640, 140, 8, 1, true, RGB(255, 0, 255));
    IMAGEMANAGER->AddFrameImage("PLAYER_MOVE_L", ConvertPath("1123_slime_L_MOVE.bmp", 1), 0, 0, 640, 140, 8, 1, true, RGB(255, 0, 255));
    IMAGEMANAGER->AddFrameImage("PLAYER_JUMP_R", ConvertPath("1123_slime_Jump_R.bmp", 1), 0, 0, 1040, 140, 13, 1, true, RGB(255, 0, 255));
    IMAGEMANAGER->AddFrameImage("PLAYER_JUMP_L", ConvertPath("1123_slime_Jump_L.bmp", 1), 0, 0, 1040, 140, 13, 1, true, RGB(255, 0, 255));
    IMAGEMANAGER->AddFrameImage("PLAYER_FALL_R", ConvertPath("1123_slime_Fall_R.bmp", 1), 0, 0, 720, 140, 9, 1, true, RGB(255, 0, 255));
    IMAGEMANAGER->AddFrameImage("PLAYER_FALL_L", ConvertPath("1123_slime_Fall_L.bmp", 1), 0, 0, 720, 140, 9, 1, true, RGB(255, 0, 255));
    
    // 열매 애니메이션
    IMAGEMANAGER->AddFrameImage("FRUIT", ConvertPath("fruit.bmp", 1), 0, 0, 2000, 300, 11, 1, true, RGB(255, 0, 255));

    엔진 프로그래머가 제공한 Image Manager를 사용하여 게임에서 쓸 이미지와 애니메이션 소스들을 로드했습니다.

     

    3. UI, 버튼 작업

    엔진 프로그래머가 제공한 여러 매니저들의 기능을 사용하여

    로드했던 이미지들 중 해당 버튼에 맞는 이미지를 연결하고, 씬에 배치하였습니다.

    댓글