@117478123@ 2008-5-25 13:04
横版游戏中主角的控制带源文件求助
如题做了一个主角控制的东西,可是有很多问题想请都大家。
人物不能做斜方向运动比如:按下a+w或w+d等键时人物不能做斜方向运动?
当按下攻击键时人物会不停止的进行攻击,怎么改成当按下攻击键不放时只做一次攻击动作,当抬起再按下时人物做第二次攻击呢?
[attach]345391[/attach]
源文件:[attach]345392[/attach]
lxbaicai 2008-5-25 23:16
as3 还是as2的?
屏蔽连续攻击问题就是多加一个布尔变量判断下就好了
同时按两个键的效果就是if语句里加个and
@117478123@ 2008-5-26 08:07
as2的
按键盘组合不能用好像,可能是我MC内部分的问题
ourme 2008-5-27 15:16
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(向下){****};
@117478123@ 2008-5-29 13:58
ourme能否问下如何让主角向前跑呢?
比如快速按下D键两下人就会跑动走来。
再就是比如平时按攻击键时人会只出轻拳攻击,当打到敌人时人就会出轻拳,重拳,重脚三个招呢。
诚心求教。
ladeng6666 2008-5-30 15:14
把else去掉,应该就行了!
michaelkua 2008-6-3 05:00
高薪诚聘!!!深圳市iLemon网络科技高薪诚聘WebGame程序开发人才加盟
*** 作者被禁止或删除 内容自动屏蔽 ***
Cl@rke将军 2008-6-17 15:13
[quote]原帖由 [i]@117478123@[/i] 于 2008-5-29 13:58 发表 [url=http://space.flash8.net/bbs/redirect.php?goto=findpost&pid=2176756&ptid=355210][img]http://space.flash8.net/bbs/images/common/back.gif[/img][/url]
ourme能否问下如何让主角向前跑呢?
比如快速按下D键两下人就会跑动走来。
再就是比如平时按攻击键时人会只出轻拳攻击,当打到敌人时人就会出轻拳,重拳,重脚三个招呢。
诚心求教。 [/quote]
说本人的方法了,主场景做如下系统:
[code]定义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] = ""
}[/code]
鬼火 2008-6-18 21:13
[quote]原帖由 [i]@117478123@[/i] 于 2008-5-29 13:58 发表 [url=http://space.flash8.net/bbs/redirect.php?goto=findpost&pid=2176756&ptid=355210][img]http://space.flash8.net/bbs/images/common/back.gif[/img][/url]
ourme能否问下如何让主角向前跑呢?
比如快速按下D键两下人就会跑动走来。
再就是比如平时按攻击键时人会只出轻拳攻击,当打到敌人时人就会出轻拳,重拳,重脚三个招呢。
诚心求教。 [/quote]
对整个游戏建立一个按键的侦听数组,再建立一个计时器以保证超过n时间长度后清空这个数组,
建立一个数组(或dictionary)按键的排列值,以对应数组中的各项。
Cl@rke将军 2008-6-19 15:18
其实本人也是这个意思了,
把该数组写成5个变量而已