查看: 2340|回复: 26

[已经解决] 加了if语句后,之后内容实现不了 已自己解决

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

开拓者

发表于 2017-9-22 19:01:43 | 显示全部楼层 |阅读模式

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

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

×
本帖最后由 飞翔的小鸟3 于 2017-9-30 19:45 编辑
  1.   def run_gun_battle
  2.     @var ||= 15
  3.     if Input.trigger?(:X)
  4.      $game_switches[@var] = true
  5.     @var = (@var == 15? 17 : 15 )
  6.     end
  7.     if $game_switches[15] == true
  8.     @var2 ||= 18
  9.     if Input.trigger?(:Y)
  10.      $game_switches[@var2] = true
  11.     @var2 = (@var2 == 18? 19 : 18 )
  12.     end
  13.     end
  14.   end
复制代码

丢在Scene_Map的update方法里,那个if $game_switches[15] == true,加下去后,我怎么按Y都是实现不了,
已确定:15开关已被打开,按键没错。然后值得一提的是,我直接在并行事件写入
  1.     @var2 ||= 18
  2.     if Input.trigger?(:Y)
  3.      $game_switches[@var2] = true
  4.     @var2 = (@var2 == 18? 19 : 18 )
  5.     end
复制代码

是可以用的。
这是啥问题?
感觉我是不是把方法丢错地方了,我要的是在地图上任何一个地方只要按下X和Y(Y的前提是15开关打开)就能实现相应代码。

点评

@var == 15? 数字和问号要空开一格:@var = (@var == 15 ? 17 : 15 ) ,包括下面的 @var2 一样。  发表于 2017-9-22 20:20
不好意思,不能帮上忙,请无视掉我的话~  发表于 2017-9-22 19:26
你打开游戏F1看看键盘设置,没有Y这个键的,是不是这个原因?  发表于 2017-9-22 19:19
梦石
0
星屑
2338
在线时间
275 小时
注册时间
2017-7-25
回帖
128
发表于 2017-9-22 19:07:33 | 显示全部楼层
7行的if改用when试试?

点评

一样  发表于 2017-9-22 19:12
回复

使用道具 举报

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

开拓者

 楼主| 发表于 2017-9-22 19:22:39 | 显示全部楼层
@gaogs123456


QQ截图20170922192106.jpg

有这个键的,然后我也说过了,用并行事件写脚本,去除if语句,是可以用的

点评

我看错了...其实我对RM不太熟..  发表于 2017-9-23 16:04
这图中3组按键..各组左边的RM的按键..右边的是你设置的按键..按键判定只支持左边的..除非你用了全键盘脚本..  发表于 2017-9-23 09:19
你哪里看到有Y键?  发表于 2017-9-22 20:37
回复

使用道具 举报

梦石
0
星屑
39236
在线时间
11155 小时
注册时间
2009-3-15
回帖
4768
发表于 2017-9-23 16:15:07 | 显示全部楼层
[pre lang="ruby"]alias run_gun_battle update
  def update
    @var ||= 15
    if Input.trigger?(Input::X)
     $game_switches[@var] = true
    @var = (@var == 15 ? 17 : 15 )
    end
    if $game_switches[15] == true
    @var2 ||= 18
    if Input.trigger?(Input::Y)
     $game_switches[@var2] = true
    @var2 = (@var2 == 18 ? 19 : 18 )
    end
  end
  return run_gun_battle
  end[/pre]

测试通过啊..
回复

使用道具 举报

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

开拓者

 楼主| 发表于 2017-9-23 17:36:53 | 显示全部楼层
soulsaga 发表于 2017-9-23 16:15
alias run_gun_battle update
  def update
    @var ||= 15

你这脚本怎么用的,我直接把你这个写入脚本,人物走路和乌龟一样慢,然后按X和Y的对应按键都没反应。以前至少按X可以用的,现在X都不能用了。。。。。。
回复

使用道具 举报

梦石
0
星屑
39236
在线时间
11155 小时
注册时间
2009-3-15
回帖
4768
发表于 2017-9-23 19:12:23 | 显示全部楼层
飞翔的小鸟3 发表于 2017-9-23 17:36
你这脚本怎么用的,我直接把你这个写入脚本,人物走路和乌龟一样慢,然后按X和Y的对应按键都没反应。以前 ...

Scene_Map的update方法END后插入..

点评

好  发表于 2017-9-23 20:19
没有执行P,然后我在事件写上:if Input.trigger?(:Y) ;p 1 ;end 有执行的  发表于 2017-9-23 20:07
我搞不定..等大神来吧..  发表于 2017-9-23 20:07
你说反应啊,我按Q后会启用一个行走图的,但是你发的脚本按下去并没有出现。如果去掉if,就能用了。  发表于 2017-9-23 20:01
p出来了  发表于 2017-9-23 19:59
回复

使用道具 举报

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

开拓者

 楼主| 发表于 2017-9-23 19:39:25 | 显示全部楼层
本帖最后由 飞翔的小鸟3 于 2017-9-23 19:58 编辑
soulsaga 发表于 2017-9-23 19:12
Scene_Map的update方法END后插入..


QQ截图20170923193906.jpg

QQ截图20170923195815.jpg
QQ截图20170923195830.jpg

点评

P放在$game_switches[@var2] = true下面  发表于 2017-9-23 20:02
打开控制台 插入p $game_switches[@var2]  发表于 2017-9-23 19:52
你给的脚本根本没有有反应的要素存在..  发表于 2017-9-23 19:51
回复

使用道具 举报

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

开拓者

 楼主| 发表于 2017-9-27 12:00:30 | 显示全部楼层
@喵呜喵5和@guoxiaomi,你们知道吗?

点评

你可以选择提供一个简单的工程(仅包含测试这个逻辑需要的代码和素材的新工程),你这样描述比较难以找到问题(  发表于 2017-9-27 12:16
回复

使用道具 举报

梦石
0
星屑
19426
在线时间
3082 小时
注册时间
2013-1-11
回帖
1207
发表于 2017-9-27 13:13:19 | 显示全部楼层

完全复刻你的脚本也是没问题的,是不是按键按错

1.png
2.png
回复

使用道具 举报

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

开拓者

 楼主| 发表于 2017-9-27 22:35:21 | 显示全部楼层
本帖最后由 飞翔的小鸟3 于 2017-9-29 21:38 编辑
张咚咚 发表于 2017-9-27 13:13
完全复刻你的脚本也是没问题的,是不是按键按错

QQ截图20170927223333.jpg

有p出1的,说明成功了,没按错
但是代码中的if Input.trigger?(Input::Y)后面就是不执行
我试试在新工程中看看


工程http://pan.baidu.com/s/1o8IBE58
我试了,还是不能用.....


@ VIPArcher

更新:用了全按键,要改一下啊
http://pan.baidu.com/s/1nvJZCV3

我知道问题出在哪里了。
15开关一打开,执行完公共事件后,就给我在事件里关闭了。
自然按下s键也不执行了。改好了
回复

使用道具 举报

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

本版积分规则

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

在本版发帖返回顶部