什么原因啊
我把你的放在我的里面,果实是正常大小,你是只截图截了一部分吗?
你的问题解决了吗?
上面的图是你的代码,我直接拿来用,是没有问题的,你可以把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静止。希望你能明白,这里,老师的"优化"一节课给出了说明,我只是阐述一边。