WinAPI 66 RigidBody (3)

CJB_ny·2022년 10월 10일
0

WinAPI

목록 보기
69/79
post-thumbnail

오늘 배운거 👍👍👍

  • 힘의 범위 구하기

  • 범위를 구하면서 '비율' 구하는 부분 체크 ❗❗❗


힘을 그려볼 것이다?

이런식으로 KEY_HOLD 왼쪽 클릭일 경우 힘이 생성되는 부분의 좌표를 얻어올 것이다.

현재 내가 백그라운드 그림을 그리고 있기 때문에 먼저 백그라운드 텍스쳐 그리고 힘주는 원 생성을 해주도록 하자.

클릭 부분에서부터 원이 DT값에 따라 2배씩 커지다가 원점으로 돌아간다.

힘 전달

_force라는 멤버 변수 만들고

해당 힘에서 멀면은 힘을 적게 받고 가까이에 있을 수록 가장 강한 힘을 받도록 구현할 것이다.

씬 업데이트 전에 RD 생성 시키고 가도록 하자.

힘 범위 체크 ❗

그리고 update를 직접 구현을 해주도록 하자.

지금 for문 안에서 이런식으로 체크를 하는데

마우스 위치 - 오브젝트 위치 => 벡터 => 해당 벡터의 크기(길이)가 _forceRadius 보다 작다는 것은 힘을 받는 영향 범위 안에 들어왔다는 것임.

힘 범위의 비율 구하기 ❗❗❗❗❗

지금 항상 '비율'을 구하는 부분에서 조금 생각하는 시간이 길어지는데

비율을 당연하게 생각할 수 있는 정도가 되어야 하는데 그게 좀 힘들다 지금.

이런식으로 ratio를 구할 수 있을 것이다.

len이 지금 마우스 힘의 좌표와 오브젝트간의 벡터의 크기인데

이 값이 작으면 작을 수록 뭐다? => 마우스 좌표와 오브젝트 사이의 거리가 가깝다라는 말이다.

그러니까 => len / forceRadius 값이 작으면 작을 수록 ratio의 값은 점점 커지고

len의 값이 커지면? => 마우스 좌표와 오브젝트의 거리가 멀다는 뜻이니까

ratio의 값이 작아진다.

이 비율값에 따라서 총 주어야할 힘의 크기는

force는 이런식이 되는데,

수정한 부분 ❗❗❗

중간에 조금 수정한게

마우스 좌표 - 오브젝트 Pos => 오브젝트 Pos - 마우스 좌표 함.

이러면 벡터의 방향자체가 마우스좌표에서 오브젝트로 향하는 벡터가 나온다.

밑에서 구한 force가 줄 방향을 좀더 쉽게 잡기 위해서 이렇게 수정함.

혹시나 몰라서 diff값을 임시 변수만들고 정규화 시킴.

수정해야하는 부분 ❗❗❗

몬스터 상태 바뀌는 부분 에러가 나는데 이부분 수정해야한다.

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

0개의 댓글