| flash小游戏相信很网友都玩过,有没有想过自己制作一个呢?本教程教用Flash工具设计开发一个青蛙跳荷叶的小游戏,作者提供了制作的思路,还有步骤效果的源代码,对我们的学习很有利,希望大家能喜欢~ | |
五、背景的移动
效果及源代码下载:
现在青蛙可以跳上荷叶,可是只能在这小范围运动,我们要让青蛙走的更远。如何移动背景呢?只要把荷叶容器mcHys的Y坐标递增,看上去青蛙就向上移动了。把:
playerMove()中的this._y -=
this.numMoveSd; 修改为: //移动背景 _root.mcHys._y += this.numMoveSd;
背景移动了: 最忘了复制一行新的荷叶 getOneHy(3,
mcHys); 当然也不要忘了删除跳过的荷叶:(后面的版本会加上这个)
注:读者会发现:getSomeHy这个函数不见,而换成了一个:getOneHy,因为笔者发现在复制一行要比复制几行的功能更适合,这个游戏。
六、更像是跳到荷叶
效果及源代码下载:
我现在的青蛙可以跳上荷叶了,不过问题是好像不太逼真:青蛙总是落在荷叶的正中,而且从就自算青蛙落在荷叶的边上也会变到荷叶的正中,所以我们要修正它:
我们还是要修改: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坐标,因为青蛙跳的距离是一定的。青蛙跳上荷叶不一定是会是最佳位置,所以要修正,不然后多跳几次,发现青蛙根本跳不到下个荷叶,不信的读者可以试一下。
|