| 首页 | 新闻 | 网页 | 设计 | 色彩 | 原创 | 视觉 | 素材 | 动漫 | 酷站 | 策划 | 文案 | 访谈 | 运营 | 编程 | 数据库 | 服务器 | 下载 | 图库 | 
您的位置: 幽幽天空 > 网页 > 网页制作 > Flash教程 > Flash游戏制作 > 文章正文 用户登录
谈谈BLOG营销中的
为你新浪博客添加
美女主持陈鲁豫眼
浅谈个人网站的发
网站推荐机制中的
Flash MX2004中的
Flash中的电影艺术
视频文件在FLASH中
读取XML当中的HTM
物理知识在FLASH世

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

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

作者:佚名 来源:闪吧 作者: oonnee 更新:2007-1-13 20:43:33 错误报告 我要投稿

点击开新窗口欣赏该FLASH动画![全屏欣赏]

多谢。先找个游戏截图下来做成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);
//这样可以保持按钮的延续性,例如跳起来的时候   按其他的按钮是不起作用的
文章录入:skyuu    责任编辑:skyuu 
  • 上一篇文章:

  • 下一篇文章:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
    网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
    发表评论:
    姓名:  评 分: 1分 2分 3分 4分 5分
     
  • 严禁发表危害国家安全、政治、黄色淫秽等内容的评论。
  • 用户需对自己在使用幽幽天空服务过程中的行为承担法律责任。
  • 本站管理员有权保留或删除评论内容。
  • 评论内容只代表机友个人观点,与本网站立场无关。