Beispiel #1
0
    inline void moveImpl(int mDir)
    {
        auto speed(crouching ? fc.speedCrouching : fc.speedStanding);
        auto crSpd(toCr(speed));
        auto diff((crSpd * mDir) - body->getVelocity().x);

        ssvu::clamp(diff, -crSpd, crSpd);
        body->applyAccel(Vec2f(diff, 0.f));

        dir = mDir > 0 ? Dir::Right : Dir::Left;
    }
Beispiel #2
0
 inline void jump()
 {
     if(isInAir() || crouching) return;
     body->applyAccel(Vec2f(0.f, -toCr(fc.jumpStrength)));
 }
Beispiel #3
0
 inline void stop()
 {
     auto diff(0 - body->getVelocity().x);
     body->applyAccel(Vec2f(diff * 0.9f, 0.f));
 }