Flash游戏制作教程:青蛙跳荷叶
2007-12-26 11:12:00 来源:WEB开发网效果及源代码下载:
效果2
现在我们来做游戏中另一个主要的元素:移动的荷叶,我们先让它来回移动起来。我们在"青蛙跳动起来”的代码上加入:
1.把所有程序生成的荷叶都放在一个容器里:
var mcHys:MovieClip = _root.createEmptyMovieClip("mcHys", 999);
2.这个mc里设置一些公有属性:
//行距
mcHys.numHJ = 80;
//尺寸
mcHys.numWH = 58;
//下移速度
mcHys.numDownSd = 4;
//随机起始的时间
mcHys.arrMoveStarTime = [0, 48, 60, 20, 48];
其中:mcHys.swapDepths(mcPlayer);
目的是把荷叶容器mcHys的与mcPlayer的深度交换。因为青蛙要在荷叶的上面。
3.写入荷叶
用了两个函数:
复制一批荷叶:getSomeHy(numCount:Number, mcHys:MovieClip)
设置每个荷叶的行为:setHeYeMove(mcHy:MovieClip, numSD:Number, numStarTime:Number)
//初使化荷叶
getSomeHy(4, mcHys);
注:这些方法在后来都会修改,我们现在的目的只是把要完成的目标完成了,修改是后面的事。
//移动的荷叶############################
function setHeYeMove(mcHy:MovieClip, numSD:Number, numStarTime:Number) {
mcHy.objUpTopDown = new casUpTopDown(480);
mcHy.numSD = numSD;
mcHy.numStar = mcHy._x;
//什么时候开始
mcHy.numStarTime = numStarTime;
mcHy.onEnterFrame = function() {
if (this.numStarTime--<0) {
if (this.objUpTopDown.run() == 0) {
this.objUpTopDown.isFx = false;
}
this._x = (this.numStar+this.objUpTopDown.run()*this.numSD);
}
};
}
//荷叶容器
var mcHys:MovieClip = _root.createEmptyMovieClip("mcHys", 999);
mcHys.swapDepths(mcPlayer);
//行距
mcHys.numHJ = 80;
//尺寸
mcHys.numWH = 58;
//下移速度
mcHys.numDownSd = 4;
//随机起始的时间
mcHys.arrMoveStarTime = [0, 48, 60, 20, 48];
//复制一批
function getSomeHy(numCount:Number, mcHys:MovieClip) {
for (var numI:Number = 0; numI var mcTem:MovieClip = mcHys.attachMovie("hy", "mcHy"+numI, numI);
mcTem._y = (Stage.height-mcHys.numWH)-numI*(mcHys.numHJ+mcHys.numWH);
mcTem._width = mcTem._height=mcHys.numWH;
setHeYeMove(mcTem, 1, getNoSameRandNum(mcHys.arrMoveStarTime));
}
//end for
}
//初使化荷叶
getSomeHy(4, mcHys);
//
- ››FLASH不等于运算符!=的使用实例
- ››FLASH不全等运算符!==
- ››FLASH字符串分隔符运算符
- ››FLASH% 模运算符
- ››Flash+、++、+= 加法运算符
- ››Flash, 逗号运算符
- ››flash中的-、--、-=减法运算符
- ››Flash的-Infinity 常数、.点运算符、/ 除法运算符...
- ››Flash两种注释方法/*..*/ 和// 注释行分隔符运算符...
- ››Flash的/=除法赋值运算符、=赋值运算符、== 等于运...
- ››Flash之?: 条件运算符、^ 按位 XOR 运算符、^= 按...
- ››Flash的_framesloaded代码示例
更多精彩
赞助商链接