麻煩幫忙看下代碼那里錯了?。?/h1>
const?WINDOW_WIDTH?=?1024,
WINDOW_HEIGHT?=?768,
RADIUS?=?6,
MARGIN_LEFT?=?20,
MARGIN_TOP?=?20;
var?nowTime?=?0,
ball?=?[];
const?endTime?=?new?Date(2016,?2,?4,?22,?00,?00),
colors?=?["red",?"yellow",?"blue"];
window.onload?=?function()?{
var?canvas?=?document.getElementById("canvas");
var?ct?=?canvas.getContext('2d');
ct.width?=?WINDOW_WIDTH;
ct.height?=?WINDOW_HEIGHT;
nowTime?=?getCurTime();
setInterval(function()?{
render(ct);
update();
},?50);
function?getCurTime()?{
var?time?=?new?Date();
var?curTime?=?endTime.getTime()?-?time.getTime();
return?Math.round(curTime?/?1000)?>?0???Math.round(curTime?/?1000)?:?0;
}
function?render(ct)?{
ct.clearRect(0,?0,?WINDOW_WIDTH,?WINDOW_HEIGHT);
var?hours?=?parseInt(nowTime?/?3600);
var?minutes?=?parseInt((nowTime?-?hours?*?3600)?/?60);
var?seconds?=?parseInt(nowTime?%?60);
drawDigit(MARGIN_LEFT,?MARGIN_TOP,?parseInt(hours?/?10),?ct);
drawDigit(MARGIN_LEFT?+?15?*?(RADIUS?+?1),?MARGIN_TOP,?parseInt(hours?%?10),?ct);
drawDigit(MARGIN_LEFT?+?30?*?(RADIUS?+?1),?MARGIN_TOP,?10,?ct);
drawDigit(MARGIN_LEFT?+?39?*?(RADIUS?+?1),?MARGIN_TOP,?parseInt(minutes?/?10),?ct);
drawDigit(MARGIN_LEFT?+?54?*?(RADIUS?+?1),?MARGIN_TOP,?parseInt(minutes?%?10),?ct);
drawDigit(MARGIN_LEFT?+?69?*?(RADIUS?+?1),?MARGIN_TOP,?10,?ct);
drawDigit(MARGIN_LEFT?+?78?*?(RADIUS?+?1),?MARGIN_TOP,?parseInt(seconds?/?10),?ct);
drawDigit(MARGIN_LEFT?+?93?*?(RADIUS?+?1),?MARGIN_TOP,?parseInt(seconds?%?10),?ct);
for?(var?i?=?0;?i?<?ball.length;?i++)?{
ct.fillStyle?=?ball[i].color;
ct.beginPath();
ct.arc(ball[i].x,?ball[i].y,?RADIUS,?0,?2?*?Math.PI,?true);
ct.closePath();
ct.fill();
}
}
function?drawDigit(x,?y,?num,?ct)?{
ct.fillStyle?=?"#058";
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)?{
ct.beginPath();
ct.arc(x?+?j?*?2?*?(RADIUS?+?1)?+?(RADIUS?+?1),?y?+?i?*?2?*?(RADIUS?+?1)?+?(RADIUS?+?1),?RADIUS,?0,?2?*?Math.PI);
ct.fill();
ct.closePath();
}
}
}
}
function?update()?{
var?nextTime?=?getCurTime();
var?nextHours?=?parseInt(nextTime?/?3600);
var?nextMinutes?=?parseInt((nextTime?-?nextHours?*?3600)?/?60);
var?nextSeconds?=?parseInt(nextTime?%?60);
var?curHours?=?parseInt(nowTime?/?3600);
var?curMinutes?=?parseInt((nowTime?-?curHours?*?3600)?/?60);
var?curSeconds?=?parseInt(nowTime?%?60);
if?(nextSeconds?!=?curSeconds)?{
if?(parseInt(curHours?/?10)?!=?parseInt(nextHours?/?10))?{
addBall(MARGIN_LEFT,?MARGIN_TOP,?parseInt(curHours?/?10));
};
if?(parseInt(curHours?%?10)?!=?parseInt(nextHours?%?10))?{
addBall(MARGIN_LEFT?+?15?*?(RADIUS?+?1),?MARGIN_TOP,?parseInt(curHours?%?10));
};
//分鐘加小球
if?(parseInt(curMinutes?/?10)?!=?parseInt(nextMinutes?/?10))?{
addBall(MARGIN_LEFT?+?39?*?(RADIUS?+?1),?MARGIN_TOP,?parseInt(curMinutes?/?10));
};
if?(parseInt(curMinutes?%?10)?!=?parseInt(nextMinutes?%?10))?{
addBall(MARGIN_LEFT?+?54?*?(RADIUS?+?1),?MARGIN_TOP,?parseInt(curMinutes?%?10));
};
//秒鐘加小球
if?(parseInt(curSeconds?/?10)?!=?parseInt(nextSeconds?/?10))?{
addBall(MARGIN_LEFT?+?78?*?(RADIUS?+?1),?MARGIN_TOP,?parseInt(curSeconds?/?10));
};
if?(parseInt(curSeconds?%?10)?!=?parseInt(nextSeconds?%?10))?{
addBall(MARGIN_LEFT?+?93?*?(RADIUS?+?1),?MARGIN_TOP,?parseInt(curSeconds?%?10));
};
nowTime?=?nextTime;
}
updateBall()
}
function?addBall(x,?y,?num)?{
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?addOne?=?{
x:?x?+?j?*?2?*?(RADIUS?+?1),
y:?y?+?i?*?2?*?(RADIUS?+?1),
r:?RADIUS,
g:?1.5?+?Math.random(),
vx:?Math.pow(-1,?Math.round(Math.random()?*?1000))?*?4,
vy:?-10,
color:?colors[Math.floor(Math.random()?*?colors.length)]
};
ball.push(addOne);
}
}
}
}
function?updateBall()?{
for?(var?i?=?0;?i?<?ball.length;?i++)?{
ball[i].x?+=?ball[i].vx;
ball[i].y?+=?ball[i].vy;
ball[i].vy?+=?ball[i].g;
if?(ball[i].y?<=?748)?{
ball[i].y?=?748;
ball[i].vy?=?-ball[i].vy?*?0.75;
}
}
}
function?drawColorBall(ct)?{
for?(var?i?=?0;?i?<?ball.length;?i++)?{
ct.beginPath();
ct.fillStyle?=?ball[i].color;
ct.arc(ball[i].x,?ball[i].y,?ball[i].r,?0,?2?*?Math.PI);
ct.fill();
ct.closePath();
}
}
}
const?WINDOW_WIDTH?=?1024, WINDOW_HEIGHT?=?768, RADIUS?=?6, MARGIN_LEFT?=?20, MARGIN_TOP?=?20; var?nowTime?=?0, ball?=?[]; const?endTime?=?new?Date(2016,?2,?4,?22,?00,?00), colors?=?["red",?"yellow",?"blue"]; window.onload?=?function()?{ var?canvas?=?document.getElementById("canvas"); var?ct?=?canvas.getContext('2d'); ct.width?=?WINDOW_WIDTH; ct.height?=?WINDOW_HEIGHT; nowTime?=?getCurTime(); setInterval(function()?{ render(ct); update(); },?50); function?getCurTime()?{ var?time?=?new?Date(); var?curTime?=?endTime.getTime()?-?time.getTime(); return?Math.round(curTime?/?1000)?>?0???Math.round(curTime?/?1000)?:?0; } function?render(ct)?{ ct.clearRect(0,?0,?WINDOW_WIDTH,?WINDOW_HEIGHT); var?hours?=?parseInt(nowTime?/?3600); var?minutes?=?parseInt((nowTime?-?hours?*?3600)?/?60); var?seconds?=?parseInt(nowTime?%?60); drawDigit(MARGIN_LEFT,?MARGIN_TOP,?parseInt(hours?/?10),?ct); drawDigit(MARGIN_LEFT?+?15?*?(RADIUS?+?1),?MARGIN_TOP,?parseInt(hours?%?10),?ct); drawDigit(MARGIN_LEFT?+?30?*?(RADIUS?+?1),?MARGIN_TOP,?10,?ct); drawDigit(MARGIN_LEFT?+?39?*?(RADIUS?+?1),?MARGIN_TOP,?parseInt(minutes?/?10),?ct); drawDigit(MARGIN_LEFT?+?54?*?(RADIUS?+?1),?MARGIN_TOP,?parseInt(minutes?%?10),?ct); drawDigit(MARGIN_LEFT?+?69?*?(RADIUS?+?1),?MARGIN_TOP,?10,?ct); drawDigit(MARGIN_LEFT?+?78?*?(RADIUS?+?1),?MARGIN_TOP,?parseInt(seconds?/?10),?ct); drawDigit(MARGIN_LEFT?+?93?*?(RADIUS?+?1),?MARGIN_TOP,?parseInt(seconds?%?10),?ct); for?(var?i?=?0;?i?<?ball.length;?i++)?{ ct.fillStyle?=?ball[i].color; ct.beginPath(); ct.arc(ball[i].x,?ball[i].y,?RADIUS,?0,?2?*?Math.PI,?true); ct.closePath(); ct.fill(); } } function?drawDigit(x,?y,?num,?ct)?{ ct.fillStyle?=?"#058"; 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)?{ ct.beginPath(); ct.arc(x?+?j?*?2?*?(RADIUS?+?1)?+?(RADIUS?+?1),?y?+?i?*?2?*?(RADIUS?+?1)?+?(RADIUS?+?1),?RADIUS,?0,?2?*?Math.PI); ct.fill(); ct.closePath(); } } } } function?update()?{ var?nextTime?=?getCurTime(); var?nextHours?=?parseInt(nextTime?/?3600); var?nextMinutes?=?parseInt((nextTime?-?nextHours?*?3600)?/?60); var?nextSeconds?=?parseInt(nextTime?%?60); var?curHours?=?parseInt(nowTime?/?3600); var?curMinutes?=?parseInt((nowTime?-?curHours?*?3600)?/?60); var?curSeconds?=?parseInt(nowTime?%?60); if?(nextSeconds?!=?curSeconds)?{ if?(parseInt(curHours?/?10)?!=?parseInt(nextHours?/?10))?{ addBall(MARGIN_LEFT,?MARGIN_TOP,?parseInt(curHours?/?10)); }; if?(parseInt(curHours?%?10)?!=?parseInt(nextHours?%?10))?{ addBall(MARGIN_LEFT?+?15?*?(RADIUS?+?1),?MARGIN_TOP,?parseInt(curHours?%?10)); }; //分鐘加小球 if?(parseInt(curMinutes?/?10)?!=?parseInt(nextMinutes?/?10))?{ addBall(MARGIN_LEFT?+?39?*?(RADIUS?+?1),?MARGIN_TOP,?parseInt(curMinutes?/?10)); }; if?(parseInt(curMinutes?%?10)?!=?parseInt(nextMinutes?%?10))?{ addBall(MARGIN_LEFT?+?54?*?(RADIUS?+?1),?MARGIN_TOP,?parseInt(curMinutes?%?10)); }; //秒鐘加小球 if?(parseInt(curSeconds?/?10)?!=?parseInt(nextSeconds?/?10))?{ addBall(MARGIN_LEFT?+?78?*?(RADIUS?+?1),?MARGIN_TOP,?parseInt(curSeconds?/?10)); }; if?(parseInt(curSeconds?%?10)?!=?parseInt(nextSeconds?%?10))?{ addBall(MARGIN_LEFT?+?93?*?(RADIUS?+?1),?MARGIN_TOP,?parseInt(curSeconds?%?10)); }; nowTime?=?nextTime; } updateBall() } function?addBall(x,?y,?num)?{ 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?addOne?=?{ x:?x?+?j?*?2?*?(RADIUS?+?1), y:?y?+?i?*?2?*?(RADIUS?+?1), r:?RADIUS, g:?1.5?+?Math.random(), vx:?Math.pow(-1,?Math.round(Math.random()?*?1000))?*?4, vy:?-10, color:?colors[Math.floor(Math.random()?*?colors.length)] }; ball.push(addOne); } } } } function?updateBall()?{ for?(var?i?=?0;?i?<?ball.length;?i++)?{ ball[i].x?+=?ball[i].vx; ball[i].y?+=?ball[i].vy; ball[i].vy?+=?ball[i].g; if?(ball[i].y?<=?748)?{ ball[i].y?=?748; ball[i].vy?=?-ball[i].vy?*?0.75; } } } function?drawColorBall(ct)?{ for?(var?i?=?0;?i?<?ball.length;?i++)?{ ct.beginPath(); ct.fillStyle?=?ball[i].color; ct.arc(ball[i].x,?ball[i].y,?ball[i].r,?0,?2?*?Math.PI); ct.fill(); ct.closePath(); } } }
2016-03-05
updateBoll里面的if判斷寫反了,應該是大于等于