為啥我的是向前加一秒?
為啥我的是向前加一秒?
var?RADIUS?=?8; var?MARGIN_LEFT=60; var?MARGIN_TOP=30; const?endTime?=?new?Date(2017,8,19,13,07,52); var?showtime=0; var?ball?=?{x:512,y:100,r:20,g:2,vx:-4,vy:0,color:"#005588"}; var?balls?=?[]; const?colors?=?["#33B5E5","#0099CC","#AA66CC","#9933CC","#99CC00","#669900","#FFBB33","#FF8800","#FF4444","#CC0000"]; window.onload=function(){ var?c=?document.getElementById("canvas"); var?ctx?=?c.getContext("2d"); showtime=getsecond(); ?setInterval( ????????function(){ ???????? drawball(ctx); ????????????render(ctx); ????????????update(); ????????},50) } function?update(){ var?nextsecond=getsecond(); ??var?nextHours?=?parseInt(?nextsecond?/?3600); ????var?nextMinutes?=?parseInt(?(nextsecond?-?nextHours?*?3600)/60?) ????var?nextSeconds?=?nextsecond?%?60 ????var?curHours?=?parseInt(?showtime?/?3600); ????var?curMinutes?=?parseInt(?(showtime?-?curHours?*?3600)/60?) ????var?curSeconds?=?showtime?%?60 ????if(?nextSeconds?!=?curSeconds?){ ????????showtime?=?nextsecond; ????} } function?getsecond(){ var?curTime?=?new?Date(); var?ret?=?curTime.getTime()-endTime.getTime(); ret?=?Math.round(ret/1000); return?ret>=0?ret:0; } function?drawball(ctx){ ctx.clearRect(0,0,1024,768); ctx.beginPath(); ctx.fillStyle=ball.color; ctx.arc(ball.x,ball.y,ball.r,0,2*Math.PI); ctx.fill(); } function?render(ctx){ var?hours=parseInt(showtime/3600); var?minutes=parseInt((showtime-hours*3600)/60); var?seconds=parseInt(showtime%60); renderDigit(MARGIN_LEFT,MARGIN_TOP,parseInt(hours/10),ctx); renderDigit(MARGIN_LEFT+15*(RADIUS+1),MARGIN_TOP,parseInt(hours%10),ctx); renderDigit(MARGIN_LEFT+30*(RADIUS+1),MARGIN_TOP,10,ctx); renderDigit(MARGIN_LEFT+39*(RADIUS+1),MARGIN_TOP,parseInt(minutes/10),ctx); renderDigit(MARGIN_LEFT+54*(RADIUS+1),MARGIN_TOP,parseInt(minutes%10),ctx); renderDigit(MARGIN_LEFT+69*(RADIUS+1),MARGIN_TOP,10,ctx); renderDigit(MARGIN_LEFT+78*(RADIUS+1),MARGIN_TOP,parseInt(seconds/10),ctx); renderDigit(MARGIN_LEFT+93*(RADIUS+1),MARGIN_TOP,parseInt(seconds%10),ctx); } function?renderDigit(x,y,num,ctx){ ctx.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){ ctx.beginPath(); ctx.arc(x+j*2*(RADIUS+1)+(RADIUS+1),y+i*2*(RADIUS+1)+(RADIUS+1),RADIUS,0,2*Math.PI); ctx.closePath(); ctx.fill(); } } } }
2017-11-13
function?getsecond(){
????var?curTime?=?new?Date();
????var?ret?=?curTime.getTime()-endTime.getTime();
????ret?=?Math.round(ret/1000);
????return?ret>=0?ret:0;
}
var ret = endTime().getTime() - curTime.getTime();
你寫反了
2017-09-25
抄老師的代碼你也能錯(cuò),可能老師有bug