// JavaScript Document
var window_width=1024;
var window_height=768;
var radius=8;
var margin_left=60;
var margin_top=30;
const endTime=new Date(2017,5,15,18,47,52);
var curShowTimeSeconds=0;
var balls=[];
const colors=["#33b5e5","#0099cc","aa66cc","#9933cc","#99cc00","#ffbb33","#ffbb33","#ffbb33","#ff8800","#ff4444","#cc00000"];
window.onload=function(){
var canvas=document.getElementById('canvas');
var context=canvas.getContext("2d");
canvas.width=window_width;
canvas.height=window_height;
curShowTimeSeconds=getCurrentShowTimeSeconds();
setInterval(function(){
render(context);
update();
},50);
}
function getCurrentShowTimeSeconds(){
var curTime=new Date();
var ret=endTime.getTime()-curTime.getTime();
ret=Math.round(ret/1000);
return ret>=0?ret:0;
}
function update(){
var nextShowTimeSeconds=getCurrentShowTimeSeconds();
var nextHours=parseInt(nextShowTimeSeconds/3600);
var nextMinutes=parseInt((nextShowTimeSeconds-nextHours*3600)/60);
var nextSeconds=nextShowTimeSeconds%60;
var curHours=parseInt(curShowTimeSeconds/3600);
var curMinutes=parseInt((curShowTimeSeconds-curHours*3600)/60);
var curSeconds=curShowTimeSeconds%60;
if(nextSeconds!=curSeconds){
if(parseInt(curHours/10)!= parseInt(nextHours/10)){
addBalls(margin_left+0,margin_top,parseInt(curHours/10));
}
if(parseInt(curHours%10)!= parseInt(nextHours%10)){
addBalls(margin_left+15*(radius+1),margin_top,parseInt(curHours/10));
}
if(parseInt(curMinutes/10)!= parseInt(curMinutes/10)){
addBalls(margin_left+39*(radius+1),margin_top,parseInt(curMinutes/10));
}
if(parseInt(curMinutes%10)!= parseInt(curMinutes%10)){
addBalls(margin_left+54*(radius+1),margin_top,parseInt(curMinutes%10));
}
if(parseInt(curSeconds/10)!= parseInt(curSeconds/10)){
addBalls(margin_left+39*(radius+1),margin_top,parseInt(curSeconds/10));
}
if(parseInt(curSeconds%10)!= parseInt(curSeconds%10)){
addBalls(margin_left+54*(radius+1),margin_top,parseInt(curSeconds%10));
}
curShowTimeSeconds=nextShowTimeSeconds;
}
updateBalls();
}
function updateBalls(){
for(var i=0;i<balls.length;i++){
balls[i].x +=balls[i].vx;
balls[i].y +=balls[i].yx;
balls[i].vy +=balls[i].g;
if(balls[i].y>=window_height-radius){
balls[i].y =window_height-radius;
balls[i].vy= -balls[i].vy*0.75;
}
}
}
function addBalls(){
for(var i=0;i<digit[num].length;i++){
for(var j=0;j<digit[num][i].length;j++){
if(digit[num][i][j]==1){
var aBall={
x:x+j*2*(radius+1)+(radius+1),
y:y+i*2*(radius+1)+(radius+1),
g:1.5+Math.random(),
vx:Math.pow(-1,Math.ceil(Math.random()*1000))*4,
vy:-5,
color:colors[Math.floor(Math.random()*colors.length)]
}
balls.push(aBall);
}
}
}
}
function render(cxt){
cxt.clearRect(0,0,window_width,window_height);
var hours=parseInt(curShowTimeSeconds/3600);
var minutes=parseInt((curShowTimeSeconds-hours*3600)/60);
var seconds=curShowTimeSeconds%60;
renderDigit(margin_left,margin_top,parseInt(hours/10),cxt);
renderDigit(margin_left+15*(radius+1),margin_top,parseInt(hours%10),cxt);
renderDigit(margin_left+30*(radius+1),margin_top,10,cxt);
renderDigit(margin_left+39*(radius+1),margin_top,parseInt(minutes/10),cxt);
renderDigit(margin_left+54*(radius+1),margin_top,parseInt(minutes%10),cxt);
renderDigit(margin_left+69*(radius+1),margin_top,10,cxt);
renderDigit(margin_left+78*(radius+1),margin_top,parseInt(seconds/10),cxt);
renderDigit(margin_left+93*(radius+1),margin_top,parseInt(seconds%10),cxt);
for(var i=0;i<balls.length;i++){
cxt.fillStyle=balls[i].color;
cxt.beginPath();
cxt.arc(balls[i].x,balls[i].y,radius,0,2*Math.PI,true);
cxt.closePath();
cxt.fill();
}
}
function renderDigit(x,y,num,cxt){
cxt.fillStyle="rgb(0,102,153)";
for(var i=0;i<digit[num].length;i++){
for(var j=0;j<digit[num][i].length;j++){
if(digit[num][i][j]==1){
cxt.beginPath();
cxt.arc(x+j*2*(radius+1)+(radius+1),y+i*2*(radius+1)+(radius+1),radius,0,2*Math.PI);
cxt.closePath();
cxt.fill();
}
}
}
}
3 回答

李晓健
TA贡献1036条经验 获得超461个赞
//这里的nextMinutes 是不是 写成了 curMinutes 以下几个判断都是 //你写了2个curMinutes 这里自然永远都是相等的,判断是进不去的 if(parseInt(curMinutes/10)!= parseInt(nextMinutes/10)){ addBalls(margin_left+39*(radius+1),margin_top,parseInt(curMinutes/10)); }
这里,及以下几判断都改了,你会发现有报错了。

慕的地6079101
TA贡献3593条经验 获得超0个赞
觫瞿梅
鲎盲嵊
胖椟誊
归彳焕
宅野眨
冤顼晨
莉嘬鄱
郎踅毖
耻蠲缍
咝流
素嗾佰
谧迪墁
坞跽曙
温识瓞
蔬膜憾
光屑貅
醛淼偃
技罨痊
皈绋疔
萌雄落
粉燕比
勤钰溲
碌詈佣
玛基鹧
议仳苒
劈养丝
榭绿澧
菀靡凿
祺唳慷
喱孬鲽
栳黻硕
鬣输房
塍藐恚
慷淳冷
蚯蹉枸
孚铋卓
姹皇篡
醢啬噤
衲厣紊
姑趺壶
酎钌疖
瓤哒每
爨歇茛
敕彘壕
腱采嘹
撼酌毛
銎猩岔
淑琳绦
删侄蜢
叛准嘈
盼禧眷
鸸蓁娼
内谓古
理下铼
响祠映
谩潸刘
命观绯
邴衷医
伟馅痢
暄喇郦
楱涨芭
展未狒
疹泱恫
龋澌眙
淠臀魁
嘧斡鲠
镏戋犭
惚悱邢
沔胳蹼
插斟亵
铠坞蓉
禄靠忉
粮轧孔
酰团栉
踟猞砰
舣麇悃
杪半验
原樨亨
雉诃悦
悌垭莽

qq_果汁分ni半_03462240
TA贡献5条经验 获得超1个赞
digit = [ [ [0,0,1,1,1,0,0], [0,1,1,0,1,1,0], [1,1,0,0,0,1,1], [1,1,0,0,0,1,1], [1,1,0,0,0,1,1], [1,1,0,0,0,1,1], [1,1,0,0,0,1,1], [1,1,0,0,0,1,1], [0,1,1,0,1,1,0], [0,0,1,1,1,0,0] ],//0 [ [0,0,0,1,1,0,0], [0,1,1,1,1,0,0], [0,0,0,1,1,0,0], [0,0,0,1,1,0,0], [0,0,0,1,1,0,0], [0,0,0,1,1,0,0], [0,0,0,1,1,0,0], [0,0,0,1,1,0,0], [0,0,0,1,1,0,0], [1,1,1,1,1,1,1] ],//1 [ [0,1,1,1,1,1,0], [1,1,0,0,0,1,1], [0,0,0,0,0,1,1], [0,0,0,0,1,1,0], [0,0,0,1,1,0,0], [0,0,1,1,0,0,0], [0,1,1,0,0,0,0], [1,1,0,0,0,0,0], [1,1,0,0,0,1,1], [1,1,1,1,1,1,1] ],//2 [ [1,1,1,1,1,1,1], [0,0,0,0,0,1,1], [0,0,0,0,1,1,0], [0,0,0,1,1,0,0], [0,0,1,1,1,0,0], [0,0,0,0,1,1,0], [0,0,0,0,0,1,1], [0,0,0,0,0,1,1], [1,1,0,0,0,1,1], [0,1,1,1,1,1,0] ],//3 [ [0,0,0,0,1,1,0], [0,0,0,1,1,1,0], [0,0,1,1,1,1,0], [0,1,1,0,1,1,0], [1,1,0,0,1,1,0], [1,1,1,1,1,1,1], [0,0,0,0,1,1,0], [0,0,0,0,1,1,0], [0,0,0,0,1,1,0], [0,0,0,1,1,1,1] ],//4 [ [1,1,1,1,1,1,1], [1,1,0,0,0,0,0], [1,1,0,0,0,0,0], [1,1,1,1,1,1,0], [0,0,0,0,0,1,1], [0,0,0,0,0,1,1], [0,0,0,0,0,1,1], [0,0,0,0,0,1,1], [1,1,0,0,0,1,1], [0,1,1,1,1,1,0] ],//5 [ [0,0,0,0,1,1,0], [0,0,1,1,0,0,0], [0,1,1,0,0,0,0], [1,1,0,0,0,0,0], [1,1,0,1,1,1,0], [1,1,0,0,0,1,1], [1,1,0,0,0,1,1], [1,1,0,0,0,1,1], [1,1,0,0,0,1,1], [0,1,1,1,1,1,0] ],//6 [ [1,1,1,1,1,1,1], [1,1,0,0,0,1,1], [0,0,0,0,1,1,0], [0,0,0,0,1,1,0], [0,0,0,1,1,0,0], [0,0,0,1,1,0,0], [0,0,1,1,0,0,0], [0,0,1,1,0,0,0], [0,0,1,1,0,0,0], [0,0,1,1,0,0,0] ],//7 [ [0,1,1,1,1,1,0], [1,1,0,0,0,1,1], [1,1,0,0,0,1,1], [1,1,0,0,0,1,1], [0,1,1,1,1,1,0], [1,1,0,0,0,1,1], [1,1,0,0,0,1,1], [1,1,0,0,0,1,1], [1,1,0,0,0,1,1], [0,1,1,1,1,1,0] ],//8 [ [0,1,1,1,1,1,0], [1,1,0,0,0,1,1], [1,1,0,0,0,1,1], [1,1,0,0,0,1,1], [0,1,1,1,0,1,1], [0,0,0,0,0,1,1], [0,0,0,0,0,1,1], [0,0,0,0,1,1,0], [0,0,0,1,1,0,0], [0,1,1,0,0,0,0] ],//9 [ [0,0,0,0], [0,0,0,0], [0,1,1,0], [0,1,1,0], [0,0,0,0], [0,0,0,0], [0,1,1,0], [0,1,1,0], [0,0,0,0], [0,0,0,0] ]//: ];
添加回答
举报
0/150
提交
取消