快速业务通道

飞机蓄力的效果

作者 佚名技术 来源 服务器技术 浏览 发布时间 2012-07-11


首先是对响应KEYDOWN的几方种方式做一个检测,看看哪个效率比较好。 Key.addListener(c);
c.onKeyDown=function(){
if(Key.isDown(KEY.UP)){
c._y-=1;
}
if(Key.isDown(KEY.DOWN)){
c._y+=1;
}
if(Key.isDown(KEY.LEFT)){
c._x-=1;
}
if(Key.isDown(KEY.RIGHT)){
c._x+=1;
}
}
function control(mc){
if(Key.isDown(KEY.UP)){
mc._y-=1;
}
if(Key.isDown(KEY.DOWN)){
mc._y+=1;
}
if(Key.isDown(KEY.LEFT)){
mc._x-=1;
}
if(Key.isDown(KEY.RIGHT)){
mc._x+=1;
}
}
_root.onEnterFrame=function(){
control(b);
}
setInterval(control,40,d);
点击浏览该文件
可以看到,在一直按住某个键时,用监听器的开始时反应比较慢,但是其对连续响应某个键还是比放在onEnterFrame要好(条件是帧频为25FPS)。所以我把侦听连续按某个键的工作交给Listener的onKeyDown和onKeyUp,上下左右的移动工作交给root.onEnterFrame. 我把最主要的框架讲一下,其实很简单的,当然,由于是偶自己想出来的,不足之处,还请指点。 _global.toggal=0;//用来标识一直按个某个键的持续次数。
_global.n=0;//用来标识子弹的数量
把我们的对象PLANE作为键盘的监听对象。
Key.addListener(plane);
测定连发的关键,用把toggal的值在KeyDown中进行判定。
plane.onKeyDown=function(){
if(Key.isDown(96)){//计算器键盘的0,我喜欢用这个发子弹
       toggal++;
 n++;//迭代过程
          if(toggal<10){//正常的子弹
if(n<50){//内嵌的一个发射子弹的过程
bullet.duplicateMovieClip("bullet"+n,n+100);
eval("_root.bullet"+n)._x=plane._x;
eval("_root.bullet"+n)._y=plane.getBounds(_root).yMin
}
else {n=0;}
}
          else if(toggal>10&&toggal<35){//表示正在蓄力,进行蓄前渲染
smallplane.onEnterFrame=function(){//这种写法成功啦
smallplane._x=plane._x;
smallplane._y=plane.getBounds(_root).yMin+5;
smallplane._visible=true
}
          else if(toggal>35){//蓄力已毕,进行准备发射的渲染,看你的喜好自由发挥。
smallplane._visible=false;
delete smallplane.onEnterFrame;
dot.onEnterFrame=function(){
dot._x=plane._x;
dot._y=plane.getBounds(_root).yMin+5;
dot._visible=true;
dot.play();
}
          }
}
然后,只要在onKeyUp中根据toggal的值决定是否调用就行了
plane.onKeyUp=function(){
if(toggal>35){
superbullet();//蓄力子弹如何作完全看你的个人发挥了,最好是用AS写,没发子的话放一段预设的MC也行啊
}
toggal=0;//别忘了归0,进入下次的迭代过程
} 好了,我理解中的主框架就是蓄力的主框架就是这样,不过要完美的实现,还行花些力气,这是我做的效果,不过还有两个问题,问在下面的回复里。 注意,子弹是用计算器键盘上的0来发射。
点击浏览该文件 关键词:

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号