游戏中的人物走动的完全控制


点击开新窗口欣赏该FLASH动画![全屏欣赏]
http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash' type='application/x-shockwave-flash' width=480 height=360>/Upload/2004_Pack/ren.swf
多谢。先找个游戏截图下来做成MC,在用Key.isDown和Key.getCode()   判断,因为为了游戏的连贯性、触发的动作比较多了,例如先按左、在按上         和按上再按左是不一样的,所以写的时候要留意点,不要到写一半的时候   才发现连贯性有问题的~~~   看下代码就知道有那些触发的条件了。
-----------------------------------------------------
onClipEvent   (load)   {
            var   speed   =   new   Array(0,   6,   9,   8);
            _root.go   =   "";
            _root.fire   =   "";
            playerx   =   this._x;
            playery   =   this._y;
            _root.yx   =   1;
            _root.b   =   true;
            _root.l   =   65;
            _root.u   =   87;
            _root.r   =   68;
            _root.d   =   83;
            _root.a   =   78;
            _root.j   =   77;
            _root.x   =   1;
            _root.z   =   1;
            scale   =   1;
            //   定义炮弹的初始值
            _root.f=1//多少发子弹;
            _root.zd_x=0                                                         //0-left            1-right;
            _root.zd_y=1                                                         //0-no            1-up            -1-down;
            function   zd()   {
                        if   (_root.f<10)   {
                                    _root.attachMovie("paodan","paodan"+_root.f);
                                    _root.f++;
                        }
            }
}
onClipEvent   (enterFrame)   {
            if   (_root.b   ==   true)   {
                        with   (_root.player)   {
                                    //   按下左键
                                    if   (Key.isDown(_root.l)   &&   !(Key.isDown(_root.d)))   {
                                                scale   =   0;
                                                _x   -=   speed[1];
                                                gotoAndStop(2);
                                                //   --------------------------------------------
                                    }
                                    //   按下右键
                                    if   (Key.isDown(_root.r)   &&   !(Key.isDown(_root.d)))   {
                                                scale   =   1;
                                                _x   +=   speed[1];
                                                gotoAndStop(2);
                                    }
                                    //   按上
                                    if   ((Key.isDown(_root.u)   &&   !Key.isDown(_root.r))   ||   (Key.isDown(_root.u)   &&   !Key.isDown(_root.l)))   {
                                                _x   +=   speed[0];
                                                gotoAndStop(4);
                                    }
                                    //   按下
                                    if   (Key.isDown(_root.d))   {
                                                _root.fire   =   2;
                                                _x   +=   speed[0];
                                                gotoAndStop(5);
                                    }
                                    //   按a
                                    //   a
                                    if   (Key.isDown(_root.a)   &&   !(Key.isDown(_root.l))   &&   !(Key.isDown(_root.r))   &&   !(Key.isDown(_root.d))   &&   !(Key.isDown(_root.u))   &&   !(Key.isDown(_root.j)))   {
                                                if   (_root.z   ==   1)   {
                                                            _root.go   =   9;
                                                            zd();
                                                }
                                                //   a+l                        a+r
                                    }   else   if   ((Key.isDown(_root.a)   &&   Key.isDown(_root.l))   ||   (Key.isDown(_root.a)   &&   Key.isDown(_root.r)))   {
                                                if   (_root.z   ==   1)   {
                                                            _root.go   =   9;
                                                            _root.b   =   false;
                                                }
                                                //   a+d
                                    }   else   if   (Key.isDown(_root.a)   &&   Key.isDown(_root.d)   &&   !(Key.isDown(_root.r))   &&   !(Key.isDown(_root.l)))   {
                                                if   (_root.z   ==   1)   {
                                                            _root.go   =   12;
                                                            _root.b   =   false;
                                                }
                                    }   else   if   (Key.isDown(_root.a)   &&   Key.isDown(_root.d)   &&   Key.isDown(_root.l))   {
                                                gotoAndStop(5);
                                                //   a+u
                                    }   else   if   (Key.isDown(_root.a)   &&   Key.isDown(_root.u)   &&   !(Key.isDown(_root.r))   &&   !(Key.isDown(_root.l)))   {
                                                if   (_root.z   ==   1)   {
                                                            _root.go   =   8;
                                                            _root.b   =   false;
                                                }
                                    }   else   if   (Key.isDown(_root.a)   &&   Key.isDown(_root.u)   &&   (Key.isDown(_root.l)))   {
                                                gotoAndStop(8);
                                    }   else   {
                                                _root.go   =   "";
                                                _root.b   =   true;
                                                _root.z   =   1;
                                    }
                                    //   按J的时候
                                    //   单独按J的时候
                                    if   (Key.isDown(_root.j)   &&   !Key.isDown(_root.u)   &&   !(Key.isDown(_root.l))   &&   !(Key.isDown(_root.r))   &&   !(Key.isDown(_root.d))   &&   !(Key.isDown(_root.a)))   {
                                                if   (_root.z   ==   1)   {
                                                            _root.go   =   7;
                                                            _root.b   =   false;
                                                }
                                                //   按J的时候+L
                                    }   else   if   (Key.isDown(_root.j)   &&   (Key.isDown(_root.l)))   {
                                                if   (_root.z   ==   1)   {
                                                            _root.go   =   7;
                                                            _root.b   =   false;
                                                }
                                                //   按J的时候+R
                                    }   else   if   (Key.isDown(_root.j)   &&   (Key.isDown(_root.r)))   {
                                                if   (_root.z   ==   1)   {
                                                            _root.go   =   7;
                                                            _root.b   =   false;
                                                }
                                                //   按J的时候+U
                                    }   else   if   (Key.isDown(_root.j)   &&   (Key.isDown(_root.u)))   {
                                                if   (_root.z   ==   1)   {
                                                            _root.go   =   10;
                                                            _root.b   =   false;
                                                }
                                                //   按J的时候+d         -----------------滚动
                                    }   else   if   (Key.isDown(_root.j)   &&   (Key.isDown(_root.d)))   {
                                                if   (_root.z   ==   1)   {
                                                            _root.go   =   6;
                                                            _root.b   =   false;
                                                }
                                                //   按J的时候+a      -----------------跳发子弹
                                    }
                                    //   判断所有的按钮~!!!!!!!
                                    if   ((Key.isDown(_root.d)   &&   Key.isDown(_root.u))   ||   (Key.isDown(_root.l)   &&   Key.isDown(_root.r)))   {
                                                gotoAndStop(1);
                                    }
                                    //   判断左的按钮~!!!!!!!
                                    if   ((Key.isDown(_root.l))   &&   (Key.isDown(_root.d))   &&   Key.getCode()   ==   _root.d)   {
                                                _root.fire   =   2;
                                                speed[1]   =   0;
                                                gotoAndStop(5);
                                    }   else   if   ((Key.isDown(_root.l))   &&   (Key.isDown(_root.u))   &&   Key.getCode()   ==   _root.u)   {
                                                speed[1]   =   0;
                                                gotoAndStop(4);
                                                //   判断右的按钮~!!!!!!!
                                    }   else   if   ((Key.isDown(_root.r))   &&   (Key.isDown(_root.d))   &&   Key.getCode()   ==   _root.d)   {
                                                _root.fire   =   2;
                                                speed[1]   =   0;
                                                gotoAndStop(5);
                                    }   else   if   ((Key.isDown(_root.r))   &&   (Key.isDown(_root.u))   &&   Key.getCode()   ==   _root.u)   {
                                                speed[1]   =   0;
                                                gotoAndStop(4);
                                                //   判断下的按钮
                                    }   else   if   ((Key.isDown(_root.d))   &&   (Key.isDown(_root.l))   &&   Key.getCode()   ==   _root.l)   {
                                                scale   =   0;
                                                speed[1]   =   0;
                                                gotoAndStop(5);
                                    }   else   if   ((Key.isDown(_root.d))   &&   (Key.isDown(_root.r))   &&   Key.getCode()   ==   _root.r)   {
                                                scale   =   1;
                                                speed[1]   =   0;
                                                gotoAndStop(5);
                                                //   判断上的按钮
                                    }   else   if   ((Key.isDown(_root.u))   &&   (Key.isDown(_root.l))   &&   Key.getCode()   ==   _root.l)   {
                                                speed[1]   =   0;
                                                scale   =   0;
                                                gotoAndStop(4);
                                    }   else   if   ((Key.isDown(_root.u))   &&   (Key.isDown(_root.r))   &&   Key.getCode()   ==   _root.r)   {
                                                speed[1]   =   0;
                                                gotoAndStop(4);
                                                scale   =   1;
                                    }   else   {
                                                _root.fire   =   1;
                                                speed[1]   =   6;
                                    }
                        }
            }
}
onClipEvent   (enterFrame)   {
            if   (scale   ==   1)   {
                        _xscale   =   100;
            }   else   {
                        _xscale   =   -100;
            }
}
onClipEvent   (keyUp)   {
            if   (_root.go   ==   "")   {
                        _root.player.gotoAndStop(1);
            }   else   {
                        _root.player.gotoAndStop(_root.go);
            }
}
------------------------------------------
MC里的AS:
第一帧:
_root.z   =   0;
最后帧:
_root.z   =   1;
_root.go   =   "";
_root.b=true;
_root.player.gotoAndStop(1);
//这样可以保持按钮的延续性,例如跳起来的时候   按其他的按钮是不起作用的

转载于:https://www.cnblogs.com/godjiahui/archive/2007/04/29/732049.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值