第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時(shí)綁定郵箱和手機(jī)立即綁定

時(shí)鐘是顯示了,為什么沒有小球彈跳出來?

//固定化的寫法

//var WINDOW_WIDTH = 1024;

//var WINDOW_HEIGHT = 768;

//var RADIUS = 8;

//var MARGIN_LEFT=30;

//var MARGIN_TOP = 60;


//從指定的時(shí)間倒計(jì)時(shí)到現(xiàn)在

//const endTime = new Date(2018,5,13,16,47,52);//js中月是0-11


//可以倒計(jì)時(shí)一個(gè)小時(shí)

//var endTime = new Date();

//endTime.setTime(endTime.getTime() + 3600 * 1000);

//var curShowTimeSeconds = 0;



var balls = [];

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



window.onload = function () {

//屏幕的自適應(yīng)

? ? WINDOW_WIDTH = document.body.clientWidth;

? ? WINDOW_HEIGHT = document.body.clientHeight;

? ??

? ? MARGIN_LEFT = Math.round(WINDOW_WIDTH / 10);

? ? RADIUS = Math.round(WINDOW_WIDTH * 4 / 5 / 108) - 1;


? ? MARGIN_TOP = Math.round(WINDOW_HEIGHT / 5);



? ? //獲取繪圖環(huán)境

? ? var canvas = document.getElementById('canvas');

? ? var context = canvas.getContext("2d");


? ? canvas.width = WINDOW_WIDTH;

? ? canvas.height = WINDOW_HEIGHT;


? ? curShowTimeSeconds = getCurrentShowTimeSeconds()

? ??

? ? //setInterval制作動畫的一個(gè)簡單架構(gòu)

? ? //兩個(gè)參數(shù),一個(gè)是匿名函數(shù),一個(gè)是時(shí)間,每隔多少毫秒執(zhí)行一次這個(gè)函數(shù)


? ? setInterval(

? ? ? ? function(){

? ? ? ? ? ? ? render(context);//繪制當(dāng)前畫面

? ? ? ? ? ? ? update();//調(diào)整

? ? ? ? }

? ? ? ? ?,

? ? ? ? 50

? ? ? ? );

}


function getCurrentShowTimeSeconds() {

? ? var curTime = new Date();//當(dāng)前的時(shí)間

? ? var ret = curTime.getHours() * 3600 + curTime.getMinutes() * 60 + curTime.getSeconds();

? ? return ret;

? ? //var ret = endTime.getTime() - curTime.getTime();//毫秒數(shù)

? ? //ret = Math.round(ret / 1000)//轉(zhuǎn)換為秒

? ?// return ret >= 0 ? ret : 0;//倒計(jì)時(shí)到0顯示0

}



//處理時(shí)間的變化

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;

? ? //時(shí)間改變

? ? 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(curHours / 10));

? ? ? ? }


? ? ? ? if (parseInt(curMinutes % 10) != parseInt(curMinutes % 10))

? ? ? ? {

? ? ? ? ? ? addBalls(MARGIN_LEFT + 54 * (RADIUS + 1), MARGIN_TOP, parseInt(curHours % 10));

? ? ? ? }



? ? ? ? if (parseInt(curSeconds / 10) != parseInt(curSeconds / 10))

? ? ? ? {

? ? ? ? ? ? addBalls(MARGIN_LEFT + 78 * (RADIUS + 1), MARGIN_TOP, parseInt(curHours / 10));

? ? ? ? }


? ? ? ? if (parseInt(curSeconds % 10) != parseInt(curSeconds % 10))

? ? ? ? {

? ? ? ? ? ? addBalls(MARGIN_LEFT + 93 * (RADIUS + 1), MARGIN_TOP, parseInt(curHours %10));

? ? ? ? }


? ? ? ? curShowTimeSeconds = nextShowTimeSeconds;

? ? }

? ? updateBalls();//對已經(jīng)存在的小球進(jìn)行更新


? ? console.log(balls.length);//界面在調(diào)試時(shí)會顯示小球數(shù)組的個(gè)數(shù)

}

? ? //更新小球的狀態(tài):小球的基本運(yùn)動

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;

? ? ? ? ? ?}

? ? ? ?}

? ? ? ?//性能優(yōu)化:判斷一個(gè)小球是否在畫面內(nèi)

? ? ? ?var cnt = 0;//代表留在畫布中的小球數(shù)量

? ? ? ?for (var i = 0; i < balls.length;i++)

? ? ? ?{

? ? ? ? ? ?//小球的右邊大于0加上小球的左邊小于屏幕的寬就證明小球還在屏幕里

? ? ? ? ? ?if (balls[i].x + RADIUS > 0 && balls[i].x - RADIUS < WINDOW_WIDTH)

? ? ? ? ? ?{

? ? ? ? ? ? ? ?//如果小球在屏幕里 就把這個(gè)小球覆蓋數(shù)組中小球

? ? ? ? ? ? ? ?balls[cnt++]=ball[i]

? ? ? ? ? ?}

? ? ? ? ? ?//while (ball.length > cnt)

? ? ? ? ? ?//{

? ? ? ? ? ?//? ? balls.pop();//把cnt及以后的小球刪除掉

? ? ? ? ? ?//}

? ? ? ? ? ?//表示如果cnt小于300則balls.length就取cnt,否則就取300,,是為了保證計(jì)算機(jī)的性能

? ? ? ? ? ?while (balls.length > Math.min(300, cnt)) {

? ? ? ? ? ? ? ?balls.pop();

? ? ? ? ? ?}

? ? ? ?}

? ? }


//添加小球

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()*color.length)]

? ? ? ? ? ? ? ? }

? ? ? ? ? ? ? ? //push() 方法可向數(shù)組的末尾添加一個(gè)或多個(gè)元素,并返回新的長度

? ? ? ? ? ? ? ? balls.push(aBall);

? ? ? ? ? ? }

? ? ? ? }

? ? }

? ? ? ??

}

//顯示時(shí)分秒

function render(cxt) {

? ? //clearRect對矩形空間內(nèi)的圖像進(jìn)行一個(gè)刷新操作

? ? //參數(shù)分別為:矩形空間左上角的x坐標(biāo)左上角的y坐標(biāo),要清除的矩形的寬度(以像素計(jì)),要清除的矩形的高度(以像素計(jì))

? ? cxt.clearRect(0,0,WINDOW_WIDTH,WINDOW_HEIGHT);

? ? //當(dāng)前日期距離截止日期有多少小時(shí)、多少分鐘、多少秒,目前小時(shí)最大位數(shù)為 2個(gè),最多倒計(jì)時(shí)4天

? ? // var hours = 12

? ? //var minutes = 34

? ? //var seconds = 56

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


? ? //對每個(gè)小球進(jìn)行繪制

? ? for (var i = 0; i < balls.length; i++) {

? ? ? ? alert("111")

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

? ? ? ? ? ? }

}


正在回答

4 回答

https://img1.sycdn.imooc.com//5b2b6ef200019c4706950630.jpg這個(gè)沒改

0 回復(fù) 有任何疑惑可以回復(fù)我~

你在判斷時(shí)分秒是否與后一個(gè)相等的時(shí)候,addBalls()函數(shù)里的num全是curHours,應(yīng)該改成對應(yīng)的curMinutes之類的

0 回復(fù) 有任何疑惑可以回復(fù)我~

效果是這樣

https://img1.sycdn.imooc.com//5b20c683000131a018910884.jpg

0 回復(fù) 有任何疑惑可以回復(fù)我~

都沒有生成小球??

0 回復(fù) 有任何疑惑可以回復(fù)我~

舉報(bào)

0/150
提交
取消

時(shí)鐘是顯示了,為什么沒有小球彈跳出來?

我要回答 關(guān)注問題
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號