什么原因啊
我把你的放在我的里面,果实是正常大小,你是只截图截了一部分吗?
你的问题解决了吗?
上面的图是你的代码,我直接拿来用,是没有问题的,你可以把aneobj.js中的lineWidth调大一些,
这里也可以调大些this.len[i] = 200 + Math.random()*50;
var aneObj = function () { this.x = []; this.len = []; } aneObj.prototype.num = 50; aneObj.prototype.init = function () { for(var i =0;i < this.num; i++){ this.x[i] = i*9 + Math.random()*2; this.len[i] = 50 + Math.random()*5; } } aneObj.prototype.draw = function () { ctx2.save(); ctx2.globalAlpha = 0.6; ctx2.lineWidth = 8; ctx2.lineCap = "round"; ctx2.strokeStyle = "#3b154e"; for(var i =0; i < this.num; i++){ ctx2.beginPath(); ctx2.moveTo(this.x[i],canHeight); ctx2.lineTo(this.x[i],canHeight - this.len[i]); ctx2.stroke(); } ctx2.restore(); }
var fruitObj = function () { this.alive = [];//bool this.x = []; this.y = []; this.orange = new Image(); this.blue = new Image(); } fruitObj.prototype.num = 30; fruitObj.prototype.init = function () { for( var i = 0;i < this.num; i++){ this.alive[i] = true; this.x[i] = 0; this.y[i] = 0; this.born(i); } this.orange.src = "./src/fruit.png"; this.blue.src= "./src/blue.png"; } fruitObj.prototype.draw = function () { for(var i=0; i < this.num; i++){ ctx2.drawImage(this.orange,this.x[i],this.y[i]); } } fruitObj.prototype.born = function (i) { var aneId= Math.floor(Math.random()*ane.num) this.x[i] = ane.x[aneId]; this.y[i] = canHeight - ane.len[aneId]; }
你可以把画海葵的代码贴出来。
你这个会全部变得越来越大吗?
不好意思,我看着图片又想,发现你还没有学到后面,答非所问了,对不起了,这里你的图片大小应该是没有做限制了,this.l[i]<limitnum,,,limitnum是你限制图片的大小,如果设了限制,那就是上面的原因,老师对于这个原因也是后面才将,你先不急,我的回答如果使你困惑,我很抱歉!
我一开始也是这样,但我无聊,一直不动一个页面 ,整的计算机窗口就只有他,不会出现了
你是不是打开一个页面以后,然后打开调整代码的工具,此时计算器窗口只有代码页面,原来的页面也被遮挡了,这个打开两个页面差不多
那我只开一个页面也是好大好大
这个问题,老师的优化里已经做出了解释,你如果开启了另外一个页面或者多个窗口访问,那么他们都是访问的是同一个资源,图片的大小是和每一帧的图像时间差来决定的,第一个窗口的某些或某个fruit[i]的width假设是10,下一帧是12,然后你打开另一个页面,刚好born了fruit[i],他承接上一个窗口的width=10,过了5帧之后,width已经是达到上限了(对于这个窗口来说),可你调回第一次打开的页面,资源重新启动,但此时时间差不一样了,本来width=1帧*10;但此时width=(1+5)*10,图片陡然增大,总之是开闭或打开另一个窗口,原来的js静止。希望你能明白,这里,老师的"优化"一节课给出了说明,我只是阐述一边。