发新话题
打印

横版游戏中主角的控制带源文件求助

横版游戏中主角的控制带源文件求助

如题做了一个主角控制的东西,可是有很多问题想请都大家。

人物不能做斜方向运动比如:按下a+w或w+d等键时人物不能做斜方向运动?

当按下攻击键时人物会不停止的进行攻击,怎么改成当按下攻击键不放时只做一次攻击动作,当抬起再按下时人物做第二次攻击呢?


未命名-1.swf (65.55 KB)

文件 未命名-1.fla (253 KB)
我的小站
www.taotaoyx.cn

TOP

as3 还是as2的?

屏蔽连续攻击问题就是多加一个布尔变量判断下就好了
同时按两个键的效果就是if语句里加个and

TOP

as2的

按键盘组合不能用好像,可能是我MC内部分的问题
我的小站
www.taotaoyx.cn

TOP

onClipEvent (enterFrame) {
        if (Key.isDown(74)) {
                _parent.gotoAndPlay("打");
        } else if (Key.isDown(75)) {
                _parent.gotoAndPlay("跳");
        } else if (Key.isDown(65)) {
                _parent._x -= _parent.speed;
                _parent._xscale = -100;
        } else if (Key.isDown(68)) {
                _parent._x += _parent.speed;
                _parent._xscale = 100;
        } if (Key.isDown(87)) {
                _parent._y -= _parent.speed;
        } else if (Key.isDown(83)) {
                _parent._y += _parent.speed;
        } else {
                _parent.gotoAndStop("站");
        }
}
这代码很垃圾....全是单一的判断,你自己想一下,四个方向只就只能有一个方向成立而已,怎么可能会出现你说的斜走呢?


你再换了一角度,如果左右方向和上下方向是不冲突的话,你说能不能斜走呢?
if(向左){********}else if(向右){****};
if(向上){********}else if(向下){****};
我的全flash小站http://www.ourme.cn

TOP

自己看吧

附件

未命名-2.swf (2.83 KB)

2008-5-27 15:46, 下载次数: 94

未命名-2.fla (48.5 KB)

2008-5-27 15:46, 下载次数: 79

我的全flash小站http://www.ourme.cn

TOP

ourme能否问下如何让主角向前跑呢?
比如快速按下D键两下人就会跑动走来。
再就是比如平时按攻击键时人会只出轻拳攻击,当打到敌人时人就会出轻拳,重拳,重脚三个招呢。
诚心求教。
我的小站
www.taotaoyx.cn

TOP

把else去掉,应该就行了!
相互学习!共同进步!
欢迎来小博灌水:http://blog.sina.com.cn/ladeng6666

TOP

高薪诚聘!!!深圳市iLemon网络科技高薪诚聘WebGame程序开发人才加盟

提示: 作者被禁止或删除 内容自动屏蔽

TOP

受益了
谢谢上面的人~~   再次感谢你~~们·~

TOP

引用:
原帖由 @117478123@ 于 2008-5-29 13:58 发表
ourme能否问下如何让主角向前跑呢?
比如快速按下D键两下人就会跑动走来。
再就是比如平时按攻击键时人会只出轻拳攻击,当打到敌人时人就会出轻拳,重拳,重脚三个招呢。
诚心求教。
说本人的方法了,主场景做如下系统:
复制内容到剪贴板
代码:
定义5个字符串key1,key2,key3,key4,key5
主场景脚本:
function saveKey(newkey:String){
  for(i=1;i<=4;i++){
    _root["key"+i] = _root["key"+Number(i+1)]
  }
  _root.key5 = newkey
  _root.timer_mc.play();
}
按下d时有如下脚本
on(keyPress "d"){
  _root.saveKey("d")
  if(_root.key4 == "d"){
    _root.zhujue_mc.gotoAndPlay("run")
  }else{
    _root.zhujue_mc.gotoAndPlay("walk")
  }
}


在主场景加个空白剪辑timer_mc是为了程序完美,其作用是在一定时间内不按键就清空key1到key5
该剪辑有几贞看情况定,贞越少清除越快,对玩家操作要求也高
第一贞脚本
stop();
for(i=1;i<=5;i++){
    _root["key"+i] = ""
}

TOP

引用:
原帖由 @117478123@ 于 2008-5-29 13:58 发表
ourme能否问下如何让主角向前跑呢?
比如快速按下D键两下人就会跑动走来。
再就是比如平时按攻击键时人会只出轻拳攻击,当打到敌人时人就会出轻拳,重拳,重脚三个招呢。
诚心求教。
对整个游戏建立一个按键的侦听数组,再建立一个计时器以保证超过n时间长度后清空这个数组,
建立一个数组(或dictionary)按键的排列值,以对应数组中的各项。

TOP

其实本人也是这个意思了,
把该数组写成5个变量而已

TOP

发新话题