scripts/machine.js
changeset 28 9df7034275e8
parent 27 130cff40c734
child 29 99652d00489f
     1.1 --- a/scripts/machine.js	Wed Apr 27 00:45:37 2011 +0200
     1.2 +++ b/scripts/machine.js	Wed Apr 27 02:04:45 2011 +0200
     1.3 @@ -2,7 +2,7 @@
     1.4  var renderer;
     1.5  var controller;
     1.6  var camera;
     1.7 -var cameraSpeed = {"h": 0.1, "v": 0.1, "zoom": 0.5, "pitch": 1.0, "yaw": 1.0, "roll": 1.0};
     1.8 +var cameraSpeed = {"h": 1.0, "v": 1.0, "zoom": 1.0, "pitch": 1.0, "yaw": 1.0, "roll": 1.0};
     1.9  var keyActionMap = {'A': moveCameraLeft,
    1.10  		 'D': moveCameraRight,
    1.11  		 'W': moveCameraUp,
    1.12 @@ -21,10 +21,10 @@
    1.13      var context = new Context(canvas);
    1.14      context.expand();
    1.15      var gl = context.gl;
    1.16 -    var object = new Cube(1, context);
    1.17 +    var scene = createScene(context);   
    1.18      gl.clearColor(0.0, 0.0, 0.0, 1.0);
    1.19      gl.enable(gl.DEPTH_TEST);
    1.20 -    machine = new Machine(object);       
    1.21 +    machine = new Machine(scene);       
    1.22      camera = new Camera(cameraSpeed, [0, 5, 20]);
    1.23      renderer = new Renderer(camera, context);
    1.24      controller = new Controller(keyActionMap, mouseActionMap, camera, machine, renderer);
    1.25 @@ -39,6 +39,22 @@
    1.26      //read("config/camera", configureCamera);
    1.27  }
    1.28  
    1.29 +function createScene(context)
    1.30 +{
    1.31 +    var scene = new Node([0, 0, 0], [0, 0, 0], new Cube(1, context));
    1.32 +    var dim = 3;
    1.33 +    var d = 3;
    1.34 +    for (var x = 0; x < dim; x += 1) {
    1.35 +	for (var y = 0; y < dim; y += 1) {
    1.36 +	    for (var z = 0; z < dim; z += 1) {		
    1.37 +		var pos = [x * d, y * d, -z * d];
    1.38 +		scene.children.push(new Node(pos, [0, 0, 0], new Cube(1, context)));
    1.39 +	    }
    1.40 +	}
    1.41 +    }
    1.42 +    return scene;
    1.43 +}
    1.44 +
    1.45  function configureCamera(config) {
    1.46      alert(config);
    1.47  }
    1.48 @@ -47,10 +63,11 @@
    1.49  {    
    1.50      requestAnimFrame(update);
    1.51      controller.update();
    1.52 -    machine.scene.rotation.x += (random(0, 2) - 2) * 0.001; 
    1.53 -    machine.scene.rotation.y += (random(0, 3) - 1) * 0.001; 
    1.54 -    machine.scene.rotation.z += (random(0, 2) - 1) * 0.001;
    1.55 +    //machine.scene.rotation.x += (random(0, 2) - 2) * 0.001; 
    1.56 +    // machine.scene.rotation.y += (random(0, 3) - 1) * 0.001; 
    1.57 +    // machine.scene.rotation.z += (random(0, 2) - 1) * 0.001;
    1.58      machine.update(new Date().getTime());
    1.59 +    camera.update();
    1.60      renderer.update(machine.scene);
    1.61  }
    1.62  
    1.63 @@ -67,8 +84,7 @@
    1.64  function Controller(keyActionMap, mouseActionMap, camera, machine, renderer)
    1.65  { 
    1.66      this.keyboard = new Keyboard(keyActionMap);
    1.67 -    this.mouse = new Mouse(mouseActionMap);
    1.68 -   
    1.69 +    this.mouse = new Mouse(mouseActionMap);   
    1.70  }
    1.71  Controller.prototype.update = function()
    1.72  {
    1.73 @@ -183,6 +199,7 @@
    1.74  }
    1.75  Machine.prototype.update = function(time)
    1.76  {
    1.77 +    this.scene.update(time);
    1.78      if (this.lastUpdate != 0)
    1.79      {
    1.80  	var diff = time - this.lastUpdate;