打印

[编程] 物体左右跳跃的类as2.0

效果及源代码下载:
http://www.mygamemylove.com/t_html/593.html
使用实例:
//flash原创代码
//尽在自娱自乐 www.MyGameMyLove.com
//物体左右跳跃的类as2.0
//水平速度
var xsd:Number = 10;
//重力
var numg:Number = 5;
//垂直速度
var ysd:Number = -18;
//声明对象
//对象名称obj_实例名称,
var obj_mc = new jump (mc, xsd, numg, ysd);
_root.onEnterFrame = function ()
{
       obj_mc.onEnterFrame ();
};
var keyListener:Object = new Object ();
keyListener.onKeyUp = function ()
{
       switch (Key.getCode ()) {
       case 37 :
              //trace ("<");
              obj_mc.go(-1);
              break;
       case 39 :
              //trace (">");
              obj_mc.go(1);
              break;
       }
};
Key.addListener (keyListener);

类文件:

class jump
{
       //mc目标影片
       var mc:MovieClip;
       //水平速度
       var xsd:Number;
       //重力
       var numg:Number;
       //垂直速度
       var ysd:Number;
       var iniYsd:Number;
       //地面的位置
       var iniY:Number;
       private var jumpx:Number;
       //是不是第一次开始跳跃
       private var isFirst:Boolean = true;
       //是否开始跳
       private var isJump:Boolean = false;
       //初使化
       function jump (mc:MovieClip, xsd:Number, numg:Number, ysd:Number)
       {
              this.mc = mc;
              this.xsd = xsd;
              this.numg = numg;
              //
              this.iniYsd = ysd;
              this.ysd = ysd;
              //
              iniY = mc._y;
       }
       //跳
       function go (jumpx:Number)
       {
              if (!isJump) {
                     isJump = true;
                     this.jumpx = jumpx;
              }
       }
       // 检测是否跳,并作跳的处理
       function jumping ()
       {
              if (!isJump) {
                     return 0;
              }
              //
              if (isFirst) {
                     ysd += numg;
                     mc._y += ysd;
                     mc._x += xsd * jumpx;
                     isFirst = false;
              }
              else {
                     if ((mc._y + ysd + numg) < iniY) {
                            ysd += numg;
                            mc._y += ysd;
                            mc._x += xsd * jumpx;
                     }
                     else {
                            mc._y = iniY;
                            isFirst = true;
                            isJump = false;
                            this.ysd = this.iniYsd;
                     }
              }
       }
       //要循环都统一放在这里。
       function onEnterFrame ()
       {
              jumping ();
       }
}
www.mygamemylove.com
不错
有想法
希望