顶部468*60ad 顶部468*60ad 顶部468*60ad 顶部468*60ad

Flash制作青蛙跳荷叶游戏动画

2007-12-03 21:04:48  来源:闪吧 smallerbird

  三、修改"来回移动的荷叶"

  我们发现我们写出来的荷叶,并不是我们想要的,如里每一行只有一个荷叶的话,青蛙的选择就很少了。所以我们应该在每一行放置若干个荷叶。效果及源代码下载:


效果3 Webjx.Com

  我们主要是修改:移动的荷叶 setHeYeMove(mcHy:MovieClip, numSD:Number, numStarTime:Number, numLeftRight:Number) 和复制一批:function getSomeHy(numCountI:Number, numCountJ:Number, mcHys:MovieClip) 这个两个函数:

  1) setHeYeMove主要修改的部分就是荷叶移动的状态:目前在于每组荷叶与其它荷叶是交替来回移动。我们在这里定义了一个数组:
  //随机起始的时间
  mcHys.arrMoveStarTime = [0, 48, 60, 20, 48];
  配合:
  //获得不相同的随机数
  function getNoSameRandNum(arrA:Array)
  来随机改变荷叶的移动的起始时间。来完成作到这一点。

  2) getSomeHy主要作用就是生成一个几行几列对队列。不知读者有没有发现:如果不按鼠标,青蛙就会随着荷叶来回移动,好像就停在上面。因为我们加了初使化语句:

  onEnterFrame不停的指定的:青蛙的坐标等于荷叶的坐标。
网页教学网

  //青蛙附上第一个荷叶
  mcPlayer.onEnterFrame = function() {
  this._x = mcHys.mcHy0_1._x;
  this._y = mcHys.mcHy0_1._y;
  };

网页教学网

  四、跳上荷叶

  效果及源代码下载: Webjx.Com


效果4

  要让青蛙跳上荷叶,而且要随着荷叶移动。我们只要作到:青蛙的坐标等于荷叶的坐标;然后我们还要检测青蛙是否跳上荷叶呢?这个检测代码很显然要放在青蛙移动的代码之中: playerMove()。加入:

Webjx.Com

  //检测跳上
  //
  for (var mcI in _root.mcHys) {
  if(this.hitTest(_root.mcHys[mcI])){
  //贴上
  this.onEnterFrame=function(){
  this._x=_root.mcHys[mcI]._x
  this._y=_root.mcHys[mcI]._y
  }
  break;
  }
  }

Webjx.Com

  注:这里的检测效率不高,因为我们是检测所有的荷叶是否碰到青蛙,很显然,我们只要检测青蛙上一行的荷叶就可以了,这里的代码没有写出来。有兴趣的读者可以自己修改。

文章评论

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