飞机大战-2

来源:互联网 发布:函数式编程 编辑:程序博客网 时间:2024/04/27 16:23

今天主要实现:飞机打出子弹;
子弹图片:子弹

  1. 大家可以看见子弹就是一张图片,怎么实现子弹连续射出;
    1. 子弹的创建
      /**   *   * @param x 子弹距左边的距离;   * @param y 子弹距顶部的距离;   * @param sizeX 子弹大小   * @param sizeY 子弹大小;   * @param Imagesrc 子弹图片;   */  `function bullet(x,y,sizeX,sizeY,Imagesrc){      this.x=x;      this.y=y;      this.sizeX=sizeX;      this.sizeY=sizeY;      this.Imagesrc=Imagesrc;      this.init=function(){          this.bulletImag=document.createElement("img");          this.bulletImag.style.left=this.x+"px";          this.bulletImag.style.top=this.y+"px";          this.bulletImag.style.position="absolute";          this.bulletImag.src=Imagesrc;          main.appendChild(this.bulletImag);      }      this.init();      //后面调用子弹上升;      this.move=function(){          this.bulletImag.style.top=parseInt(this.bulletImag.style.top)-20+"px";      }  }`

2. 先把一颗子弹定在飞机上方(并可以随着飞机移动)//后面会有改动,可以先new 个子弹,并把left/top跟飞机绑定(自己动手思考哈!)

  1. 子弹的移动,它应该是在我方飞机的上方(随着飞机移动)下面只是关键代码的提示;
    1. var bullets=[];
    2. bullets.push(new bullet(parseInt(document.defaultView.getComputedStyle(myPlane.oImg,null).left)+30,
    3. 这里涉及到循环执行函数,这样子弹才会一直发射;
      1. setInterval("moveBullet()",20);
  2. 子弹图片超过一定范围的删除,(不删除会怎么样?)
    1. 图片的删除
      1. main.removeChild(bullets[i].bulletImag);
    2. 由于图片是装在数组里面的,所以数组也要删除,不然数组一直在创建;
      1. bullets.splice(i,1);
>       `/*>   移动子弹>   */>   var bulletslen=bullets.length;>   for(var i=0;i<bulletslen;i++){>   bullets[i].bulletmove();>   /*>   如果子弹超出边界,删除子弹>   */>   if(bullets[i].bulletimage.offsetTop<0){//offsetTop第一节有介绍>   mainDiv.removeChild(bullets[i].bulletimage);>   bullets.splice(i,1);>   bulletslen--;>   }>  > }`

参数:arr.splice(index,howmany,element1,… …,elementN);
1、index———从该下标开始删除
2、howmany—-删除指定数量的元素
3、elements—–插入的元素

0 0
原创粉丝点击