本文整理汇总了C++中Lixxie::get_dir方法的典型用法代码示例。如果您正苦于以下问题:C++ Lixxie::get_dir方法的具体用法?C++ Lixxie::get_dir怎么用?C++ Lixxie::get_dir使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Lixxie
的用法示例。
在下文中一共展示了Lixxie::get_dir方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: set_frame_after_aiming
// Hilfsfunktion
void set_frame_after_aiming(Lixxie& l, const UpdateArgs& ua)
{
const double pi = std::acos(-1.0);
const int x = (ua.aim_x - l.get_ex()) * l.get_dir();
const int y = ua.aim_y - l.get_ey();
// Fuer (0, 0) einfach nix machen, Lix soll wie vorher schauen
if (x != 0 || y != 0) {
// Den Winkel so ausrechnen, als sei (0, 1) der Nullwinkel,
// nicht (1, 0), wie es normal waere. Alles gedreht.
// atan2 nimmt die Dinger in der Reihenfolge 1. y, 2. x.
double angle = std::atan2(-x, -y) * 180 / pi;
if (angle > 99) l.set_frame(frame_aiming_first + 0);
else if (angle > 80) l.set_frame(frame_aiming_first + 1);
else if (angle > 60) l.set_frame(frame_aiming_first + 2);
else if (angle > 30) l.set_frame(frame_aiming_first + 3);
else if (angle > 10) l.set_frame(frame_aiming_first + 4);
else if (angle > -10) l.set_frame(frame_aiming_first + 5);
else if (angle > -30) l.set_frame(frame_aiming_first + 6);
else if (angle > -60) l.set_frame(frame_aiming_first + 7);
else if (angle > -80) l.set_frame(frame_aiming_first + 8);
else if (angle > -99) l.set_frame(frame_aiming_first + 9);
else l.set_frame(frame_aiming_first + 10);
}
}