亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

老師,我的小球沒有掉下來,是橫著跑的 T_T

/**
?*?Created?by?xu?on?2015/6/18.
?*/


var?WINDOW_WIDTH=1024;
var?WINDOW_HEIGHT=768;
var?RADIUS=8;
var?MARGIN_TOP=60;
var?MARGIN_LEFT=30;

const?endTime?=?new?Date(2015,5,20,10,10,10);
var?curShowTimeSeconds=0;

var?balls=[];
const?colors=["#33B5E5","#0099CC","#AA66CC","#9933CC","#99CC00","#669900","#FFBB33","#FF8800","#FF4444","#CC0000"];

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
????);

????render(context)
}

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((curShowTimeSeconds-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,curHours%10);
????????}

????????if(parseInt(curMinutes/10)!=parseInt(nextMinutes/10)){
????????????addBalls(MARGIN_LEFT+39*(RADIUS+1),MARGIN_TOP,parseInt(curMinutes/10));
????????}
????????if(parseInt(curMinutes%10)!=parseInt(nextMinutes%10)){
????????????addBalls(MARGIN_LEFT+54*(RADIUS+1),MARGIN_TOP,curMinutes%10);
????????}

????????if(parseInt(curSeconds/10)!=parseInt(nextSeconds/10)){
????????????addBalls(MARGIN_LEFT+78*(RADIUS+1),MARGIN_TOP,parseInt(curSeconds/10));
????????}
????????if(parseInt(curSeconds%10)!=parseInt(nextSeconds%10)){
????????????addBalls(MARGIN_LEFT+93*(RADIUS+1),MARGIN_TOP,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].vy;
????????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(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?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="green";

????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();
????????????}
????????}
????}
}


正在回答

1 回答

86行的for循環沒加大括號{}另外沒寫碰撞檢測

0 回復 有任何疑惑可以回復我~
#1

ownheart

謝謝 真的加了大括號就可以了 我以前經常加大括號的 看到老師沒寫 我也沒寫。。暈
2018-10-21 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

老師,我的小球沒有掉下來,是橫著跑的 T_T

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號