Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- "use strict"
- // register the application module
- b4w.register("cube_graphe_main", function(exports, require) {
- // import modules used by the app
- var m_app = require("app");
- var m_cfg = require("config");
- var m_data = require("data");
- var m_preloader = require("preloader");
- var m_ver = require("version");
- var m_scenes = require("scenes");
- var m_obj = require("objects");
- var m_logic = require("logic_nodes");
- var m_transform = require("transform");
- var m_mat = require("material");
- var arrayOfCube = [];
- // detect application mode
- var DEBUG = (m_ver.type() == "DEBUG");
- // automatically detect assets path
- var APP_ASSETS_PATH = m_cfg.get_assets_path("cube_graphe");
- /**
- * export the method to initialize the app (called at the bottom of this file)
- */
- exports.init = function() {
- m_app.init({
- canvas_container_id: "main_canvas_container",
- callback: init_cb,
- show_fps: DEBUG,
- console_verbose: DEBUG,
- autoresize: true
- });
- }
- /**
- * callback executed when the app is initialized
- */
- function init_cb(canvas_elem, success) {
- if (!success) {
- console.log("b4w init failure");
- return;
- }
- m_preloader.create_preloader();
- // ignore right-click on the canvas element
- canvas_elem.oncontextmenu = function(e) {
- e.preventDefault();
- e.stopPropagation();
- return false;
- };
- m_logic.append_custom_callback("addMeSomeCubes", addMeSomeCubes);
- m_logic.append_custom_callback("movingTime", movingTime);
- m_logic.append_custom_callback("removeMe", removeMe);
- m_logic.append_custom_callback("lookCheck", lookCheck);
- load();
- }
- /**
- * load the scene data
- */
- function load() {
- m_data.load(APP_ASSETS_PATH + "cube_graphe.json", load_cb, preloader_cb);
- }
- /**
- * update the app's preloader
- */
- function preloader_cb(percentage) {
- m_preloader.update_preloader(percentage);
- }
- /**
- * callback executed when the scene data is loaded
- */
- function load_cb(data_id, success) {
- if (!success) {
- console.log("b4w load failure");
- return;
- }
- m_app.enable_camera_controls();
- }
- function addMeSomeCubes(in_params, out_params)
- {
- var nbOfCube = document.getElementById("readMe");
- var spaceBetweenCube = 10 / nbOfCube.value;
- //Warning
- if (nbOfCube.value > 75)
- {
- alert("le chiffre entré prendras du temps a etre rendu");
- }
- for(var i = -nbOfCube.value/2; i < nbOfCube.value/2; i++)
- {
- for(j = -nbOfCube.value/2; j < nbOfCube.value/2; j ++)
- {
- var cube = m_scenes.get_object_by_name("Cube");
- var new_obj = m_obj.copy(cube, "Cube_" + i + "_" + j, true);
- m_scenes.append_object(new_obj);
- m_transform.set_translation(new_obj,spaceBetweenCube*i*5,spaceBetweenCube*j*5, Math.sin(Math.sqrt(spaceBetweenCube*i*i+spaceBetweenCube*j*j))*5);
- m_scenes.show_object(new_obj);
- arrayOfCube.push(new_obj);
- m_mat.inherit_material(cube, "Based_on_high", new_obj, "Based_on_high");
- }
- }
- console.log(arrayOfCube);
- console.log(out_params);
- out_params[0] = spaceBetweenCube;
- }
- function removeMe()
- {
- console.log("removing");
- for(var i = arrayOfCube.length - 1; i >= 0; i--)
- {
- m_scenes.remove_object(arrayOfCube[i]);
- arrayOfCube.pop();
- }
- }
- function movingTime(in_params, out_params)
- {
- var spaceBetweenCube = in_params[0];
- var time = in_params[1];
- var nbOfCube = document.getElementById("readMe").value;
- //console.log(time);
- for(var i = -nbOfCube/2; i < nbOfCube/2; i++)
- {
- for(j = -nbOfCube/2; j < nbOfCube/2; j ++)
- {
- var cube = m_scenes.get_object_by_name("Cube_" + i + "_" + j);
- m_transform.set_translation(cube,spaceBetweenCube*i*5,spaceBetweenCube*j*5, Math.sin( Math.sqrt(spaceBetweenCube*i*i+spaceBetweenCube*j*j) - time/10)*5);
- }
- }
- //console.log("looping");
- out_params[0] = document.getElementById("myCheck").checked;
- out_params[1] = time + 1;
- }
- function lookCheck(in_params, out_params)
- {
- var check = in_params[0]
- check = document.getElementById("myCheck").checked;
- out_params[0] = check;
- }
- });
- // import the app module and start the app by calling the init method
- b4w.require("cube_graphe_main").init();
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement