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

Project1

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

[已经解决] 关于独立开关顺序的问题

[复制链接]

Lv1.梦旅人

梦石
0
星屑
60
在线时间
48 小时
注册时间
2013-9-10
帖子
61
跳转到指定楼层
1
发表于 2013-9-15 13:40:29 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x


前两天问了个关于“怎样让几个宝箱在3分钟后消失 ”的问题,在高手的帮助下已解决,

不过,有个地方我不太懂,就是在上图中圈出来的两个独立开关,

在“并行处理”的情况下,可以正常运行,开始计时,不过如果把两个开关颠倒一下,第一个变成ON,第二个变成OFF,

进了游戏,就是不显示计时,到底是怎么回事,我本以为的颠倒一下是不会影响的

@76213585  

Lv1.梦旅人

梦石
0
星屑
50
在线时间
3 小时
注册时间
2013-8-25
帖子
17
2
发表于 2013-9-15 14:24:29 | 只看该作者
UI>因為開關最開始狀態是OFF、所以判定不到ON第一個分支就跳過了
回复 支持 反对

使用道具 举报

Lv2.观梦者

狂気の月兔

梦石
0
星屑
276
在线时间
1245 小时
注册时间
2009-4-7
帖子
879

贵宾

3
发表于 2013-9-15 14:47:28 | 只看该作者
本帖最后由 铃仙·优昙华院·因幡 于 2013-9-15 14:48 编辑

这个要说的话, 要说道事件的执行问题了.

这个是事件记得你之前是 "并行事件" , 所以在地图中, 这个事件每次都会被执行. 那么, 让咱先来编号一下:

语句 1:   条件分歧: 独立开关 B == OFF
语句 2:       计时器操作: 开始( 0 分 20 秒 )
语句 3:       独立开关B = ON
语句 4:   分歧结束.


在解释之前你要先知道, 所有的开关和独立开始在初始的情况下, 也就是说在你没有去动它的情况下, 都是关闭的, 也就是都是状态 OFF.




那么, 我们先首次执行这个事件:

"语句 1:  条件分歧: 独立开关 B == OFF "

VX 在执行这个语句的时候, 会先判断 独立开关B 是不是 OFF, 也就是, 是不是关闭的状态. 显而易见的, 第一次执行的话, 必然是 OFF. (除非你在其他地方修改了这个开关). 所以, 到这里的时候, VX 会知道现在的 独立开关 B 是处于关闭这个状态的, 所以会执行在 语句1 和 语句 4 之间的语句.

"语句 2:       计时器操作: 开始( 0 分 20 秒 )"

确定了 VX 会执行接下里的语句之后, VX 就会把目光转向 语句2,  这是打开一个计时器.

" 语句3:       独立开关B = ON"

再接下来, 就是手动把 独立开关 B 打开, 变成了 ON 状态.

" 语句4:   分歧结束."

最后结束这个条件分歧.




由于是并行处理的事件, 那么这四个语句必然会在 VX 的每次刷新中被执行到. 那么, 这是第二次执行的情况:


"语句 1:  条件分歧: 独立开关 B == OFF "

依旧是条件分歧. 判断的条件和第一次执行是一样的(同一个事件嘛). 不过这里要特别注意的是, 独立开关 B 在第一次执行的时候, 被你打开了, 变成了 ON 状态. 也就是说, 在第二次 VX 执行到这里的时候, 这个条件分歧是不满足要求的. 条件是需要 独立开关 B 为关闭的情况, 但是现在 独立开关却是打开的. 条件分歧在不满足条件的情况下, 会直接跳向和它相对应的那个 分歧结束, 也就是这里说的 语句4;

"语句 2:       计时器操作: 开始( 0 分 20 秒 )"
"语句 3:       独立开关B = ON"

由于之前的条件分歧是不满足所给定条件的, 所以这两个语句都不会被执行, 直接跳过. 这样就保证了, 计时器只会初始化一次.

" 语句4:   分歧结束."

最后跳跃到这里, 直接漏过 语句2 和 语句3.




之所以要这么写, 是为了保证 计时器 在需要的时候只会被打开一次.

因为计时器在每次打开的时候, 都会重新开始计时. 如果你每次都打开一次这个计时器, 导致的结果就是, 计时器的时间会一直的固定在你设定的时间内, 也就是这里的 20秒. 计时器会一动不动的卡在20秒这里, 不过这明显是和想象中不一样的.




综上所述, 这么的理由是, 要确保计时器只会被打开一次, 并且能正确的计时.

点评

好认真的的回复 - -  发表于 2013-9-16 12:12
恩  发表于 2013-9-15 15:45
所以进了游戏就没有执行语句2,也就没计时了,这就是我颠倒语句1、3失败的原因,对吧?  发表于 2013-9-15 15:27
是的.  发表于 2013-9-15 15:27
就是说,如果把语句1改成B = ON,语句2改成B == OFF,那第一次执行的时候就会,因为系统默认的是独立开关B == OFF,所以语句1的条件就不成立,  发表于 2013-9-15 15:26

评分

参与人数 1星屑 +80 收起 理由
丿梁丶小柒 + 80 认可答案

查看全部评分

回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
60
在线时间
48 小时
注册时间
2013-9-10
帖子
61
4
 楼主| 发表于 2013-9-15 14:55:34 | 只看该作者
幼雪の慯 发表于 2013-9-15 14:24
UI>因為開關最開始狀態是OFF、所以判定不到ON第一個分支就跳過了

{:2_264:}我没太懂你的意思

如果按你这么说,第一次判定,是B==OFF,直接跳过了,那就不会开始计时吧?

而石事实是,最开始状态是OFF的时候,可以成功的计时啊

我是把第一个变成ON才失败了的
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-12-23 12:40

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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