Пример #1
0
/**
 * callback executed when the scene is loaded
 */
function load_cb(data_id) {
  m_game_ui.close_load_screen(true);
  m_app.enable_controls();
  m_app.enable_camera_controls();

  //m_cfg.set("enable_outlining",true);

  // place your code here
  m_notifications.setupIcons(4);
  charPizza = m_scenes.get_object_by_name("Pizza_Arm");
  charSue = m_scenes.get_object_by_name("Sue_Office");
  charWater = m_scenes.get_object_by_name("water_rig");
  m_animation.apply(charSue,"dmt_sue_idle_B4W_BAKED");
  m_animation.set_behavior(charSue, m_animation.AB_CYCLIC);
  m_animation.play(charSue);

  m_scene_mouse.set_hover_cursor(m_scenes.get_object_by_name("Toaster"), "pointer");
  m_scene_mouse.set_hover_cursor(m_scenes.get_object_by_name("Counter_Basin"), "pointer");
  m_scene_mouse.set_hover_cursor(m_scenes.get_object_by_name("Pizza_Box"), "pointer");
  m_scene_mouse.set_hover_cursor(m_scenes.get_object_by_name("Light_Switch"), "pointer");

  var canvas = m_container.get_canvas();
  canvas.addEventListener("mouseup", on_mouse_up);
  canvas.addEventListener("mousedown", on_mouse_down);

  m_line_speed.freeze();
  if (qs["skip_intro"] == "1")
    end_cutscene();
  else
    play_cutscene(true);
}
Пример #2
0
function show_replay() {
    _replay_circle.addEventListener("click", return_to_begin);

    var replay_style = _replay.style;

    replay_style.opacity = 0;
    replay_style.display = "block";

    var b4w_logo_style = _blend4web_logo.style;

    b4w_logo_style.opacity = 0;
    b4w_logo_style.display = "block";

    var soc_but_style = _social_buttons.style;

    soc_but_style.opacity = 0;
    soc_but_style.display = "block";

    m_app.css_animate(_replay, "opacity", 0, 1, REPLAY_FADE_IN, "", "", function() {
        m_app.css_animate(_blend4web_logo, "opacity", 0, 1, LOGO_FADE_IN);
        m_app.css_animate(_social_buttons, "opacity", 0, 1, SOCIAL_FADE_IN);
    });

    m_anim.apply(_bm_13_Armature, "bm_13_Armature_rotate_-20_Action");
    m_anim.set_behavior(_bm_13_Armature, m_anim.AB_FINISH_STOP);
    m_anim.set_first_frame(_bm_13_Armature);
}
Пример #3
0
    function anim_cb(obj, id, pulse) {
        if (_char_wrapper.state == m_conf.CH_ATTACK)
            return;

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

        var cur_anim = m_anim.get_current_anim_name(_char_wrapper.rig);
        var required_anim = m_conf.CHAR_IDLE_ANIM;

        if (_char_wrapper.state == m_conf.CH_JUMP) {
            var required_anim = m_conf.CHAR_JUMP_ANIM;
        } else if (move_state.forw_back == 1) {
            var required_anim = m_conf.CHAR_RUN_ANIM;
        } else if (move_state.forw_back == -1) {
            var required_anim = m_conf.CHAR_RUN_ANIM;
            m_anim.set_speed(_char_wrapper.rig, -1);
        } else if (move_state.left_right == 1) {
            var required_anim = m_conf.CHAR_STRAFE;
            m_anim.set_speed(_char_wrapper.rig, -1);
        } else if (move_state.left_right == -1) {
            var required_anim = m_conf.CHAR_STRAFE;
        }

        if (cur_anim != required_anim) {
            m_anim.apply(_char_wrapper.rig, required_anim);
            m_anim.play(_char_wrapper.rig);
            m_anim.set_behavior(_char_wrapper.rig, m_anim.AB_CYCLIC);
        }
    }
Пример #4
0
exports.typing_loop = function() {
  if (state == "typing_loop")
    return false;
  state = "typing_loop";
  m_anim.apply(keani, "Keani_Chairpos_Type_Loop_B4W_BAKED");
  pingpong(keani);
}
Пример #5
0
function kill_character() {
    m_anim.apply(_character_rig, "character_death");
    m_anim.play(_character_rig);
    m_anim.set_behavior(_character_rig, m_anim.AB_FINISH_STOP);
    m_phy.set_character_move_dir(_character, 0, 0);
    m_ctl.remove_sensor_manifolds(_character);
}
Пример #6
0
/**
 * callback executed when the scene is loaded
 */
function load_cb(data_id) {
  m_game_ui.close_load_screen(true);
  m_app.enable_controls();
  m_app.enable_camera_controls();

  // place your code here
  m_notifications.setupIcons(3);
  charTom = m_scenes.get_object_by_name("Tom_Office");
  m_animation.apply(charTom,"Tom_EnterX_B4W_BAKED");
  m_animation.set_behavior(charTom, m_animation.AB_FINISH_STOP);
  m_animation.play(charTom, function(){
    m_animation.apply(charTom,"Tom_idleXX_B4W_BAKED");
    m_animation.set_behavior(charTom, m_animation.AB_CYCLIC);
    m_animation.play(charTom);
  });

  m_scene_mouse.set_hover_cursor(m_scenes.get_object_by_name("Level_2"), "pointer");
  m_scene_mouse.set_hover_cursor(m_scenes.get_object_by_name("Exit"), "pointer");
  m_scene_mouse.set_hover_cursor(m_scenes.get_object_by_name("Plant"), "pointer");

  var canvas = m_container.get_canvas();
  canvas.addEventListener("mouseup", on_mouse_up);
  canvas.addEventListener("mousedown", on_mouse_down);
  if (m_main.is_paused())
    m_main.resume();
  m_game_ui.set_game_hidden(false);
  document.getElementById('mod_header').style.animationPlayState = 'running';
  document.getElementById('quiz_wrapper').style.display = 'block';
  start_quiz();
}
Пример #7
0
 m_animation.play(charSue, function(){
   m_animation.apply(charSue,"dmt_sue_idle_B4W_BAKED");
   m_animation.set_behavior(charSue, m_animation.AB_CYCLIC);
   m_animation.play(charSue);
   submitted = false;
   // m_scene_mouse.enable_cursor_hover();
 });
Пример #8
0
function return_to_begin() {

    _blend4web_logo.style.display = "";
    _social_buttons.style.display = "";
    _replay.style.display         = "";

    m_mat.set_nodemat_value(_control_box, ["control_box", "Value"], 0);

    m_anim.set_first_frame(_cam);

    _replay_circle.removeEventListener("click", return_to_begin);

    _rocket_num = 0;

    m_trans.set_tsr(_cam, _cam_tsr);

    m_trans.set_tsr(_light_point, _light_point_tsr);

    m_lights.set_light_params(_light_point, _light_params);

    m_anim.apply(_cam, _camera_action);

    m_anim.set_first_frame(_control_box);
    m_anim.set_first_frame(_control_box_button);

    m_sfx.play_def(_noise_spk);

    _camera_state = 1;

    open_rocket_box();
}
Пример #9
0
function kill(golem_wrapper) {
    var golem = golem_wrapper.empty;
    var golem_death_empty = m_scs.get_object_by_name(m_conf.GOLEMS_DEATH_EMPTY);
    var golem_death = m_scs.get_object_by_dupli_name(m_conf.GOLEMS_DEATH_EMPTY,
                                                     m_conf.GOLEMS_DEATH_RIG);
    var golem_death_blow = m_scs.get_object_by_dupli_name(m_conf.GOLEMS_DEATH_EMPTY,
                                                          m_conf.GOLEMS_DEATH_BLOW);
    var trans = _vec3_tmp;
    var quat = _quat4_tmp;

    m_trans.get_translation(golem, trans);
    m_trans.get_rotation(golem, quat);
    m_trans.set_translation_v(golem_death_empty, trans);
    m_trans.set_rotation_v(golem_death_empty, quat);

    m_anim.apply(golem_death, "golem_death");
    m_anim.set_behavior(golem_death, m_anim.AB_FINISH_STOP);
    m_anim.play(golem_death);

    m_anim.play(golem_death_blow);
    m_sfx.stop(golem_wrapper.walk_speaker);

    m_trans.set_translation_v(golem, m_conf.DEFAULT_POS);
    m_gems.spawn(trans);

    golem_wrapper.island_id = -1;
    golem_wrapper.hp = 100;
    set_state(golem_wrapper, m_conf.GS_NONE)

    m_obelisks.change_gems_num(golem_wrapper.island_id, 0);
}
Пример #10
0
exports.start_typing = function() {
  if (state == "start_typing")
    return false;
  state = "start_typing";
  m_anim.apply(keani, "Keani_Chairpos_Type_Start_B4W_BAKED");
  m_anim.set_behavior(keani, m_anim.AB_FINISH_STOP);
  m_anim.play(keani, exports.typing_loop);
}
Пример #11
0
exports.stretch = function() {
  if (state == "stretch")
    return false;
  state = "stretch";
  m_anim.apply(keani, "Keani_Chairpos_Stretch_B4W_BAKED");
  m_anim.set_behavior(keani, m_anim.AB_FINISH_STOP);
  m_anim.play(keani);
}
Пример #12
0
function set_camera_action() {
    if (window.innerWidth > window.innerHeight)
        _camera_action = "Camera_wide screen_Action";
    else
        _camera_action = "Camera_narrow_screen_Action";

    if (_cam && _camera_state == 1 && !m_anim.is_play(_cam))
        m_anim.apply(_cam, _camera_action);
}
Пример #13
0
function demo_link_click(e) {
    m_data.activate_media();
    var letters_arm = m_scs.get_object_by_name('beads_armature');
    var spk = m_scs.get_object_by_name("Speaker");

    m_sfx.play_def(spk);
    m_anim.apply(letters_arm, "flying_letters");
    m_anim.play(letters_arm, letters_obj_cb);
}
Пример #14
0
exports.unreach = function() {
  if (state == "unreach")
    return false;
  state = "unreach";
  m_anim.apply(keani, "Keani_Chairpos_Reach_B4W_BAKED");
  m_anim.set_behavior(keani, m_anim.AB_FINISH_STOP);
  m_anim.set_last_frame(keani);
  m_anim.set_speed(keani, -1.0);
  m_anim.play(keani);
}
    function move_cb(obj, id, pulse) {
	
        if (pulse == 1) {
            switch(id) {
            case "WALK":
                m_anim.apply(_character_rig, "walk_001");
		m_anim.set_behavior(_character_rig, m_anim.AB_CYCLIC)
                break;
            case "KICK":
                m_anim.apply(_character_rig, "kick_001");
		m_anim.set_behavior(_character_rig, m_anim.AB_FINISH_STOP);
                break;
            }
        } else {
            m_anim.apply(_character_rig, "stand_001");
        }

        m_anim.play(_character_rig);
        m_anim.set_behavior(_character_rig, m_anim.AB_CYCLIC);
    };
Пример #16
0
    function move_cb(obj, id, pulse) {
        if (pulse == 1) {
            switch(id) {
            case "FORWARD":
                var move_dir = 1;
                m_anim.apply(_character_rig, "character_run");
                break;
            case "BACKWARD":
                var move_dir = -1;
                m_anim.apply(_character_rig, "character_run");
                break;
            }
        } else {
            var move_dir = 0;
            m_anim.apply(_character_rig, "character_idle_01");
        }

        m_phy.set_character_move_dir(obj, move_dir, 0);

        m_anim.play(_character_rig);
        m_anim.set_behavior(_character_rig, m_anim.AB_CYCLIC);
    };
Пример #17
0
//==============================================================================
// SETUP SHOOTING LOGIC
//==============================================================================
function shoot(time) {
    if (time - _last_shoot_time > SHOOT_LISER_DELAY) {
        m_ctl.set_custom_sensor(_burst_fire_sensor, 1);
        var laser_obj = _cockpit.laser_obj;
        if (laser_obj) {
            m_anim.apply(laser_obj, "laser_strike");
            m_anim.play(laser_obj);
            m_anim.set_behavior(laser_obj, m_anim.AB_FINISH_STOP);
        }
        _last_shoot_time = time;
        _burst_time = time;

        var speaker_strike = _cockpit.speaker_strike;
        if (speaker_strike)
            m_sfx.play_def(speaker_strike);

        var lighting = _cockpit.lighting;
        if (lighting) {
            m_anim.apply(lighting, "laser_strike_lighting");
            m_anim.play(lighting);
        }
    }
}
Пример #18
0
function load_cb(data_id) {
    _character = m_scs.get_first_character();
    _character_rig = m_scs.get_object_by_dupli_name("character",
                                                    "character_rig");
    setup_movement();
    setup_rotation();
    setup_jumping();

    m_anim.apply(_character_rig, "character_idle_01");
    m_anim.play(_character_rig);
    m_anim.set_behavior(_character_rig, m_anim.AB_CYCLIC);

    setup_camera();
}
function load_cb(root) {
	//m_app.enable_camera_controls();
	
	_character_rig = m_scenes.get_object_by_name("character_armature");
	
	setup_anime()
	
	m_anim.apply(_character_rig, "stand_001");
	m_anim.play(_character_rig);
	m_anim.set_behavior(_character_rig, m_anim.AB_CYCLIC);


	m_main.append_loop_cb(main_loop_callback)

}
Пример #20
0
function init_anims(node) {
    var obj = node.payload.anim_obj;
    var inst = node.instances[_gs.ro_sm_node_state.instance_id];
    inst.anim = {};
    for (var i = 0; i < node.payload.anim.length; i++) {
        var anim = node.payload.anim[i];
        var slot_num = m_anim.get_slot_num_by_anim(obj, anim.name);
        if (slot_num < 0) {
            slot_num = anim.slot;
            inst.anim[anim.name] = slot_num;
            m_anim.apply(obj, anim.name, slot_num);
        }
        m_anim.set_behavior(obj, anim.flags, slot_num);
    }
}
Пример #21
0
 return function(callback) {
   if (ANIM_MODES.indexOf(mode) == -1)
     mode = m_anim.AB_FINISH_STOP;
   m_anim.apply(obj, anim_name);
   if (mode === exports.PINGPONG) {
     pingpong(obj, false, callback);
   }
   else {
     m_anim.set_behavior(obj, mode);
     if (speed < 0)
       m_anim.set_last_frame(obj);
     m_anim.set_speed(obj, speed);
     m_anim.play(obj, callback);
   }
 }
Пример #22
0
    var jump_cb = function(obj, id, pulse) {
        if (pulse == 1 && _char_wrapper.state != m_conf.CH_ATTACK) {
            _char_wrapper.state = m_conf.CH_JUMP;
            m_phy.character_jump(obj);

            var id = Math.floor(_char_jump_spks.length * Math.random());
            m_sfx.play_def(_char_jump_spks[id]);

            m_anim.apply(_char_wrapper.rig, m_conf.CHAR_JUMP_ANIM);
            m_anim.set_behavior(_char_wrapper.rig, m_anim.AB_FINISH_STOP);
            m_anim.play(_char_wrapper.rig);

            _char_wrapper.move_state.forw_back = 0;
            _char_wrapper.move_state.left_right = 0;
        }
    }
Пример #23
0
    var attack_cb = function(obj, id, pulse) {
        if (pulse == 1 && _char_wrapper.state != m_conf.CH_ATTACK) {
            _char_wrapper.state = m_conf.CH_ATTACK;
            _char_wrapper.move_state.forw_back = 0;
            _char_wrapper.move_state.left_right = 0;
            var anim_id = Math.floor(_char_attack_anims.length * Math.random());
            var attack_anim = _char_attack_anims[anim_id];
            m_anim.apply(_char_wrapper.rig, attack_anim);
            m_anim.set_behavior(_char_wrapper.rig, m_anim.AB_FINISH_STOP);
            m_anim.play(_char_wrapper.rig, finish_attack_cb);

            m_phy.set_character_move_dir(_char_wrapper.phys_body, 0, 0);
            char_attack_done = false;

            process_attack_speakers();
        }
    }
Пример #24
0
function setup_movement(up_arrow, down_arrow) {
    var key_w     = m_ctl.create_keyboard_sensor(m_ctl.KEY_W);
    var key_s     = m_ctl.create_keyboard_sensor(m_ctl.KEY_S);
    var key_up    = m_ctl.create_keyboard_sensor(m_ctl.KEY_UP);
    var key_down  = m_ctl.create_keyboard_sensor(m_ctl.KEY_DOWN);

    var move_array = [
        key_w, key_up, up_arrow,
        key_s, key_down, down_arrow
    ];

    var forward_logic  = function(s){return (s[0] || s[1] || s[2])};
    var backward_logic = function(s){return (s[3] || s[4] || s[5])};

    function move_cb(obj, id, pulse) {
        if (pulse == 1) {
            switch(id) {
            case "FORWARD":
                var move_dir = 1;
                m_anim.apply(_character_rig, "character_run");
                break;
            case "BACKWARD":
                var move_dir = -1;
                m_anim.apply(_character_rig, "character_run");
                break;
            }
        } else {
            var move_dir = 0;
            m_anim.apply(_character_rig, "character_idle_01");
        }

        m_phy.set_character_move_dir(obj, move_dir, 0);

        m_anim.play(_character_rig);
        m_anim.set_behavior(_character_rig, m_anim.AB_CYCLIC);
    };

    m_ctl.create_sensor_manifold(_character, "FORWARD", m_ctl.CT_TRIGGER,
        move_array, forward_logic, move_cb);
    m_ctl.create_sensor_manifold(_character, "BACKWARD", m_ctl.CT_TRIGGER,
        move_array, backward_logic, move_cb);

    m_anim.apply(_character_rig, "character_idle_01");
    m_anim.play(_character_rig);
    m_anim.set_behavior(_character_rig, m_anim.AB_CYCLIC);
}
Пример #25
0
exports.run_victory = function() {

    _char_wrapper.state = m_conf.CH_VICTORY;

    disable_controls();

    m_anim.apply(_char_wrapper.rig, m_conf.CHAR_VICTORY_ANIM);
    m_anim.set_behavior(_char_wrapper.rig, m_anim.AB_CYCLIC);
    m_anim.play(_char_wrapper.rig);

    m_sfx.play_def(_char_win_spk);

    var camobj = m_scs.get_active_camera();
    m_cons.remove(camobj);

    var pivot = m_trans.get_translation(_char_wrapper.target);
    var cam_params = {pivot: pivot};
    m_cam.target_setup(camobj, cam_params);

    var elapsed_sensor = m_ctl.create_elapsed_sensor();
    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);
        }
    }
    m_ctl.create_sensor_manifold(camobj, "CAMERA_ROTATION", m_ctl.CT_CONTINUOUS,
        [m_ctl.create_elapsed_sensor()], null, cam_rotate_cb);
}
Пример #26
0
 check: function() {
   var validationData = ValidateQuestion();
   switch (validationData[1]){
     case "Level_2":
       setTimeout(function() {
         s04q01_no.play();
       }, 500);
       question_text.innerHTML =
       //==============================================
       "<strong>No Tom. Best we go outside.</strong>";
       //==============================================
       $('.balance-text').balanceText();
       m_notifications.setIcon(0,"cross",null,null);
       break;
     case "Plant":
       setTimeout(function() {
         s04q01_again.play();
       }, 500);
       question_text.innerHTML =
       //==============================================
       "<strong>No Tom. Not a good time to admire the plant.</strong>";
       //==============================================
       $('.balance-text').balanceText();
       m_notifications.setIcon(1,"cross",null,null);
       break;
     case "Exit":
       setTimeout(function() {
         s04q01_answer.play();
       }, 500);
       question_text.innerHTML =
       //==============================================
       "<strong>Yes, let's go.</strong>";
       //==============================================
       $('.balance-text').balanceText();
       m_animation.apply(charTom,"Tom_ExitX_B4W_BAKED");
       m_animation.set_behavior(charTom, m_animation.AB_FINISH_STOP);
       m_animation.play(charTom);
       m_notifications.setIcon(2,"check",null,null);
       break;
     }
   return validationData[0];
 }
Пример #27
0
function run_firework() {
    var hide_obj = m_scs.hide_object;

    hide_obj(_firework_1);
    hide_obj(_firework_2_1);
    hide_obj(_firework_2_2);

    m_anim.apply(_9_may_logo, "9may_atlas_Shader_NodetreeAction");

    m_anim.set_first_frame(_9_may_logo);
    m_anim.set_behavior(_9_may_logo, m_anim.AB_FINISH_STOP);

    m_sfx.stop(_fireworks_spk);
    m_sfx.play_def(_fireworks_spk);

    _interval = 0;

    for (var i = 2; i <= _rocket_num + 1; i++)
        action_firework_item(i);
}
Пример #28
0
function action_rails() {
    if (!_rocket_num)
        return;

    _canvas_elem.removeEventListener("mousedown", get_clicked_object);
    _canvas_elem.removeEventListener("touchstart", get_clicked_object);

    m_sfx.stop(_button_spk);
    m_sfx.play_def(_button_spk);

    m_anim.apply(_control_box_button, "press_button_Action");
    m_anim.set_behavior(_control_box_button, m_anim.AB_FINISH_STOP);
    m_anim.play(_control_box_button);

    m_anim.set_speed(_rockets_box, -1);

    m_anim.play(_rockets_box, function() {
        m_anim.apply(_bm_13_Armature, "bm_13_Armature_rotate_-37_Action");
        m_anim.set_first_frame(_bm_13_Armature);
        m_anim.set_behavior(_bm_13_Armature, m_anim.AB_FINISH_STOP);
        m_anim.play(_bm_13_Armature, action_camera);
    });
}
Пример #29
0
function kill() {

    disable_controls()
    if (_level_conf.MUSIC_SPEAKERS) {
        m_sfx.clear_playlist();
        var intro_spk = m_scs.get_object_by_dupli_name_list(
                                _level_conf.MUSIC_INTRO_SPEAKER);
        var end_spk = m_scs.get_object_by_dupli_name_list(
                                _level_conf.MUSIC_END_SPEAKER);
        m_sfx.stop(intro_spk);
        m_sfx.play_def(end_spk);
    }

    var char_death_spk = m_scs.get_object_by_dupli_name(m_conf.CHAR_EMPTY,
                                                     m_conf.CHAR_DEATH_SPEAKER);
    m_sfx.play_def(char_death_spk);

    var anim_id = Math.floor(_char_death_anims.length * Math.random());
    var death_anim = _char_death_anims[anim_id];
    m_anim.apply(_char_wrapper.rig, death_anim);
    m_anim.set_behavior(_char_wrapper.rig, m_anim.AB_FINISH_STOP);
    m_anim.play(_char_wrapper.rig);

    m_interface.show_replay_button(1);

    if (_char_wrapper.gem_slot)
        remove_gem();

    if (m_bonuses.shield_time_left() > 0)
        remove_shield();

    if (m_bonuses.lava_protect_time_left() > 0)
        remove_lava_protect();

    m_obj.set_nodemat_value(_cam_indicator,
            ["camera_indicator", m_conf.CAM_INDICATOR_VAL], 1.0);
}
Пример #30
0
function apply_animation(ev_track) {

    var obj = ev_track.rig;
    if (m_anim.is_play(obj))
        return;

    var anim_to_play = null;

    switch (ev_track.state) {
    case MS_IDLE:
        anim_to_play = get_idle_animation(ev_track);
        break;
    case MS_MOVING:
        anim_to_play = get_move_animation(ev_track);
        break;
    }

    if (anim_to_play) {
        m_anim.apply(obj, anim_to_play);
        m_anim.cyclic(obj, false);
        m_anim.set_current_frame_float(obj, 0);
        m_anim.play(obj);
    }
}