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

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

為什么我的沒有小球掉下來

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

const?endTime?=?new?Date(2016,1,27,12,30,30);
var?curShowTime?=?0;

var?balls?=?[];?
const?colors?=?["#073155","#FFCE43","#DD5044","#00D2DC","#9C642D","#FFB439","#A6E22E","#FF1B2D"];

window.onload?=?function(){
	var?canvas?=?document.getElementById("canvas");
	canvas.width?=?WINDOW_WIDTH;
	canvas.height?=?WINDOW_HEIGHT;
	var?context?=?canvas.getContext("2d");

	curShowTime?=?getCurShowTime();
	setInterval(function(){
		render(context);
		update();
	},50);
}

function?getCurShowTime(){
	var?curTime?=?new?Date();
	var?ret?=?endTime.getTime()?-?curTime.getTime();
	ret?=?Math.round(ret/1000);
	return?ret?>=?0???ret?:?0;
}


function?update(){
	var?nextShowTime?=?getCurShowTime();

	var?nextHours?=?parseInt(nextShowTime/3600);
	var?nextMinutes?=?parseInt(nextShowTime/60%60);
	var?nextSeconds?=?parseInt(nextShowTime%60);

	var?curHours?=?parseInt(curShowTime/3600);
	var?curMinutes?=?parseInt(curShowTime/60%60);
	var?curSeconds?=?parseInt(curShowTime%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(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,?parseInt(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,?parseInt(curSeconds%10));
		}
		curShowTime?=?nextShowTime;
	}

	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.5;
		}
	}
}

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]?==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.randm()*colors.length)]
				};
				balls.push(aBall);
			}
			
		}
	}
}

function?render(cxt){

	cxt.clearRect(0,0,WINDOW_WIDTH,WINDOW_HEIGHT);?//刷新矩形

	var?hours?=?parseInt(curShowTime/3600);
	var?minutes?=?parseInt(curShowTime/60%60);
	var?seconds?=?parseInt(curShowTime%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();
			}
		}
	}
}


正在回答

1 回答

addBall函數里的if(digit[num][i] ==1){}判斷應該是if(digit[num][i][j] ==1){}

同一個函數里,Math.random寫成了Math.randm

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

comlejade 提問者

非常感謝!
2016-02-26 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

為什么我的沒有小球掉下來

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

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

幫助反饋 APP下載

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

公眾號

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