问答详情
源自:2-4 果实绘制(静态果实)

我的果实没出来,没有报错。

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

}


提问者:依舞清暖 2016-06-27 15:55

个回答

  • qq_愿光行_03130477
    2016-06-28 10:17:41
    已采纳

    代码没报错就是逻辑问题 可能是你的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;

          


               }

        }   


    }


  • qq__9044
    2017-06-14 20:06:54

    我的也没有显示,,,呜呜呜


  • qq_愿光行_03130477
    2016-07-20 15:24:45

    已经过了很久我才看到消息 也不知道你解决了没  解决了就当我没说   如果没有你可以  用console.log("路过"); 也就是在不同的地方用打印一些汉字看看那些地方执行了  那里没执行