Flash制作青蛙跳荷叶游戏动画
2007-12-03 21:04:48 来源:闪吧 smallerbird
五、背景的移动
效果及源代码下载:
网页教学网
效果5
Webjx.Com
现在青蛙可以跳上荷叶,可是只能在这小范围运动,我们要让青蛙走的更远。如何移动背景呢?只要把荷叶容器mcHys的Y坐标递增,看上去青蛙就向上移动了。把: playerMove()中的this._y -= this.numMoveSd;
修改为:
//移动背景
_root.mcHys._y += this.numMoveSd; 网页教学网
背景移动了:
最忘了复制一行新的荷叶
getOneHy(3, mcHys);
当然也不要忘了删除跳过的荷叶:(后面的版本会加上这个) Webjx.Com
注:读者会发现: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坐标,因为青蛙跳的距离是一定的。青蛙跳上荷叶不一定是会是最佳位置,所以要修正,不然后多跳几次,发现青蛙根本跳不到下个荷叶,不信的读者可以试一下。 Webjx.Com






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