Pārlūkot izejas kodu

add dynamic jumpers and blinkers.

Lucas Stadler 12 gadi atpakaļ
vecāks
revīzija
5775f763fb
1 mainītis faili ar 33 papildinājumiem un 0 dzēšanām
  1. 33 0
      js/pixl/public/trixl.html

+ 33 - 0
js/pixl/public/trixl.html

@ -256,6 +256,31 @@
256 256
			return wavies;
257 257
		}
258 258
259
		trixl.dynamic.jumping = function(lo, hi, interval, color) {
260
			var pos = [rand(lo, hi), rand(lo, hi), rand(lo, hi)];
261
			var last = 0;
262
			var interval = interval || 1000;
263
			var color = color || trixl.color;
264
			return function(t) {
265
				if (Math.abs(last - t) > interval) {
266
					pos = [rand(lo, hi), rand(lo, hi), rand(lo, hi)];
267
					last = t;
268
				}
269
				return {x: pos[0], y: pos[1], z: pos[2], color: color};
270
			}
271
		}
272
273
		trixl.dynamic.blinking = function(pos, interval, color) {
274
			var interval = interval || 5000;
275
			var color = color || trixl.color;
276
277
			return function(t) {
278
				var c= color;
279
				c[3] = Math.sin((t % interval) / interval * Math.PI);
280
				return {x: pos[0], y: pos[1], z: pos[2], color: c};
281
			}
282
		}
283
259 284
		trixl.generate = {};
260 285
		trixl.generate.random = function(lo, hi, color) {
261 286
			var x = lo + Math.round(Math.random() * (hi - lo)),
@ -295,6 +320,14 @@
295 320
			});
296 321
		}
297 322
323
		trixl.generate.jumpers = function(n, lo, hi, loI, hiI) {
324
			range(n).map(function() {
325
				var color = [Math.random(), Math.random(), Math.random(), 1];
326
				var interval = rand(loI || 10000, hiI || 100000);
327
				trixl.world.dynamic.push(trixl.dynamic.jumping(lo, hi, interval, color));
328
			});
329
		}
330
298 331
		trixl.geometry = {};
299 332
300 333
		trixl.geometry.circle = function(pos, radius, color) {