本文整理汇总了C++中Lixxie::get_updates_since_bomb方法的典型用法代码示例。如果您正苦于以下问题:C++ Lixxie::get_updates_since_bomb方法的具体用法?C++ Lixxie::get_updates_since_bomb怎么用?C++ Lixxie::get_updates_since_bomb使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Lixxie
的用法示例。
在下文中一共展示了Lixxie::get_updates_since_bomb方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: update_faller
void update_faller(Lixxie& l, const UpdateArgs& ua)
{
for (int i = 0; i <= l.get_special_y() && l.get_ac() == LixEn::FALLER;++i){
// a bit kludgy, we can't do such a thing for flingers etc, since
// they might be nonconstant.
if (l.get_foot_encounters() & Lookup::bit_trampoline) {
// stop falling, so the trampoline can be used
break;
}
else if (l.is_solid(0, i+2)) {
l.move_down(i);
l.set_special_x(l.get_special_x() + i);
// Schirm in letzter Sekunde?
if (l.get_special_x() > Lixxie::distance_safe_fall
&& !l.get_floater()) {
l.become(LixEn::SPLATTER);
l.play_sound(ua, Sound::SPLAT);
// Nicht explodieren lassen, das täte er bei 76 :-)
if (l.get_updates_since_bomb() == 75)
l.set_updates_since_bomb(0);
}
else if ((l.get_special_x() <= 9 && l.get_frame() < 1)
|| l.get_special_x() == 0) {
l.become(LixEn::WALKER);
if (l.get_runner()) l.set_frame(6);
else l.set_frame(8);
}
else if (l.get_frame() < 2) {
l.become(LixEn::WALKER);
l.set_frame(0);
}
else if (l.get_frame() < 3) {
l.become(LixEn::LANDER);
l.set_frame(1);
}
else {
l.become(LixEn::LANDER);
// use the regular frame 0
}
}
}
if (l.get_ac() == LixEn::FALLER) {
l.set_special_x(l.get_special_x() + l.get_special_y());
l.move_down(l.get_special_y());
if (l.get_special_y() < 8) l.set_special_y(l.get_special_y() + 1);
// The last two frames alternate, the first frames are just the
// initial frames of falling.
if (l.is_last_frame()) l.set_frame(l.get_frame() - 1);
else l.next_frame();
if (l.get_floater()
&& l.get_special_x() >= Lixxie::distance_float) {
const int sy = l.get_special_y();
l.become(LixEn::FLOATER);
l.set_special_y(sy);
}
}
}