发新话题
打印

[求救] 怎样同时获取2个按键呢?

怎样同时获取2个按键呢?

比如同时按上和左,事件触发

TOP

是没有办法同时获得的

是没有办法同时获得的

TOP

在onEnerFrame中判断 Key.isDown
复制内容到剪贴板
代码:
onEnterFrame = function () {
        if (Key.isDown(Key.LEFT) && Key.isDown(Key.UP)) {
                trace("方向键中的左和上,被同时按下了!");
        }
};

TOP

on(keyPress "<Left>"){
        if(Key.isDown(Key.UP)){
                   trace("方向键中的左和上,被同时按下了!");
        }
}

和斑竹一个原理,
不过斑竹那个慎用,
不在一贞内送手会trace一大堆滴

TOP

回复 4# 的帖子

你的要先按下LEFT才有效!

TOP

回复 5# 的帖子

谁说的?
onEnterFrame是不断检测

TOP

就因为不断检测,
没有delete onEnterFrame
或者没先加个布尔值判断,便会一下子执行很多次。


举例:
20fps

我按一个键子,松手时间是1/4秒(已经很快了)
那么用onEnterFrame就触发了5次

如果用在游戏脚本里会造成英雄瞬间连砍5刀把boss秒了
或者瞬间连跑5步栽到坑里

TOP

楼主说的是如何判断,并没说实际应用。
而且实际应用中也不会两个键一按下就delete onEnterFrame的

TOP

同意 讨厌 的观点!相比之下,我更喜欢用onenterframe来检测!
相互学习!共同进步!
欢迎来小博灌水:http://blog.sina.com.cn/ladeng6666

TOP

谢谢!

TOP

引用:
原帖由 Cl@rke将军 于 2008-7-6 22:03 发表
就因为不断检测,
没有delete onEnterFrame
或者没先加个布尔值判断,便会一下子执行很多次。


举例:
20fps

我按一个键子,松手时间是1/4秒(已经很快了)
那么用onEnterFrame就触发了5次

如果用在游戏 ...
这个是真的……我说我怎么老是出现这个问题,虽然猜到什么原因但是不会解决……

TOP

……

TOP

引用:
原帖由 终极讨厌 于 2008-7-7 06:18 发表
楼主说的是如何判断,并没说实际应用。
而且实际应用中也不会两个键一按下就delete onEnterFrame的
没有怀疑斑竹脚本技术的意思,
斑竹脚本技术本人还是知道的,
也是从楼主的实用考虑。

delete onEnterFrame情况不多,但确实存在,
另外,本人就游戏制作实践认为先加个布尔值判断也是好方法。

TOP

还有个问题就是按键这个
        Key.isDown(Key.LEFT)和Key.getCode() == 37有什么区别呢
2个都是左键的
写成 Key.isDown(37)行不行呢

TOP

引用:
原帖由 Cl@rke将军 于 2008-7-6 19:25 发表
on(keyPress ""){
        if(Key.isDown(Key.UP)){
                   trace("方向键中的左和上,被同时按下了!");
        }
}

和斑竹一个原理,
不过斑竹那个慎用,
不在一贞内送手会trace一大堆滴
这个是添加在按钮上的么?测试出来的话要只按左和上没反应啊

TOP

这个是添加到按钮上的部分脚本,全部脚本如下。(下面用的asdw键位)
on(keyPress "<Left>"){
        if(Key.isDown(Key.UP)){
                   trace("方向键中的左和上,被同时按下了!");
        }else{
                   trace("左被按下,上没有按")
        }
}
on(keyPress "<Up>"){
        if(Key.isDown(Key.LEFT)){
                   trace("方向键中的左和上,被同时按下了!");
        }else{
                   trace("上被按下,左没有按")
        }
}

TOP

谢谢,学到了
不过按住一个键也像版主那样会TRACE出很多
我的理解是你这种就算帧速改成120按住一个键TRACE出的速度也和帧速12是一样的吧

TOP

建议楼主把到底要应用这个脚本做什么说出来,
再选适当脚本。

只是瞬间按键我这个足够了,
需要持续按键的要从斑竹的onEnterFrame考虑

TOP

发新话题