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

互联网   发布时间:2008-10-06 01:20:14   作者:佚名   我要评论
flash小游戏相信很网友都玩过,有没有想过自己制作一个呢?本教程教用Flash工具设计开发一个青蛙跳荷叶的小游戏,作者提供了制作的思路,还有步骤效果的源代码,对我们的学习很有利,希望大家能喜欢~   先看看游戏的最终效果: 预览效果   制作步骤:

  五、背景的移动

  效果及源代码下载:


效果5
  现在青蛙可以跳上荷叶,可是只能在这小范围运动,我们要让青蛙走的更远。如何移动背景呢?只要把荷叶容器mcHys的Y坐标递增,看上去青蛙就向上移动了。把: playerMove()中的this._y -= this.numMoveSd;
  修改为:
  //移动背景
  _root.mcHys._y = this.numMoveSd;
  背景移动了:
  最忘了复制一行新的荷叶
  getOneHy(3, mcHys);
  当然也不要忘了删除跳过的荷叶:(后面的版本会加上这个)
  注:读者会发现:getSomeHy这个函数不见,而换成了一个:getOneHy,因为笔者发现在复制一行要比复制几行的功能更适合,这个游戏。

  六、更像是跳到荷叶

  效果及源代码下载:


效果6
  我现在的青蛙可以跳上荷叶了,不过问题是好像不太逼真:青蛙总是落在荷叶的正中,而且从就自算青蛙落在荷叶的边上也会变到荷叶的正中,所以我们要修正它:

  我们还是要修改: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坐标,因为青蛙跳的距离是一定的。青蛙跳上荷叶不一定是会是最佳位置,所以要修正,不然后多跳几次,发现青蛙根本跳不到下个荷叶,不信的读者可以试一下。

相关文章

最新评论