winapi 지렁이 부드럽게 움직이는법 - 20170726
연속추적 지렁이(우리가 해야됬던쪽) 지렁이는 그냥 끝부분이 연결이 안끊기고 따라가는 쪽이 많지만, 기본적으로 우리가 해야됬던건 이전 위치를 그대로 답습하는 것이기 때문에 일단 서술함. 지렁이의 머리는 자기가 움직이고 싶은대로 움직일 수 있게 해야됨. 그런고로 이전 정보를 저장한 이후에 따라가면 가장 간단히 완성됨. for (int i = 10; i >0; i--) { _bullet[i].x += _bullet[i - 1].x - _bullet[i].x; _bullet[i].y += _bullet[i - 1].y - _bullet[i].y; } 이런 식으로 구성할 경우, 맨 앞(0번 지렁이 머리)을 제외하고 각각 이전 오브젝트보다 1틱씩 밀려서 생성하고 그대로 따라감. 근데 이걸로 문제가 있는게, 계속 바로 뒷순서로 가기 때문에 일정 간격을 줄수가 없음. 그러므로 간격을 주기 위해서 변형을 해야됨. struct floatPoint // double형 POINT가 아닌 좀 짧은 형태로 재구성. { float x; float y; }; floatPoint points[100]; 해당 소스를 통해서 이전값을 저장할 수 있게 함. points[0] = { _bullet[0].x, _bullet[0].y }; for (int i = 100; i > 0; i--) { points[i] = points[i - 1]; } 그리고 이전값을 쫒아 저장하는 배열을 만들어, 내가 뒤로 밀고 싶은만큼 밀린 위치를 불러와 사용할 수 있도록 조절함. if (_bullet[i].fire) { _bullet[i].x = points[i * 10 - 1].x; _bullet[i].y = points[i * 10 - 1].y; } 10번째씩 뒤로 밀루니 떨어지지 않고 잘 붙음. 또 다른 방법의 지렁이? 붙어는 있되 이동을 강제하지 않는 형태. 인터넷에 돌아다니는 각