新客网
首页 | 新闻 | 系统·网络·服务器·安全 | 工具·办公 | 编程·数据库 | 图象·网页·运营 | 硬件·存储 | 专题教程 | 论坛·old
 → 当前位置:首页 > 教程 > 图形媒体 > FLASH教程 > 正文

随机转盘游戏

XKER.COM   2006-11-11 10:25:55  来源:  收藏本文


点击浏览该文件

  当然程序还可以完善,但主要的AS和架构都已经完成了。你可以自己试着完成它。
补充说一下,因为动画里的图形比较多,所以运行可能会比较慢,你可以把FLASH缩小播放,就不会慢了。(当然这个可以优化的,我没时间,就做到这吧)
我大致解释一下AS的用途

第一帧

//此处声明变量
pans=0; //转盘的旋转速度,单位是弧度值
pansmax=0.3; //转盘的最大速度,单位是弧度值
panva=-0.0008;  //转盘旋转的加速度,由于需要它越来越慢,所谓值和PANSMAX相反。
qiuvv=0; //小球的位置相对于转盘中心点(198,198)的角度值,单位弧度。
qius=0;  //小球的转速,相对于转盘中心点(198,198)的角度值速度,单位弧度。
qiusmax=-0.26; //小球转速的最大速度
qiusmin=-0.01;  //小球转速的最小速度,该值决定小球的速度降到多少的时候才会停下停到转盘上。
qiuva=0.001; //小球转速的加速度。
qiur=184;  //小球转弯半径。

第11帧

pans=pansmax-pansmax*random(100)/1000;
qius=qiusmax+qiusmax*random(100)/1000;

给小球和转盘都给一个初速度,因为要让结果有随机的变化,所以加入了RANDOM让初速度为一个不定值。
第12帧

if (pans>0) {
 pan._rotation +=pans/Math.PI*180;
 pans +=panva;
}

以上语句让转盘旋转,并且以加速度panva逐渐慢下来
按此在新窗口浏览图片

if (qius
 qiuvv +=qius;  //让小球的转弯角度增加qius;
 qiuvv1 =qiuvv-pan._rotation*Math.PI/180;;  //qiuvv1是一个临时值,用来记录小球和转盘的相对转角差
 tx=(qiur-qius*40-10)*Math.sin(qiuvv)+198;  //计算小球的坐标,注意,之所以半径不是qiur而是(qiur-qius*40-10)是因为希望达到一个效果,根据小球的速度,让它速度越慢,离盘就越近
 ty=-(qiur-qius*40-10)*Math.cos(qiuvv)+198;
 qiu._x=tx;
 qiu._y=ty;
 qius +=qiuva;  //小球加速度

按此在新窗口浏览图片

} else {  //当小球的速度过慢,小于最小速度的时候 
 qiuvv =qiuvv1+pan._rotation*Math.PI/180;  //让小球的转角等于转盘的转角,加上他们之间的角度差,实际上就是让小球定在转盘上。 
 tx=(qiur-17)*Math.sin(qiuvv)+198; 
 ty=-(qiur-17)*Math.cos(qiuvv)+198; 
 qiu._x=tx; 
 qiu._y=ty; 
 gotoAndPlay(14); //以上不难理解,不解释了。 
}

第14帧
原本这一帧是留着做优化用的,意思就是让小球的位置更规范,因为现在小球的停的位置是随机的,很有可能停在2个格子之间。不过AS我暂时没写,你想办法解决它吧,我提醒一下,可以使用数组记录37个关键点的弧度值,然后赋值给qiuvv1就可以了。
第15帧

if (pans>0) {
 pan._rotation +=pans/Math.PI*180;
 pans +=panva;
// 以上语句是在转盘速度仍然大于0的时候让盘转动
} else { //当盘停下以后
m=0;
i=0;
while (i<=36) {
 lik=pan["ser-"+i];
 if (lik.hitTest(tx,ty,true)) { //在实例pan中,有37个实例分别代表了37个号码区,此句是用来判断小球所在的坐标tx,ty是否和第i个号码区重合。关于hittest的用法请查阅帮助
  m=i;
  i=37;
 }
 i+=1;
}
gotoAndStop(17);
}
}
qiuvv =qiuvv1+pan._rotation*Math.PI/180;
tx=(qiur-17)*Math.sin(qiuvv)+198;
ty=-(qiur-17)*Math.cos(qiuvv)+198;
qiu._x=tx;
qiu._y=ty;
//以上语句让小球跟随盘转动。
上一篇教程:Flash MX 2004 编程(AS2.0)教程(二)
下一篇教程:黑客帝国数字流特效制作揭密
收藏本文】 【我要投稿】 【打印本文】 【论坛讨论】 【关闭窗口

相关文章
·Flash MX 2004 编程(AS2.0)教程(二)·Flash MX 2004 编程(AS2.0)教程(三)
·AS3.0概要–了解AS3.0的改变·MX2004--AS2.0 新特性实例教程(一)
·在Flash中制作漂亮的动感水珠·浅释ActionScript代码优化

学院文章搜索
  
推荐文章
·安全使用网上银行的七点建
·限制网上行为 从WorkWin限
·无线技术在Linux操作系统中
·其实很简单——防火墙设置
·端口·木马·安全·扫描应
·Windows远程控制完全指南
·十条经典的网站设计与优化
·asp全站防止注入的代码
·整理干净的系统 清理软件使
·嵌入式Linux操作系统启动信
阅读排行
·免费代理IP(每日更新)
·轻松恢复硬盘数据 EasyRec
·windows下如何修改右键菜单
·DOS下对系统重新进行分区
·清除猖狂的Sxs.exe病毒
·编程过把瘾:自己动手写操
·DOS常用命令
·DOS下常用的相关网络命令
·Fdisk分区详解
·超详细:用Macfee打造自己的
专题教程
·PHP教程专题
·MySQL 专题
·数据恢复指南 专题
·Web服务器专题
·DB2 9数据库专题
·ghost教程 专题
·局域网技术专题
·虚拟机专题
·CDN加速技术专题
·注册表教程专题
最新文章
·黑客帝国数字流特效制作揭
·随机转盘游戏
·Flash MX 2004 编程(AS2.0
·Flash MX 2004 编程(AS2.0
·Flash MX 2004 编程(AS2.0
·致初学者:PHP比ASP优秀的
·QQ大盗肆虐网络 登录界面暗
·安全使用网上银行的七点建
·安装Vista前你应该知道的十
·Google竟然向5万用户发病毒
·教你几招判断系统是否被流
·用Flash设计透明按钮
·Dreamweaver 限制访问的BU
·利用javascript完全屏蔽右
·Dreamweaver中实现flash的
设为首页 - 加入收藏 - 版权声明 - 广告服务 - 关于我们 - 联系我们 - 友情连接
Copyright © 2003 - 2006 XKER Inc. All Rights Reserved
新客网 版权所有