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++)
{
//draw
//find an ane, grow, fly up
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]=ane.canHeight-ane.len[aneID];
}
代码没报错就是逻辑问题 可能是你的draw()没放到主函数main里 也可能是你的出生代码无效
我的 你对比下吧
希望能对你有帮助
var fruitObj=function()
{
this.alive=[];//bool
this.y=[];
this.x=[];
this.l=[];
this.spd=[];
this.fruitType=[];
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]=false;
this.x[i]=0;
this.y[i]=0;
this.spd[i]=Math.random()*0.017+0.003;//[0.005,0.015)
this.fruitType[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++)
{
if(this.alive[i])//为什么不是this。alive[i]=true
{
if(this.fruitType[i]=="blue")
{
var pic=this.blue;
}
else{
var pic =this.orange;
}
if(this.l[i]<15)
{
this.l[i]+=this.spd[i]*daltaTime;
}
else
{
this.y[i]-=this.spd[i]*7*daltaTime;
}
ctx2.drawImage(pic,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]<(Math.random()*50+20))
{
this.alive[i]=false;
}
}
}
}
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]=0;
this.alive[i]=true;
var run=Math.random();
if(run<=0.3)
{
this.fruitType[i]="blue";
}
else{
this.fruitType[i]="orange";
}
}
fruitObj.prototype.dead=function(i)
{
this.alive[i] = false;
}
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;
}
}
}
我的也没有显示,,,呜呜呜
已经过了很久我才看到消息 也不知道你解决了没 解决了就当我没说 如果没有你可以 用console.log("路过"); 也就是在不同的地方用打印一些汉字看看那些地方执行了 那里没执行