Sha256: 3baaa7b4daee4d1b925a63bbdbbc47740fa87c2ed873f6f8d99b4401c2a4ecb7

Contents?: true

Size: 1.89 KB

Versions: 9

Compression:

Stored size: 1.89 KB

Contents

//= require "application_controller"

var TexturesController = (function() {
  var movement = { forward: 0, backward: 0, left: 0, right: 0 };
  
  return Jax.Controller.create("textures", ApplicationController, {
    index: function() {
      var tex_mat = Jax.Material.find("bricks");
      
      this.world.addLightSource(Jax.Scene.LightSource.find("textures_point"));
      this.world.addObject(new Jax.Model({position:[0,0,-7.5],mesh: new Jax.Mesh.Quad({size:7.5,material:tex_mat})}));
    },
    
    key_pressed: function(event) {
      switch(event.keyCode) {
        case KeyEvent.DOM_VK_W: movement.forward = 1; break;
        case KeyEvent.DOM_VK_S: movement.backward = -1; break;
        case KeyEvent.DOM_VK_A: movement.left = -1; break;
        case KeyEvent.DOM_VK_D: movement.right = 1; break;
      }
    },

    key_released: function(event) {
      switch(event.keyCode) {
        case KeyEvent.DOM_VK_W: movement.forward = 0; break;
        case KeyEvent.DOM_VK_S: movement.backward = 0; break;
        case KeyEvent.DOM_VK_A: movement.left = 0; break;
        case KeyEvent.DOM_VK_D: movement.right = 0; break;
      }
    },

    mouse_moved: function(event) {
      this.player.camera.rotate(0.01, [event.diffy, -event.diffx, 0]);
      this.player.camera.orient(this.player.camera.getViewVector(), [0,1,0]);
    },
    
    mouse_dragged: function(event) {
      var camera = this.world.getObject(0).camera;
      camera.rotate(0.0375, [this.context.mouse.diffy, 0, -this.context.mouse.diffx]);
    },
    
    update: function(tc) {
      var speed = 1.5 * tc;
      this.player.camera.move((movement.forward + movement.backward) * speed);
      this.player.camera.strafe((movement.left + movement.right) * speed);

      var light = this.world.lighting.getLight(0).camera;
      light.p = (light.p || 0) + tc;
      light.setPosition(Math.cos(light.p)*2.5, Math.sin(light.p)*2.5, -6.0);
    }
  });
})();

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
jax-0.0.0.9 spec/example_app/app/controllers/textures_controller.js
jax-0.0.0.8 spec/example_app/app/controllers/textures_controller.js
jax-0.0.0.7 spec/example_app/app/controllers/textures_controller.js
jax-0.0.0.6 spec/example_app/app/controllers/textures_controller.js
jax-0.0.0.5 spec/example_app/app/controllers/textures_controller.js
jax-0.0.0.4 spec/example_app/app/controllers/textures_controller.js
jax-0.0.0.3 spec/example_app/app/controllers/textures_controller.js
jax-0.0.0.2 spec/example_app/app/controllers/textures_controller.js
jax-0.0.0.1 spec/example_app/app/controllers/textures_controller.js