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

关于最开始出生的果实,大鱼吃不到,之后果实循环后就可以正常吃到果实,是果实初始化是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)//果实尺寸
            {
                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()  //检测果实数量
{
    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/150
提交
取消

关于最开始出生的果实,大鱼吃不到,之后果实循环后就可以正常吃到果实,是果实初始化是alive都是false原因嘛,但是我试了还是不行。大概是什么问题?

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