關(guān)于最開始出生的果實(shí),大魚吃不到,之后果實(shí)循環(huán)后就可以正常吃到果實(shí),是果實(shí)初始化是alive都是false原因嘛,但是我試了還是不行。大概是什么問題?
var fruitObj = function()
{
?? ?this.alive = [];//bool
?? ?this.x = [];
?? ?this.y = [];
?? ?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.003-0.02
?? ??? ?this.born(i);
?? ??? ?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++)
?? ?{
?? ??? ?//draw? //find,grow,fly
?? ??? ?if(this.alive[i] = true)
?? ??? ?{
?? ??? ??? ?if(this.fruitType[i] == "blue")
?? ??? ??? ?{
?? ??? ??? ??? ?var pic = this.blue;
?? ??? ??? ?}
?? ??? ??? ?else
?? ??? ??? ?{
?? ??? ??? ??? ?var pic = this.orange;
?? ??? ??? ?}
?? ??? ??? ?if(this.l[i] <= 14)//果實(shí)尺寸
?? ??? ??? ?{
?? ??? ??? ??? ?this.l[i] += this.spd[i] * dataTime;
?? ??? ??? ?}
?? ??? ??? ?else
?? ??? ??? ?{
?? ??? ??? ??? ?this.y[i] -= this.spd[i] * 7 * dataTime;
?? ??? ??? ?}
?? ??? ??? ?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] < 10)
?? ??? ??? ?{
?? ??? ??? ??? ?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 ran = Math.random();
?? ?if(ran < 0.2)
?? ?{
?? ??? ?this.fruitType[i] = "blue";
?? ?}
?? ?else
?? ?{
?? ??? ?this.fruitType[i] = "orange";
?? ?}
}
fruitObj.prototype.dead = function(i) //被吃 死亡
{
?? ?this.alive[i] = false;
}
function fruitMonitor()? //檢測果實(shí)數(shù)量
{
?? ?var num = 0;
?? ?for(var i=0;i<fruit.num;i++)
?? ?{
?? ??? ?if(fruit.alive[i]) num++;
?? ?}
?? ?if(num < 15)
?? ?{
?? ??? ?sendFruit();
?? ??? ?return;
?? ?}
}
function sendFruit()? //果實(shí)進(jìn)入循環(huán)
{
?? ?for(var i=0;i<fruit.num;i++)
?? ?{
?? ??? ?if(!fruit.alive[i])
?? ??? ?{
?? ??? ??? ?fruit.born(i);
?? ??? ??? ?return;
?? ??? ?}
?? ?}
}