|
三、修改"来回移动的荷叶"
我们发现我们写出来的荷叶,并不是我们想要的,如里每一行只有一个荷叶的话,青蛙的选择就很少了。所以我们应该在每一行放置若干个荷叶。效果及源代码下载:
效果3
我们主要是修改:移动的荷叶 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; }; |
四、跳上荷叶
效果及源代码下载:
效果4
要让青蛙跳上荷叶,而且要随着荷叶移动。我们只要作到:青蛙的坐标等于荷叶的坐标;然后我们还要检测青蛙是否跳上荷叶呢?这个检测代码很显然要放在青蛙移动的代码之中: playerMove()。加入:
//检测跳上 // 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; } } |
注:这里的检测效率不高,因为我们是检测所有的荷叶是否碰到青蛙,很显然,我们只要检测青蛙上一行的荷叶就可以了,这里的代码没有写出来。有兴趣的读者可以自己修改。
上一页 [1] [2] [3] [4] [5] 下一页
|