制作flash青蛙跳荷叶游戏

时间:2007-12-07 06:11:50  来源:闪吧论坛  作者:smallerbird  【背景色 杏仁黄 秋叶褐 胭脂红 芥末绿 天蓝 雪青 灰 银河白

我现在的青蛙可以跳上荷叶了,不过问题是好像不太逼真:青蛙总是落在荷叶的正中,而且从就自算青蛙落在荷叶的边上也会变到荷叶的正中,所以我们要修正它:
我们还是要修改:playerMove()这个函数:

//检测跳上
   //
   for (var mcI in _root.mcHys) {
    if (this.hitTest(_root.mcHys[mcI])) {
     //
     var numTemPlayHeCha:Number = this._x-_root.mcHys[mcI]._x;
     //
     getOneHy(3, mcHys);
     //贴上
     this.onEnterFrame = function() {
      //移动荷叶中心_x      
       this._x = _root.mcHys[mcI]._x+numTemPlayHeCha;
      //end if  
      //移动荷叶中心_y 
      if (this.numOnHysY != _root.mcHys[mcI]._y) {
       if ((this.numOnHysY-this.numToHySd)>_root.mcHys[mcI]._y) {
        _root.mcHys._y += this.numToHySd;
        mcPlayer.numOnHysY -= this.numToHySd;
       } else {
        var temaaa:Number = Math.abs(mcPlayer.numOnHysY-_root.mcHys[mcI]._y);
        _root.mcHys._y += temaaa;
        mcPlayer.numOnHysY -= temaaa;
       }
       //end if
      }
      //end if     
     };
     break;
    }
   }

程序思路:分别处理青蛙的x坐标和y坐标:
1>青蛙落在荷叶哪一个部位,就在这停在荷叶的哪个部位。
this._x = _root.mcHys[mcI]._x+numTemPlayHeCha;
2>青蛙y坐标慢慢移动到荷叶的y坐标。为什么一定要移动到荷叶的y坐标,因为青蛙跳的距离是一定的。青蛙跳上荷叶不一定是会是最佳位置,所以要修正,不然后多跳几次,发现青蛙根本跳不到下个荷叶,不信的读者可以试一下。

七、加上开始,结束
1>到目前为止我们的青蛙还可以"漂”在水中,即使不跳到荷叶上。
2>删除跳过的荷叶(上文提到的)

效果及源代码下载:

八、增加游戏的可玩性(吃小虫)。
这个游戏大致最算做完了,只是觉得没有什么游戏性,那我们再加一个元素小虫,随机在荷叶中出现小虫,如果青蛙跳上有小虫的荷叶,就加10分。效果及源代码下载:

程序思路:
1>要在荷叶上出现小虫最简单的方法就是在mc荷叶符号,里加入一个图层,入一个mc的小虫,并命名一个名字。
2>在产生荷叶的代码中加一个随机数。来判断是否显示,如果显示就设置所产生的荷叶中的"小虫"电影符号的alpha值为100,否则为0。
3>在判断青蛙是否跳上荷叶的代码处加入一段代码:来判断当前的荷叶的小虫"电影符号的alpha值,如果是100就证明有小虫,分数加1。(分数我们可以一个_root.变量来存储)

九、添加平面,效果
效果:


共3页: 上一页 [1] [2] 3 下一页

文章评论

共有 0位网翼网友发表了评论 查看完整内容