为什么一定要用balls.pop()呢

来源:5-1 性能优化

Pengweb

2015-07-27 23:57

为什么用balls,shift()不可以呢,显示的效果就会差很多呢?最开始不是push()进去的吗,这个已经是插入最后了,用pop()岂不是把刚插入的又删掉了吗

写回答 关注

2回答

  • 哦哦哒
    2015-08-21 08:58:28
    已采纳

    由于x轴方向上的速度不一致,所以不一定在前面的一定先出去,所以用shift是不可取的,其次,老师之所以用pop是因为已经确定了显示区域内的小球一定是count个

  • Qzhor
    2016-08-24 17:58:19

      if (balls[i].x+RADIUS>0 && balls[i].x-RADIUS<WINDOW_WIDTH) {
       balls[cnt++]=balls[i];
      }

    研究下这句话,老师把区域内的小球又重新放到了balls的前CNT个,相当于覆盖,所以屏幕外的就是 

    while (balls.length>cnt) {
      balls.pop();
     } balls[cnt]这个下标之后的,依次删掉

炫丽的倒计时效果Canvas绘图与动画基础

学习HTML5中最激动人心的技术Canvas,彻底释放自己的创造力

96752 学习 · 1000 问题

查看课程

相似问题