Skip to content

Commit cc51004

Browse files
committed
Refactor #1
1 parent 6552443 commit cc51004

File tree

5 files changed

+67
-58
lines changed

5 files changed

+67
-58
lines changed

Diff for: Car.js

+2-2
Original file line numberDiff line numberDiff line change
@@ -261,7 +261,7 @@ THREE.Car = function() {
261261
// Ground collider
262262
var raycaster = new THREE.Raycaster(new THREE.Vector3(this.root.position.x, this.root.position.y + 50, this.root.position.z), new THREE.Vector3(0, -1, 0), 0, 500);
263263

264-
var intersects = raycaster.intersectObject(colliderGround);
264+
var intersects = raycaster.intersectObject(oulu.colliders[1]);
265265

266266
if (intersects.length > 0) {
267267
// console.log("plane collision: " + intersects.length);
@@ -318,7 +318,7 @@ THREE.Car = function() {
318318

319319
function isColliding(position, focusX, focusZ) {
320320
var raycaster = new THREE.Raycaster(position, new THREE.Vector3(focusX, 0, focusZ), 0, 4);
321-
var intersects = raycaster.intersectObject(colliderBuildings);
321+
var intersects = raycaster.intersectObject(oulu.colliders[0]);
322322
if (intersects.length > 0) {
323323
return true;
324324
}

Diff for: GridManager.js renamed to Grid.js

+47
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@
22
* @author Tapani Jämsä ([email protected])
33
*/
44

5+
var GRID = {};
6+
57
GRID.Manager = function() {
68

79
this.target; // target to track e.g. a car or avatar
@@ -37,6 +39,51 @@ GRID.Manager = function() {
3739
// };
3840

3941

42+
// function isColliding(position, focusX, focusZ) {
43+
// var raycaster = new THREE.Raycaster(position, new THREE.Vector3(focusX, 0, focusZ), 0, 4);
44+
// var intersects = raycaster.intersectObject(colliderBuildings);
45+
// if (intersects.length > 0) {
46+
// return true;
47+
// }
48+
// return false;
49+
// }
50+
};
51+
52+
GRID.Block = function() {
53+
54+
this.gridPosition = {
55+
x: 0,
56+
y: 0
57+
};
58+
59+
this.mesh = null;
60+
this.colliders = [];
61+
62+
// this.setMesh = function(newMesh){
63+
64+
// };
65+
66+
// this.setVisible = function(enable) {
67+
68+
// for (var i = 0; i < this.meshes.length; i++) {
69+
70+
// this.meshes[i].visible = enable;
71+
// this.meshes[i].visible = enable;
72+
73+
// }
74+
75+
// };
76+
77+
// this.loadPartsJSON = function(bodyURL, wheelURL) {
78+
79+
// var loader = new THREE.JSONLoader();
80+
81+
// loader.load(bodyURL, createBody);
82+
// // loader.load(wheelURL, createWheels);
83+
84+
// };
85+
86+
4087
// function isColliding(position, focusX, focusZ) {
4188
// var raycaster = new THREE.Raycaster(position, new THREE.Vector3(focusX, 0, focusZ), 0, 4);
4289
// var intersects = raycaster.intersectObject(colliderBuildings);

Diff for: GridBlock.js

-44
This file was deleted.

Diff for: Oulu.js

+17-12
Original file line numberDiff line numberDiff line change
@@ -13,14 +13,16 @@ var flyMode = false;
1313
var keyboard = new THREEx.KeyboardState();
1414
var clock = new THREE.Clock();
1515
var time = Date.now();
16-
var car, oulu, colliderBuildings, colliderGround;
16+
var car;
17+
var oulu = new GRID.Block();
18+
var gridManager = new GRID.Manager();
1719
var ouluClones = [];
1820
var clonePosition = {
1921
x: 0,
2022
z: 0
2123
};
2224
var cloneOffset = 370;
23-
var cloneAmount = 1;
25+
var cloneAmount = 3;
2426
var debugMode = false;
2527

2628
var controlsCar = {
@@ -119,6 +121,11 @@ function init() {
119121
// CUSTOM //
120122
////////////
121123

124+
// GRID
125+
126+
127+
//JSON
128+
122129
// Note: if imported model appears too dark,
123130
// add an ambient light in this file
124131
// and increase values in model's exported .js file
@@ -260,8 +267,8 @@ function addModelToScene(geometry, materials, type) {
260267
console.log("loading", realTextures.length, "textures");
261268
var nchanged = 0;
262269
for (var i = 0; i < realTextures.length; i++) {
263-
// oulu.material.materials[i].map = loadTexture(realTextures[key]);
264-
var m = oulu.material.materials[i];
270+
// oulu.mesh.material.materials[i].map = loadTexture(realTextures[key]);
271+
var m = oulu.mesh.material.materials[i];
265272
if (m === undefined)
266273
console.log("material", i, "was undefined");
267274
else if (realTextures[i] !== undefined) {
@@ -275,12 +282,10 @@ function addModelToScene(geometry, materials, type) {
275282
material = new THREE.MeshFaceMaterial(newMaterials);
276283
newMesh = new THREE.Mesh(geometry, material);
277284

278-
if (oulu === undefined) {
279-
oulu = newMesh;
285+
if (oulu.mesh === undefined || oulu.mesh === null) {
286+
oulu.mesh = newMesh;
280287
} else {
281288
clonePosition = getNextClonePosition(clonePosition);
282-
// console.log("clonePosition: " + oulu);
283-
// console.log(clonePosition);
284289

285290
newMesh.position.set(clonePosition.x * 500, 0, clonePosition.z * 500);
286291
ouluClones.push(newMesh);
@@ -289,22 +294,22 @@ function addModelToScene(geometry, materials, type) {
289294
}
290295

291296

292-
// oulu.castShadow = true;
293-
// oulu.receiveShadow = true;
297+
// oulu.mesh.castShadow = true;
298+
// oulu.mesh.receiveShadow = true;
294299
} else if (type == "colliderbuildings") {
295300
material = new THREE.MeshFaceMaterial(materials);
296301
newMesh = new THREE.Mesh(geometry, material);
297302
if (debugMode == false) {
298303
newMesh.visible = false;
299304
}
300-
colliderBuildings = newMesh;
305+
oulu.colliders[0] = newMesh;
301306
} else if (type == "colliderground") {
302307
material = new THREE.MeshFaceMaterial(materials);
303308
newMesh = new THREE.Mesh(geometry, material);
304309
if (debugMode == false) {
305310
newMesh.visible = false;
306311
}
307-
colliderGround = newMesh;
312+
oulu.colliders[1] = newMesh;
308313
}
309314

310315
newMesh.scale.set(1.5, 1.5, 1.5);

Diff for: index.html

+1
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
<script src="js/THREEx.FullScreen.js"></script>
2020
<script src="js/THREEx.WindowResize.js"></script>
2121
<script src="Car.js"></script>
22+
<script src="Grid.js"></script>
2223
<script src="js/jquery-1.9.1.js"></script>
2324
<script src="js/jquery-ui.js"></script>
2425
<link rel=stylesheet href="css/jquery-ui.css" />

0 commit comments

Comments
 (0)