设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 1774|回复: 8
打印 上一主题 下一主题

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

[复制链接]

Lv2.观梦者

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

开拓者

跳转到指定楼层
1
发表于 2017-9-21 18:53:16 | 只看该作者 |只看大图 回帖奖励 |正序浏览 |阅读模式

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

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

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

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

顺序是这样子的 一直按A, 打开开关1   =-》  开关2    -=》开关1   -=》  开关2  无限循环

Lv2.观梦者

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

开拓者

6
 楼主| 发表于 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都没反应,键盘问题?因为有时可以连发,所以应该不是脚本的问题。(我做的枪的战斗脚本)
回复 支持 反对

使用道具 举报

Lv5.捕梦者 (暗夜天使)

只有笨蛋才会看到

梦石
1
星屑
21484
在线时间
9389 小时
注册时间
2012-6-19
帖子
7114

开拓者短篇九导演组冠军

5
发表于 2017-9-21 20:36:31 | 只看该作者
飞翔的小鸟3 发表于 2017-9-21 20:28
还有,我按照楼上方法有时按下去按键不灵

我说的是连打

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

使用道具 举报

Lv2.观梦者

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

开拓者

4
 楼主| 发表于 2017-9-21 20:28:23 | 只看该作者
喵呜喵5 发表于 2017-9-21 19:43
Input.press?(sym)
一直按着时,永远为 true




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

我说的是连打

点评

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

使用道具 举报

Lv5.捕梦者 (暗夜天使)

只有笨蛋才会看到

梦石
1
星屑
21484
在线时间
9389 小时
注册时间
2012-6-19
帖子
7114

开拓者短篇九导演组冠军

3
发表于 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
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
12019
在线时间
21776 小时
注册时间
2010-10-24
帖子
308
2
发表于 2017-9-21 19:25:07 | 只看该作者
@var ||= 1
if Input.trigger?(:X)
  $game_switches[@var] = true
  @var = (@var == 1 ? 2 : 1 )
end
丢并行处理。以及这段只负责打开开关 不负责关闭开关
回复 支持 反对

使用道具 举报

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

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-9-29 05:33

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表