Skip to content

Commit be0c729

Browse files
committed
Emit trail of i(s) on player as game progresses
1 parent 32eba59 commit be0c729

File tree

1 file changed

+28
-1
lines changed

1 file changed

+28
-1
lines changed

public/scripts.js

Lines changed: 28 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
var scene = new THREE.Scene();
22
var camera = new THREE.PerspectiveCamera( 75, window.innerWidth/window.innerHeight, 0.1, 1000 );
33
var keyboard = new THREEx.KeyboardState();
4+
var clock = new THREE.Clock();
45

56
var renderer = new THREE.WebGLRenderer();
67
renderer.setSize( window.innerWidth, window.innerHeight );
@@ -50,6 +51,10 @@ var thetaX = 0;
5051
var thetaY = 0;
5152
var thetaZ = 0;
5253

54+
var trails = [];
55+
var last_trail_emitted_at = null;
56+
var trail_time_interval = 0.4;
57+
5358
function degrees_to_radians(degrees)
5459
{
5560
var pi = Math.PI;
@@ -103,7 +108,6 @@ var animate = function () {
103108
player.position.y = initial_y;
104109
}
105110

106-
107111
for (var vi = 0; vi < player.geometry.vertices.length; vi++) {
108112
var localVertex = player.geometry.vertices[vi].clone();
109113
var globalVertex = localVertex.applyMatrix4( player.matrix );
@@ -118,6 +122,29 @@ var animate = function () {
118122
}
119123
}
120124

125+
var delta = clock.getElapsedTime();
126+
127+
if (last_trail_emitted_at === null || delta > (last_trail_emitted_at + trail_time_interval)) {
128+
last_trail_emitted_at = delta;
129+
130+
var trail = new THREE.Mesh(
131+
geometry,
132+
new THREE.MeshBasicMaterial( { color: 0x555555, opacity: 0.8, transparent: true } )
133+
);
134+
135+
trail.position.x = player.position.x;
136+
trail.position.z = player.position.z;
137+
trail.position.y = player.position.y;
138+
139+
trails.push(trail);
140+
141+
scene.add(trail);
142+
}
143+
144+
for (var i = 0; i < trails.length; i++) {
145+
trails[i].position.x -= 0.05;
146+
}
147+
121148
renderer.render(scene, camera);
122149
};
123150

0 commit comments

Comments
 (0)