猿问

爱心鱼中,随着玩的时间增加,大鱼吃到果实出现的wave圈圈很宽,另外大鱼身体的变化异常,请问为什么?

开始的时候,大鱼吃到果实 出现的圈圈和身体变化都是正常的,如下图所示:

但是随着玩的时间增加,大鱼吃到果实出现的涟漪=很宽,身体变化异常,无论吃到什么果实都是红色,另外fruitNum的值也不是正常的增加

http://img.mukewang.com/5732f9c60001826f04150254.jpg

在谷歌F12下调试,当大鱼吃果实异常if(l < 900)中的内容一直在执行,感觉很奇怪

下面写出我的检测代码,希望大神能帮我解决一下这个问题

function momFruitCollision()

{

 if(!data.gameOver){

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

  {

   if(fruit.alive[i])

   {

    //计算长度

    var l = calLength2(fruit.x[i], fruit.y[i], mom.x, mom.y);

    if(l < 500)

    {

     //fruti eaten

     fruit.dead(i);

     data.fruitNum ++;

     mom.momBodyCount ++;

     if(mom.momBodyCount > 7){

      mom.momBodyCount = 7;

     }

     if(fruit.fruitType[i] == "blue"){

      data.double = 2;

     }else{

      data.double = 1;

     }

                    wave.born(fruit.x[i],fruit.y[i]);

    }

   }

  }

 }

}

//mom baby collision

function momBabyCollision(){

 if(data.fruitNum >0 && !data.gameOver){

  var l = calLength2(mom.x,mom.y,baby.x,baby.y);

  if(l < 500){

   //baby recover

   baby.babyBodyCount = 0;

  /* //data =>0

   data.reset();*/

   mom.momBodyCount = 0;

   //score update

   data.addScore();

   //draw halo

   halo.born(baby.x,baby.y);

  }

 }

}



kzzk
浏览 1580回答 2
2回答

kzzk

找到原因了,问题在main.js中frutiMonitor();应该放在fruit.draw();之前,先监控果实数量15个,再绘制果实。不然就会出现大鱼一直再吃离他最近的果实,涟漪也会一直被绘制。
随时随地看视频慕课网APP
我要回答