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

Project1

 找回密码
 注册会员
搜索

怎么按A,打开条件开关1,再按一下,打开开关2。已解决

查看数: 1802 | 评论数: 5 | 收藏 0
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2017-9-21 18:53

正文摘要:

本帖最后由 飞翔的小鸟3 于 2017-9-22 18:57 编辑 这三个: Input.press?(sym) Input.trigger?(sym) Input.repeat?(sym) 我按下去他们都会一起执行。暂时想不到其他办法..... 大佬们给个答案把 顺序是这样子的 ...

回复

飞翔的小鸟3 发表于 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都没反应,键盘问题?因为有时可以连发,所以应该不是脚本的问题。(我做的枪的战斗脚本)
喵呜喵5 发表于 2017-9-21 20:36:31
飞翔的小鸟3 发表于 2017-9-21 20:28
还有,我按照楼上方法有时按下去按键不灵

我说的是连打

3楼只是给个思路,并不是直接用的……
如果在对象里请用实例变量或全局变量储存当前开关的状态
喵呜喵5 发表于 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
imsy 发表于 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-11-17 00:57

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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