WinAPI 39 Animation (4)

CJB_ny·2022년 9월 19일
0

WinAPI

목록 보기
38/79
post-thumbnail

오늘 배운거 👍👍👍

  • 애니매이션 그릴 offset위치, 실제 collider 위치를 offset으로 다르게 보이게 설정 (2d 탑뷰 게임)

  • operator +=

    나는

    += 연산자 이렇게 구현을 했는데


    그냥 이런식으로 구현.

  • Animation(3) 강의에서 크래쉬 나던 부분 수정

    원래는 if문 끝나고 _vecAnimFrame[_curFrame]으로 바로 접근했는데

    return 시켜버리도록 하자. accTime = 0으로 밀어버리고...


기능적인 부분을 조금 보완을 하자면은

프레임 데이터를

이렇게 구조체의 멤버 변수로 들고있으면서 관리를 하고있었다.

3d 게임이건 2d이건 오브젝트의 좌표를 표현을 할 때 우리는 지금은

물체의 중심점을 기준으로 잡아주고 있었다.

근데, 일반 적으로는 (3D모델링도 똑같은데)

발 밑을 기준으로 중심좌표를 잡아준다.

모든것을 발바닥 기준으로 잡아주면은 땅 밑으로 내려가는 것을 다시 계산해서 올려줄 필요가 없어진다.

아이작

아이작의 경우에는 탑 view (위에서 내려다 보는)

그런데 우리가 물체의 중심 좌표를 물체의 중심에다가 놔두면은

탑뷰의 느낌을 주기가 힘들다.

탑뷰 형태의 게임이라면은 오른쪽 애가 총알 쐈을 때 등뒤로 슥 하고 지나가는 상황이여야 하는데

충돌체가 저렇게 그려져있으면 맞을 것이다.

충돌체를 여따가 달아 주어야한다.

실제 충돌체의 collider는 밑에 있고 물체를 그릴때 offset을 주어서 저렇게 화면처럼 지나가게 해야한다.

즉, offset을 주어서 이미지를 위에서 출력한다는 것이다.

그래서 구조체 offset멤버 변수넣어주고

render할 때, 해당 위치에 바로 그려줄게 아니라

해당 프레임에 들어있는 offset데이터만큼 위로 올려서 출력을 해주어야한다.

58줄~61 까지는 원본에서 자를 사이즈는 똑같다.

그런데 현재프레임 데이터 _vecFrame의 offset위치만큼 더해주어야한다.

이부분이 '목적지' 출력하는 부분임.

좌상단 좌표랑 우하단 좌표.

이거 operator 구현 ㄱㄱ.

애니매이션 특정 프레임 Get

이렇게 만들어주도록 하자.

반환이 ref인 이유는 받아간 쪽에서 '수정'할 수 있도록 하게 위해서이다.

Player생성자에서 0번째 프레임 정보에다가만 offset을 수정해보도록 하겠다.

이런 느낌이다.

offset y축으로 -50만큼 모든 _vecAnimFrame에 적용시킬 때의 모습이다.

profile
https://cjbworld.tistory.com/ <- 이사중

0개의 댓글