问答详情
源自:2-5 果实绘制(果实上浮)

果实不能变成动态

请问为什么我的果实完全不会动,也不会变大变小飘起来,编译也没报错

提问者:慕用7145093 2018-03-07 23:29

个回答

  • morninggair
    2018-04-06 09:35:23

    //绘制果实


    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.l[i] = 0;

    this.spd[i] = Math.random() * 0.017 + 0.003;  //[0.003,0.02)

    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 an ane,grow,fly,up

    if(this.alive[i])

    {

    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] * deltaTime;

    }

    else

    {

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

    }

    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";  //orange,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)

    {

    //send fruit

    sendFruit();

    return;

    }

    }


    function sendFruit()

    {

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

    {

    if(!fruit.alive[i])

    {

    fruit.born(i);

    return;

    }

    }

    }



    应该是代码有的地方打错了,这个代码是对的,你可以看一下