Quellcode durchsuchen

support dynamic trixls.

Lucas Stadler vor 12 Jahren
Ursprung
Commit
d6e2fbd7e3
1 geänderte Dateien mit 23 neuen und 3 gelöschten Zeilen
  1. 23 3
      js/pixl/public/trixl.html

+ 23 - 3
js/pixl/public/trixl.html

@ -203,6 +203,18 @@
203 203
			return trixl.world.delete(key);
204 204
		}
205 205
206
		trixl.world.dynamic = [];
207
208
		trixl.dynamic = {};
209
		trixl.dynamic.orbit = function(pos, radius, color) {
210
			var color = color || trixl.color;
211
			return function(t) {
212
				var x = radius * Math.sin(t * 0.01),
213
				    y = radius * Math.cos(t * 0.01);
214
				return {x: pos[0] + x, y: pos[1] + y, z: pos[2], color: color};
215
			}
216
		}
217
206 218
		trixl.generate = {};
207 219
		trixl.generate.random = function(lo, hi, color) {
208 220
			var x = lo + Math.round(Math.random() * (hi - lo)),
@ -248,7 +260,7 @@
248 260
		var angle = {x: 0, y: 0, z: 0};
249 261
		var offset = {x: 0, y: 0, z: 0};
250 262
		program.transform = gl.getUniformLocation(program, 'transform');
251
		trixl.redraw = function() {
263
		trixl.redraw = function(t) {
252 264
			var view = mat4.lookAt([], trixl.camera.pos, trixl.camera.focus, trixl.camera.up);
253 265
254 266
			var aspect = trixl.window.w / trixl.window.h;
@ -274,6 +286,14 @@
274 286
				gl.drawArrays(gl.TRIANGLES, 0, 6 * 6);
275 287
			}
276 288
289
			trixl.world.dynamic.forEach(function(tr) {
290
				var tr = tr(t);
291
292
				gl.uniform4fv(program.color, tr.color);
293
				gl.uniformMatrix4fv(program.transform, false, transform([tr.x, tr.y, tr.z]));
294
				gl.drawArrays(gl.TRIANGLES, 0, 6 * 6);
295
			});
296
277 297
			gl.uniform4f(program.color, -1, -1, -1, 0);
278 298
279 299
			//angle.x += Math.PI / 10;
@ -285,8 +305,8 @@
285 305
			//offset.z = Math.cos(angle.z * 0.1) * 2;
286 306
		}
287 307
288
		trixl.step = function() {
289
			trixl.redraw();
308
		trixl.step = function(t) {
309
			trixl.redraw(t);
290 310
			trixl.step.reqId = requestAnimationFrame(trixl.step);
291 311
		}
292 312
		trixl.start = function() {