为了账号安全,请及时绑定邮箱和手机立即绑定

第二次果实生成没有变大过程!

和老师的执行效果不一样。。第二次生成果实的时候没有变大这一过程,直接上升。。。。 在if(this.y[i]<10){ this.alive[i]=false; this.l[i]=0;                 //加上这句才有变大的过程 } 难道是我漏打老师代码了?

正在回答

1 回答

var fruit=function(){

this.x=[];

this.y=[];

this.l=[];

this.spd=[];

this.alive=[];

this.orange=new Image();

this.blue=new Image();

}


fruit.prototype.num=30;

fruit.prototype.init=function(){

for(var i=0;i<this.num;i++){

this.alive[i]=false;

this.x[i]=0;

this.y[i]=0;

this.l[i]=0;

this.spd[i]=Math.random()*0.01+0.005;         //果实上升速度变化区间

this.born(i);

}

this.orange.src="img/fruit.png";            //果实图片

this.blue.src="img/blue.png"; //果实图片

}


fruit.prototype.draw=function(){

for(var i=0;i<this.num;i++){

if(this.alive[i]){

if(this.l[i]<=14){

this.l[i]+=this.spd[i]*deltaTime;              //果实跟随时间变化度而变化多少,如果在谷歌切换了页面,则此页面js不执行,deltaTime会变的很大

}else{

this.y[i]-=this.spd[i]*7*deltaTime;

}

ctx2.drawImage(this.orange,this.x[i]-this.l[i]*0.5,this.y[i]-this.l[i]*0.5,this.l[i],this.l[i]);

if(this.y[i]<10){

this.alive[i]=false;

this.l[i]=0;                            //我自己加上的,不加在第二次生成果实的时候没有变大这个过程,果实就会直接上升

}

}

}

}


fruit.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.alive[i]=true;

}


function fruitMonitor(){

var num=0;

for(var i=0;i<fruit.num;i++){

if(fruit.alive[i]){num++;}

}

if(num<15){

sendFruit();

return;

}

}

function sendFruit(){

for(var i=0;i<fruit.num;i++){

if(!fruit.alive[i]){

fruit.born(i);       //判断果实是否出现

return;

}

}

}


0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

第二次果实生成没有变大过程!

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信