2013-05-11 37 views
0

我试图复制本教程:平稳地移动飞船与SFML C++

http://gamedev.tutsplus.com/tutorials/implementation/smoothly-move-an-entity-to-the-position-of-the-mouse/

这是我的代码以SFML在我的游戏主循环:

xDistance = sf::Mouse::getPosition(window).x - joueur.getX(); 
yDistance = sf::Mouse::getPosition(window).y - joueur.getY(); 
distance = sqrt((xDistance * xDistance) + (yDistance * yDistance)); 

if(distance > 1) 
{ 
    joueur.move(joueur.getX() + xDistance * easingAmount, joueur.getY() + yDistance * easingAmount); 
} 

但忽略了最低工作和我得到一个非常奇怪的运动......我的意思是它非常简单直接...

任何想法?

+0

这将以与JS工作相同的方式工作,唯一的区别在于每个框架与“玩家速度”之间的时间。如果javascript显示的帧数更多,但播放速度相同,则在移动光标时播放器的移动看起来会更平滑,但实际上这仍然是一条直线。 – RelevantUsername 2013-05-11 00:12:31

回答

1

move()将当前位置添加到对象(而不是覆盖它的setPosition())。您不需要将其当前位置添加到joueur.getX()