- Author:
- Patrice CHASSAING
- Twitter:
- @
- GitHub:
- Facebook:
- Google+:
- +
- Reddit:
- /r/
- Pouet:
- Website:
- p.chas.free.fr
- Compo:
- classic
- Demo link:
- https://js1k.com/2010-xmas/demo/869
- Shortlink:
- https://js1k.com/869
- Blog post:
- please update here!
- Bytes:
- 1022
- Chars:
- 1022
- Submission
b.style.borderBottom='180px solid #300';c.width=c.height=W=H=560;Q=90;c.style.background=K='#000';c.style.border=Q+'px solid #daa520';c.style.borderBottom='0px';U=80;f=30;T=[];P=0;function r(n,x){return(n+(Math.random()*(x-n)))}function C(x,y){var o=this;o.x=x;o.y=o.w=y;o.r=o.c=o.t=r(1,4);o.mv=function(){o.t=o.t+(U/1000);o.y=-5*o.t*o.t+o.w;n=H/o.y;c=Math.round(Q*n);o.r=o.c-n;if(o.r>0){a.beginPath();a.fillStyle='rgb('+(255-c)+','+(185-c)+',15)';a.arc(o.x,o.y,o.r,0,3.2,1);a.fill()}}}N=r(2,3);WW=6*W/8;R=5*H/8;function F(){a.fillStyle=K;a.fillRect(0,0,W,H);l=r(0,f);for(var h=1;h<255;h++){a.fillStyle='rgb('+h+',0,0)';a.fillRect(0,h+R+l,W,2)}for(var i=0;i<N;i++){x=f+(i*f);y=H-(i*f);lg=a.createLinearGradient(x,y,x,H);lg.addColorStop(0,'#5C3317');lg.addColorStop(1,K);a.fillStyle=lg;a.fillRect(x,y,WW,i*f)}a.fillStyle='red';a.fillRect(f,0,f,Q);a.moveTo(f,Q);a.arc(f+f,Q,20,0,3.2,1);a.fill();if(r(0,9)>6){P+=1;P=(P>=Q)?0:P;T[P]=new C(r(Q,WW+Q),H-(f/2))}for(i=0;i<T.length;i++){if(T[i])T[i].mv();}setTimeout('F()',U);}F();
- Description
- Just wait for Santa Claus ...
size < 1024 bytes
- Base64 encoded
Yi5zdHlsZS5ib3JkZXJCb3R0b209JzE4MHB4IHNvbGlkICMzMDAnO2Mud2lkdGg9Yy5oZWlnaHQ9Vz1IPTU2MDtRPTkwO2Muc3R5bGUuYmFja2dyb3VuZD1LPScjMDAwJztjLnN0eWxlLmJvcmRlcj1RKydweCBzb2xpZCAjZGFhNTIwJztjLnN0eWxlLmJvcmRlckJvdHRvbT0nMHB4JztVPTgwO2Y9MzA7VD1bXTtQPTA7ZnVuY3Rpb24gcihuLHgpe3JldHVybihuKyhNYXRoLnJhbmRvbSgpKih4LW4pKSl9ZnVuY3Rpb24gQyh4LHkpe3ZhciBvPXRoaXM7by54PXg7by55PW8udz15O28ucj1vLmM9by50PXIoMSw0KTtvLm12PWZ1bmN0aW9uKCl7by50PW8udCsoVS8xMDAwKTtvLnk9LTUqby50Km8udCtvLnc7bj1IL28ueTtjPU1hdGgucm91bmQoUSpuKTtvLnI9by5jLW47aWYoby5yPjApe2EuYmVnaW5QYXRoKCk7YS5maWxsU3R5bGU9J3JnYignKygyNTUtYykrJywnKygxODUtYykrJywxNSknO2EuYXJjKG8ueCxvLnksby5yLDAsMy4yLDEpO2EuZmlsbCgpfX19Tj1yKDIsMyk7V1c9NipXLzg7Uj01KkgvODtmdW5jdGlvbiBGKCl7YS5maWxsU3R5bGU9SzthLmZpbGxSZWN0KDAsMCxXLEgpO2w9cigwLGYpO2Zvcih2YXIgaD0xO2g8MjU1O2grKyl7YS5maWxsU3R5bGU9J3JnYignK2grJywwLDApJzthLmZpbGxSZWN0KDAsaCtSK2wsVywyKX1mb3IodmFyIGk9MDtpPE47aSsrKXt4PWYrKGkqZik7eT1ILShpKmYpO2xnPWEuY3JlYXRlTGluZWFyR3JhZGllbnQoeCx5LHgsSCk7bGcuYWRkQ29sb3JTdG9wKDAsJyM1QzMzMTcnKTtsZy5hZGRDb2xvclN0b3AoMSxLKTthLmZpbGxTdHlsZT1sZzthLmZpbGxSZWN0KHgseSxXVyxpKmYpfWEuZmlsbFN0eWxlPSdyZWQnO2EuZmlsbFJlY3QoZiwwLGYsUSk7YS5tb3ZlVG8oZixRKTthLmFyYyhmK2YsUSwyMCwwLDMuMiwxKTthLmZpbGwoKTtpZihyKDAsOSk+Nil7UCs9MTtQPShQPj1RKT8wOlA7VFtQXT1uZXcgQyhyKFEsV1crUSksSC0oZi8yKSl9Zm9yKGk9MDtpPFQubGVuZ3RoO2krKyl7aWYoVFtpXSlUW2ldLm12KCk7fXNldFRpbWVvdXQoJ0YoKScsVSk7fUYoKTs=
- Original source
// your submission will be put here
//Body definition
b.style.borderBottom = '180px solid #300';
//Canvas definition
c.width = c.height = W = H = 560;
Q = 90;
c.style.background = K = '#000';
c.style.border = Q + 'px solid #daa520';
c.style.borderBottom = '0px';
// Variables
U = 80; //timer ms
f = 30; //elegant variable
T = [];
P = 0;
//random
function r(n, x) {
return (n + (Math.random() * (x - n)))
}
// Circle Class
function C(x, y) {
var o = this;
o.x = x;
o.y = o.w = y;
o.r = o.c = o.t = r(1, 4);
o.mv = function () {
o.t = o.t + (U / 1000);
o.y = -5 * o.t * o.t + o.w;
n = H / o.y;
c = Math.round(Q * n);
o.r = o.c - n;
if (o.r > 0) {
a.beginPath();
a.fillStyle = 'rgb(' + (255 - c) + ',' + (185 - c) + ',15)'; //yellow to orange ?;
a.arc(o.x, o.y, o.r, 0, 3.2, 1);
a.fill()
}
}
}
//gloabl fire movie variables
N = r(2, 3);
WW = 6 * W / 8;
R = 5 * H / 8;
function F() {
//CLEAN
a.fillStyle = K;
a.fillRect(0, 0, W, H);
//FIRE : each line
l = r(0, f);
for (var h = 1; h < 255; h++) {
//get color
//black to red
a.fillStyle = 'rgb(' + h + ',0,0)';
//print line
a.fillRect(0, h + R + l, W, 2)
}
//wood();
for (var i = 0; i < N; i++) {
x = f + (i * f);
y = H - (i * f);
lg = a.createLinearGradient(x, y, x, H);
lg.addColorStop(0, '#5C3317');
lg.addColorStop(1, K);
a.fillStyle = lg;
a.fillRect(x, y, WW, i * f)
}
//shoes
a.fillStyle = 'red';
a.fillRect(f, 0, f, Q);
a.moveTo(f, Q);
a.arc(f + f, Q, 20, 0, 3.2, 1);
a.fill();
if (r(0, 9) > 6) {
P += 1;
P = (P >= Q) ? 0 : P;
T[P] = new C(r(Q, WW + Q), H - (f / 2))
}
for (i = 0; i < T.length; i++) {
//move
if (T[i]) T[i].mv();
}
setTimeout('F()', U);
}
F();