您当前的位置:首页 > 网络学院 > Flash教程
Flash教程

宇宙飞船简单飞行控制模型(As2)

来源:番禺网站建设 作者:广州做网站 点击量:5733 添加时间:2008-07-16 21:22:20

用As2处理,As2帧代码:

//创建一空剪辑ship_mc画飞船
this.createEmptyMovieClip("ship_mc", this.getNextHighestDepth());
function drawShip(flag:Boolean):Void {
 with (ship_mc) {
  clear();
  lineStyle(1, 0xffffff);
  moveTo(10, 0);
  lineTo(-10, -10);
  lineTo(-5, 0);
  lineTo(-10, 10);
  lineTo(10, 0);
  //是否显示飞船加速时的尾气
  if (flag) {
   moveTo(-7.5, -5);
   lineTo(-15, 0);
   lineTo(-7.5, 5);
  }
 }
}
//初始状态不显示尾气
drawShip(false);

//初始化飞船位置
ship_mc._x = Stage.width/2;
ship_mc._y = Stage.height/2;
//初始化旋转的角速度,加速时加速度所对应的力,x、y方向的初始速度
var vr:Number = 0;
var force:Number = 0;
var vx:Number = 0;
var vy:Number = 0;

//添加侦听键盘,左右上方向的按键
obj = new Object();
obj.onKeyDown = function(obj:Object) {
 if (Key.isDown(Key.LEFT)) {
  //左方向键,顺时针旋转
  vr += 5;
 } else if (Key.isDown(Key.RIGHT)) {
  //右方向键,逆时针旋转
  vr -= 5;
 } else if (Key.isDown(Key.UP)) {
  //向上方向,施加一个力force,显示尾气
  force = 0.2;
  drawShip(true);
 }
};
obj.onKeyUp = function(obj:Object) {
 //释放按键后操作
 vr = 0;
 force = 0;
 drawShip(false);
};
Key.addListener(obj);

//执行函数
this.onEnterFrame = function() {
 //控制飞船的旋转,如果长时间按住方向键,飞船将旋转越来越快;
 ship_mc._rotation += vr;
 var angle:Number = ship_mc._rotation*Math.PI/180;
 //根据飞船的方向将力所产生的加速度分解为x,y方向
 var ax:Number = force*Math.cos(angle);
 var ay:Number = force*Math.sin(angle);
 //移动飞船
 vx += ax;
 vy += ay;
 ship_mc._x += vx;
 ship_mc._y += vy;
};

总结:注意分解飞船的加速度公式;创建按键侦听。

发表评论 共有 条评论
用户名: 密码: 验证码: 匿名发表
咨询QQ:番禺网站建设149900898 番禺网络公司296823656 番禺网页设计466741366 番禺域名注册598784086 番禺域名注册(售后技术支持)296823656
咨询信箱:001#py001.com  001#001.gd.cn (请将#改为@)
免费咨询电话:4000-848485   咨询热线:020-8484 8485 / 84888958 / 33110440  传真:020-84888958   手机:13600028769
番禺区市桥地址:广州市番禺区大北路118号(番禺宾馆旁)来访前请预约
番禺零零壹网络(广州市灵易计算机软件有限公司) 法律顾问:广东威信律师事务所陈彬律师
《中华人民共和国增值电信业务经营许可证》 粤ICP备08100317号
请使用1024*768分辨率浏览本站以达到浏览企业建站的最佳视觉效果,如果您有任何番禺建网站,南沙,花都网页设计,网站空间,番禺域名注册,番禺企业邮局的问题请与我们联系