SetVelocity (x, y) 함수를 사용하여 sin 곡선의 경로를 따라 스프라이트를 만들고 싶습니다. 처음에는 이것이 단순 해 보였습니다. 나는 여행하고자하는 함수의 미분을 반환하는 함수를 만들었습니다. 즉 sin (x)에 대해 함수는 해당 x의 코사인을 반환합니다. 문제는이 방정식에서 "x"로 Time (C++ time_t)을 사용한다는 것입니다. 나는이 방정식에서 결과를 반환 할 때, 나는 다음 X와 Y를 가지고 있고, 나는이에 대한 문제가 증가 점점 더 많은 시간이 지남에 따라 그 시간, 즉box2d 본문을 사인 곡선을 따라 만드는 방법
float newY = velocityResults->getVelocityFromLua(x, functionToCall);
float angle = std::atan2(newY,newX);
float velocityX = cos(angle);
float velocityY = sin(angle);
velocityX*=PLAYER_SPEED;
velocityY*=PLAYER_SPEED;
player->getPhysicalProperties()->setVelocity(velocityX,velocityY);
비율을 얻기 위해 삼각 함수를 사용하여, 이것은 더 이상 검사 할 때 전혀 효과가 없기 때문에 내 목표를 달성하기위한 끔찍한 방법입니다. 시간이 계속되고 x가 커지면 모든 것을 따라 잡습니다. 나는 이것을하는 더 쉬운 방법이다는 것을 알고있다 그러나 저를 완전하게 도주하고있다.
(나는이 일을 해요 이유 : 나는 플레이어가 목표를 달성하기 위해 서로 다른 기능 '경로를 따라 이동하는 수학 게임 만들고 있어요)
나는 더 나은 방법을 알아 냈다. 나는 내 전화에서 x * cosx를 돌려주고 이것은 시간과의 비율을 일정하게 유지한다. 누구든지이 사실을 이해할 수 있을지 확신하지는 못하지만 이해가됩니다. – break
당신이 대답 할 수있는 유일한 사람 이었기 때문에 귀하의 답변을 확인했지만 귀하는 제 질문에 대답하지 않았습니다! 방금 다른 방식으로 말해 줬어. – break