일정한 간격을 왕복해서 움직이는 monster.
기준량을 넘어섰다면 방향을 바꿔라라고 코딩을 하면
DT가 일정하지 않기 때문에 한 프레임에서 넘어선 거리만큼
그 다음 프레임이 반대 방향으로 그 거리만큼 가지 못하고
거리보다 넘어가 있는 상태라면
다시 반대 방향이 될 것이고 이것이 반복 될 수있다.
따라서 넘어간 거리 만큼 dt를 곱해서 반대방향으로 이동 시켜줘야 한다.
GetPos();
//진행 방향으로 시간당 m_fspeed만큼 이동
vCurPos.x+=fDT *m_fspeed*m_iDir;
//배회 거리 기준량을 넘어섰는지 확인
float fDist =abs(m_vCenterPos.x-vCurPos.x)-m_fMaxDistance;
if(0.f<fDist)
{
//방향 변경
m_iDir*=-1;
vCurPos.x+=fDist*m_iDir;
} ;
setPos(vCurPos)'
각각의 centerpos를 결정 해줘야 한다.
float fterm =(vResolution.x-((fMoveDist + fObjScale)/2.f)*2)/(float)(iMonCount-1);
몬스터가 2개 일땐 하나 텀,3개일땐 2개의 텀 이 n개 일땐 n-1
3개 부턴 빨간색 distance를 나눠서 곱해준다
SetCenterPos(Vec2(fMoveDist+fObjScale/2.f))+(float)i*fTerm,50.f)