Example #1
0
function rotate_cam_cb(obj, id, pulse) {

    if (m_nla.is_play())
        return;

    if (_cam_dist === null)
        return;

    var camobj = m_scs.get_active_camera();

    var default_x = _canvas_elem.width / 2;
    var default_y = _canvas_elem.height / 2;

    m_cam.get_camera_angles(camobj, _vec2_tmp);

    var dx = (default_x - _mouse_x) / _canvas_elem.width * _cam_rot_fac;
    var dy = (default_y - _mouse_y) / _canvas_elem.height * _cam_rot_fac;
    var x = _default_cam_rot[0] - dx;
    var y = -_default_cam_rot[1] - dy;

    _vec3_tmp[0] = _cam_pivot[0] + _cam_dist * Math.sin(x);
    _vec3_tmp[1] = _cam_pivot[1] - _cam_dist * Math.cos(x);
    _vec3_tmp[2] = _cam_pivot[2] + _cam_dist * Math.sin(y);

    m_cam.static_set_look_at(camobj, _vec3_tmp, _cam_pivot);
    m_cam.correct_up(camobj);
}
Example #2
0
function intro_load_cb(data_id) {

    _hq_loaded = false;
    _button_clicked = false;
    _selected_obj = null;

    _mouse_x = _canvas_elem.width / 2;
    _mouse_y = _canvas_elem.height / 2;

    m_assets.enqueue([{id:"config", type:m_assets.AT_JSON, url:"js/intro_config.json"}],
            process_config);

    var camobj = m_scs.get_active_camera();
    m_cam.get_camera_angles(camobj, _default_cam_rot);

    setTimeout(function() {
            var canvas_cont = m_cont.get_container();
            canvas_cont.style.opacity = 1;
        }, 1000);
    
    if (!m_main.detect_mobile()) {

        var ray_test_cb = function(sens_obj, id, pulse) {
            var sens_val = m_ctl.get_sensor_value(sens_obj, id, 0);
            var payload = m_ctl.get_sensor_payload(sens_obj, id, 0);
            var obj = payload.obj_hit;
            _ray_id = payload.ray_test_id;

            if (!sens_val) {
                _selected_obj = null;
                return;
            }

            if (obj != _selected_obj) {
                _selected_obj = obj;
                var binfo = _buttons_info[obj.name];
                if (binfo && binfo.speaker)
                    m_sfx.play_def(binfo.speaker);
            }
        }

        var ray_sens = m_ctl.create_ray_sensor(camobj, _cam_from, _cam_to, "BUTTON",
                                         true, false, true);
        m_ctl.create_sensor_manifold(null, "BUTTON_HOVER", m_ctl.CT_CONTINUOUS,
                                    [ray_sens], function(s){return true}, ray_test_cb);

        _canvas_elem.addEventListener("mousedown", main_canvas_click, false);
        _canvas_elem.addEventListener("mousemove", main_canvas_mouse_move, false);
        setTimeout(function() {
            if (!_hq_loaded && !_button_clicked)
                load_HQ_elements();
        }, 10000)

    } else
        _canvas_elem.addEventListener("touchstart", main_canvas_touch, false);
}
Example #3
0
function load_cb(data_id) {

    _mouse_x = _canvas_elem.width / 2;
    _mouse_y = _canvas_elem.height / 2;

    m_cam.get_camera_angles(m_scs.get_active_camera(), _default_cam_rot);
    m_assets.enqueue([["config", m_assets.AT_JSON, "js/intro_config.json"]],
            process_config, null);

    _canvas_elem.addEventListener("mousemove", main_canvas_mouse_move, false);
    _canvas_elem.addEventListener("mouseup", main_canvas_click, false);
}
Example #4
0
    function rotation_cb(rot_x, rot_y) {
        m_phy.character_rotation_inc(_char_wrapper.phys_body, rot_x, 0);
        if (rot_y) {
            m_cam.eye_rotate(camobj, 0, rot_y);

            m_cam.get_camera_angles(camobj, _vec3_tmp);
            offset[2] = -dist * Math.cos(_vec3_tmp[1]);
            offset[1] = -dist * Math.sin(_vec3_tmp[1]);

            m_cons.append_semi_stiff_cam(camobj, _char_wrapper.target, offset, null,
                                 clamp_left, clamp_right, clamp_up, clamp_down);
        }
    }
Example #5
0
    function cam_rotate_cb(obj, id, pulse) {
        var angles = m_cam.get_camera_angles(obj, _vec2_tmp);
        var dist = m_cam.target_get_distance(obj);

        var elapsed = m_ctl.get_sensor_value(obj, id, 0);
        var hor_angle = elapsed * 0.1;

        if (angles[1] < _level_conf.VICT_CAM_VERT_ANGLE)
            var vert_angle = elapsed * 0.05;
        else
            var vert_angle = 0;

        m_cam.target_rotate(obj, hor_angle, vert_angle);

        if (dist > _level_conf.VICT_CAM_DIST) {
            dist -= elapsed;
            m_cam.target_set_distance(obj, dist);
        }
    }
Example #6
0
    var controller_cb = function(obj, id, pulse) {
        var w = m_ctl.get_sensor_value(obj, id, 0);
        var d = m_ctl.get_sensor_value(obj, id, 1);
        var s = m_ctl.get_sensor_value(obj, id, 2);
        var a = m_ctl.get_sensor_value(obj, id, 3);
        var r1 = m_ctl.get_sensor_value(obj, id, 4);
        var r2 = m_ctl.get_sensor_value(obj, id, 5);
        var l1 = m_ctl.get_sensor_value(obj, id, 6);
        var l2 = m_ctl.get_sensor_value(obj, id, 7);
        var left_vaxis = m_ctl.get_sensor_value(obj, id, 8);
        var left_haxis = m_ctl.get_sensor_value(obj, id, 9);
        var right_vaxis = m_ctl.get_sensor_value(obj, id, 10);
        var right_haxis = m_ctl.get_sensor_value(obj, id, 11);
        var elapsed = m_ctl.get_sensor_value(obj, id, 12);
        var time = m_ctl.get_sensor_value(obj, id, 13);

        var rot_value = elapsed * GAMEPAD_AXIS_ROTATION;

        var velocity = m_cam.get_velocities(obj, _velocity_tmp);
        if (w)
            _dest_y_trans += velocity.trans * COCKPIT_TRANS_FACTOR * elapsed;
        if (s)
            _dest_y_trans -= velocity.trans * COCKPIT_TRANS_FACTOR * elapsed;
        if (a)
            _dest_x_trans -= velocity.trans * COCKPIT_TRANS_FACTOR * elapsed;
        if (d)
            _dest_x_trans += velocity.trans * COCKPIT_TRANS_FACTOR * elapsed;

        if (r1 || r2 || l1 || l2)
            shoot(time);

        if (!is_hmd) {
            _dest_x_trans -= velocity.trans * COCKPIT_TRANS_FACTOR * elapsed * left_vaxis;
            _dest_y_trans += velocity.trans * COCKPIT_TRANS_FACTOR * elapsed * left_haxis;
            var cam_angles = m_cam.get_camera_angles(obj, _vec2_tmp);
            var vert_ang = cam_angles[1] - right_haxis * rot_value;
            var hor_ang = - right_vaxis * rot_value;

            m_cam.eye_rotate(obj, hor_ang, vert_ang, false, true);
        }
    }
Example #7
0
function rotate_cam_cb(obj, id, pulse) {

    var camobj = m_scs.get_active_camera();
    if (!m_cam.is_target_camera(camobj))
        return;

    var elapsed = m_ctl.get_sensor_value(obj, id, 0);

    var default_x = _canvas_elem.width / 2;
    var default_y = _canvas_elem.height / 2;

    m_cam.get_camera_angles(camobj, _vec2_tmp);

    var c_width = _canvas_elem.width;
    var dx = (default_x - _mouse_x) / _canvas_elem.width * _cam_rot_fac;
    var dy = (default_y - _mouse_y) / _canvas_elem.height * _cam_rot_fac;
    var x = _default_cam_rot[0] - dx;
    var y = _default_cam_rot[1] - dy;

    m_cam.target_rotate(camobj, x, y, true, true);
}