当前位置: 首页>>代码示例>>C++>>正文


C++ Lixxie::get_updates_since_bomb方法代码示例

本文整理汇总了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);
        }
    }
}
开发者ID:AmandaBayless,项目名称:Lix,代码行数:62,代码来源:faller.cpp


注:本文中的Lixxie::get_updates_since_bomb方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。