我用C ++和SFML开发一个简单的机器人模拟器。 现在看起来像那样: enter image description here
黄色和黑色剥离的物体是我的机器人。 我希望通过路径移动他到表面的末端,在第一次移动后,我有另一个动作的问题。 Move方法如下所示:
sf::Vector2f Robot::moveVectore(sf::Vector2f start, sf::Vector2f end, float t){
if(start == end) return sf::Vector2f(0,0);
// policzenie wektora przesunięcia i jego długości
sf::Vector2f offset = sf::Vector2f(end.x - start.x, end.y - start.y);
float length = sqrtf(offset.x * offset.x + offset.y*offset.y);
// normalizacja wektora
offset = sf::Vector2f(offset.x / length, offset.y / length);
offset.x *= t;
offset.y *= t;
return offset;}
它以这种方式使用:
if(robot1.getDistance(145, 300) > 0.1f){
sf::Vector2f offset1 = robot1.moveVectore(robot1.tempPositionVector(), sf::Vector2f(145,300), delta*speed);
robot1.robot.move(offset1);
}
getDistance方法在机器人和终点的临时发布中给出一个向量。 我的问题是如何为这个场景添加更多动作?