查看: 2229|回复: 8

[已经过期] 怎么按A,打开条件开关1,再按一下,打开开关2。已解决

[复制链接]
梦石
0
星屑
470
在线时间
159 小时
注册时间
2013-11-2
回帖
177

开拓者

发表于 2017-9-21 18:53:16 | 显示全部楼层 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有账号?注册会员

×
本帖最后由 飞翔的小鸟3 于 2017-9-22 18:57 编辑

这三个:
Input.press?(sym)
Input.trigger?(sym)
Input.repeat?(sym)
我按下去他们都会一起执行。暂时想不到其他办法.....
大佬们给个答案把

顺序是这样子的 一直按A, 打开开关1   =-》  开关2    -=》开关1   -=》  开关2  无限循环
梦石
0
星屑
14560
在线时间
22062 小时
注册时间
2010-10-24
回帖
302
发表于 2017-9-21 19:25:07 | 显示全部楼层
@var ||= 1
if Input.trigger?(:X)
  $game_switches[@var] = true
  @var = (@var == 1 ? 2 : 1 )
end
丢并行处理。以及这段只负责打开开关 不负责关闭开关
噫
回复

使用道具 举报

梦石
1
星屑
23241
在线时间
9564 小时
注册时间
2012-6-19
回帖
7018

开拓者短篇九导演组冠军

发表于 2017-9-21 19:43:01 | 显示全部楼层
本帖最后由 喵呜喵5 于 2017-9-21 19:45 编辑

Input.press?(sym)
一直按着时,永远为 true

Input.trigger?(sym)
按下的瞬间为 true

Input.repeat?(sym)
按下的瞬间为 true,之后每隔一段时间为 true 一次

所以你的一直按是之不松开还是连打?
如果是不松开:

  1. if Input.repeat?(sym)
  2.   unless swi_a
  3.     swi_a = true
  4.     swi_b = false
  5.   else
  6.     swi_a = false
  7.     swi_b = true
  8.   end
  9. end
复制代码


如果是连打:

  1. if Input.trigger?(sym)
  2.   unless swi_a
  3.     swi_a = true
  4.     swi_b = false
  5.   else
  6.     swi_a = false
  7.     swi_b = true
  8.   end
  9. end
复制代码

点评

你用2个变量来控制,我怎么没想到,我之前用一个变量来控制,区别按第一次和按第二次,失败了。  发表于 2017-9-21 19:52
F1那边说,有考虑到重复性,我以为第二次按下算重复。  发表于 2017-9-21 19:46
回复

使用道具 举报

梦石
0
星屑
470
在线时间
159 小时
注册时间
2013-11-2
回帖
177

开拓者

 楼主| 发表于 2017-9-21 20:28:23 | 显示全部楼层
喵呜喵5 发表于 2017-9-21 19:43
Input.press?(sym)
一直按着时,永远为 true


QQ截图20170921202721.jpg

还有,我按照楼上方法有时按下去按键不灵

我说的是连打

点评

顺便看看我贴出的新问题  发表于 2017-9-21 20:29
回复

使用道具 举报

梦石
1
星屑
23241
在线时间
9564 小时
注册时间
2012-6-19
回帖
7018

开拓者短篇九导演组冠军

发表于 2017-9-21 20:36:31 | 显示全部楼层
飞翔的小鸟3 发表于 2017-9-21 20:28
还有,我按照楼上方法有时按下去按键不灵

我说的是连打

3楼只是给个思路,并不是直接用的……
如果在对象里请用实例变量或全局变量储存当前开关的状态
回复

使用道具 举报

梦石
0
星屑
470
在线时间
159 小时
注册时间
2013-11-2
回帖
177

开拓者

 楼主| 发表于 2017-9-21 20:45:55 | 显示全部楼层
喵呜喵5 发表于 2017-9-21 20:36
3楼只是给个思路,并不是直接用的……
如果在对象里请用实例变量或全局变量储存当前开关的状态 ...

我改了
前面定义一个@swi_a = nil
  1. if Input.trigger?(:X)
  2.   unless @swi_a == true
  3.     @swi_a = true
  4.     @swi_b = false
  5.     $game_switches[15] = true
  6.   else
  7.     @swi_a = false
  8.     @swi_b = true
  9.     $game_switches[17] = true
  10.   end
  11. end
复制代码


可以用了,之前忘记设定 @swi_a的值,怪不得一直报错。

然后有时按3、4都没反应,键盘问题?因为有时可以连发,所以应该不是脚本的问题。(我做的枪的战斗脚本)
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部