void MoveScript::runScripts()
{
    if(useFaceTarget)
    {
        faceTarget();
    }
    if(useGlobalRotate)
    {
        globalRotate();
    }
    if(useLocalRotate)
    {
        localRotate();
    }
    if(useLocalTrans)
    {
        localTrans();
    }
    if(useGlobalTrans)
    {
        globalTrans();
    }
    if(useSetScale)
    {
        setScale();
    }
    if(useLimitedTrans)
    {
        localTransLimited();
    }
    if(useFollowPlayer)
    {
        followPlayer();
    }
    if(useBulletTrans)
    {
        bulletTranslation();
    }

}
Beispiel #2
0
    // TODO: switch camera to using a physics/velocity model
    // so that interactions are consistent.
    // the current method could be unstable to framerate
    // and event processing speeds.
    void Camera::handleKeyEvent(window::KeyEvent e) {
        if (e.action == window::action::PRESSED || e.action == window::action::REPEAT)
        {
            switch (e.key)
            {
                default:
                    break;

                // zoom = move forward/back
                case window::key::W:
                    zoom(0.2f);
                    break;
                case window::key::S:
                    zoom(-0.2f);
                    break;

                // move (slide)
                case window::key::C:
                    localTranslate({0, -0.2f, 0});
                    break;
                case window::key::E:
                    localTranslate({0, 0.2f, 0});
                    break;
                case window::key::A:
                    localTranslate({-0.2f,0,0});
                    break;
                case window::key::D:
                    localTranslate({0.2f,0,0});
                    break;

                // look around
                case window::key::I:
                    if (e.mods == window::mods::SHIFT)
                        rotateAroundTarget(quat4f(Eigen::AngleAxisf(0.1f, vec3f::UnitX())));
                    else localRotate(quat4f(Eigen::AngleAxisf(0.1f, vec3f::UnitX())));
                    break;
                case window::key::J:
                    if (e.mods == window::mods::SHIFT)
                        rotateAroundTarget(quat4f(Eigen::AngleAxisf(0.1f, vec3f::UnitY())));
                    else localRotate(quat4f(Eigen::AngleAxisf(0.1f, vec3f::UnitY())));
                    break;
                case window::key::K:
                    if (e.mods == window::mods::SHIFT)
                        rotateAroundTarget(quat4f(Eigen::AngleAxisf(-0.1f, vec3f::UnitX())));
                    else localRotate(quat4f(Eigen::AngleAxisf(-0.1f, vec3f::UnitX())));
                    break;
                case window::key::L:
                    if (e.mods == window::mods::SHIFT)
                        rotateAroundTarget(quat4f(Eigen::AngleAxisf(-0.1f, vec3f::UnitY())));
                    else localRotate(quat4f(Eigen::AngleAxisf(-0.1f, vec3f::UnitY())));
                    break;

                // rolling
                case window::key::U:
                    localRotate(quat4f(Eigen::AngleAxisf(0.1f, vec3f::UnitZ())));
                    break;
                case window::key::O:
                    localRotate(quat4f(Eigen::AngleAxisf(-0.1f, vec3f::UnitZ())));
                    break;

            }
        }
    }