Object monster

김태훈·2024년 1월 8일
0

Win32API

목록 보기
10/24
post-custom-banner

일정한 간격을 움직이는 monster 만들기

일정한 간격을 왕복해서 움직이는 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)

profile
복습을 위한 핵심 내용 및 모작
post-custom-banner

0개의 댓글