float _Height = (float)abs(MOUSEINTERFACE.getPoint().y - mCenter.y); // 현재 캐릭터의 좌표와 마우스와의 좌표 사이의 높이를 구해준다. float _Bottom = (float)abs(MOUSEINTERFACE.getPoint().x - mCenter.x); // 현재 캐릭터의 좌표와 마우스와의 좌표 사이의 밑변의 길이를 구해준다. float _R = sqrt((_Height*_Height) + (_Bottom*_Bottom)); // 빗변을 구하는 공식. // 길이 = 속도(이동픽셀) * 시간 => 시간 = 길이 / 이동 픽셀 float _S = _R/3; // 시간을 X또는 Y축과 나누면 그 축으로 시간만큼 얼마나 이동해야 정해진 시간안에 목표에..
cos(), sin() 함수로 간단하게 구할 수 있다. 우리는 현제 원점(x1,y1)과 또다른 점(x2,y2), 그리고 각도θ를 알 고 있다. 회전운동을 하기 위한 점을 (x3,y3)라 정하면, 먼저 (x1,y1), (x2,y2)의 거리를 구한다.. bottom = (x2 - x1); height = (y2 - y1); 위에서 구한 길이를 토대로, (x3,y3)의 값을 구해준다. x3 = cos(θ) * bottom - sin(θ) * height; y3 = sin(θ) * bottom + cos(θ) * height; 이렇게 구한 (x3,y3)좌표를 계속 구해(x1,y1)과 지속적으로 더하면, x1 += x3; y1 += y3; 최종적으로 저런 형태의 식이 나오며, 직선은 회전운동을 하게 된다.
[기고칼럼] 게임 엔진 전쟁으로 살펴보는 게임 개발의 미래이득우 대표(desk@inven.co.kr) 이득우 대표님은 유니티 테크놀로지스의 한국 지사에서 이사로 근무하였고, '유니티4 게임 개발의 정석'을 집필한 바 있습니다. 현재는 스킬트리랩 교육 센터에서 게임 개발에 관련된 교육 및 최신 기술 세미나와 함께 인디 게임 개발 행사를 진행하고 있습니다. 스킬트리랩은 동아닷컴 평생교육 아카데미에서 운영하는 지식공유 플랫폼으로, 개발자들의 역량 개발 지원 및 부트 캠프를 통한 프로젝트를 지원하고 있습니다. 또한, 결과물 마케팅에도 관여하여 보다 많은 부가가치를 만들어 내도록 노력하고 있습니다. * 외부 필진의 기고 내용은 본지의 편집방향과 일치하지 않을 수도 있습니다. ■ 이득우 대표 기고칼럼 모음 - [1..