【发布时间】:2016-04-30 09:52:54
【问题描述】:
我正在尝试制作射击游戏,同时尝试对敌人进行编码 为了面向玩家,我尝试使用三角函数找到必要的旋转,但代码不起作用,并且敌人旋转不规律。这是代码:
void face(sf::Sprite& target, sf::Sprite& subject){
int adjacent = subject.getPosition().x - target.getPosition().x;
int opposite = target.getPosition().y - subject.getPosition().y;
if (opposite == 0){
opposite++;
}
if (adjacent == 0){
adjacent++;
}
//if (adjacent < 0){
//adjacent += 180;
//}
float result=atan(/*opposite / adjacent*/adjacent/opposite)*180/PI;
subject.setRotation(result);
}
任何建议将不胜感激!
【问题讨论】:
-
adjacent和opposite应该是浮点数,因为sf::Sprite的位置是浮点数。
标签: c++ rotation sprite sfml trigonometry