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

Project1

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

[原创发布] 【纯事件】连续性按键组合操作详细解析思路教程

 关闭 [复制链接]

Lv1.梦旅人

龙皇

梦石
0
星屑
50
在线时间
83 小时
注册时间
2007-8-8
帖子
2956
跳转到指定楼层
1
发表于 2009-8-25 23:42:06 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

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

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

x
本帖最后由 TERENCE 于 2009-8-26 01:18 编辑


原始帖:
http://rpg.blue/viewthread.php?tid=131958

◎前言
要写著个教程其实不太容易,虽然没比我曾写过的变身系统复杂
因為如果依照我以前图文流程教程习惯的方法,要解释到有点难诠释......
另最主要的原因不像之前有单一的流程,
这次纯事件製作分成两大核心:主公共事件子公共事件
请耐心把教程读完就可以懂得加以利用及改造

◎效果
随机出现五个方向,要在特定的时间内按完五个方向。
不管是应变能力的小游戏or类似KOF 的操作以及ARPG等等利用
这种思路还能继续扩展且用途很广,不见得只有五个方向或一定要随机
本教程是依照原始帖本范例的流程而写。

◎流程图

第一次搬出很论文的东西(= =),不过也是我的心血,
但看完这个图,对於连续性按键组合操作的解析也可以有具体的了解。
以下教学请配合该图......

◎流程解析
一、首先从流程图左上方的初始化设定来看

基本上就是初始化一些计时器、速度、最大时限等等
(这裡建议加上失败开关初始化成OFF)

下面的公共事件,就是待会要交代的部份
(等待是必须的,否则事件中的图片不容易生成显现出来)

二、随机生成五个方向值

对於类似KOF 的操作,大可以不必有随机生成,
如果有自己特定的组合键,这个流程可以省略

生成时间槽图片应该比较属於初始化设定的流程,
这裡我必须给定键值,例如像我在这裡就是...
上=>0 下=>1 左=>2 右=>3
然后根据值 显示对应的图片
并记得要带入变数中储存

依此类推,就可以得到五个变数的键值

三、子事件的流程(按下键值处理)

我们可以看到流程图中,到子事件处理是虚线......
那是代表该子事件是同一个可重复使用的独立公共事件
就像function(函式/方法)一样

绿色的部份(--请注意教程の思路疑惑解析的部份)
就是流程图Trigger按键前缘触发的条件判断与根据所暗的键
带入按下键值这个变量之中的部份

综色的部份(--请注意教程の思路疑惑解析的部份)
流程图Input.update(更新输入信息)与累计计时器的部份
  1. a = $game_variables[9]
  2. b = $game_variables[10]/100
  3. $game_screen.pictures[7].show("TimeBar(2)",0,0,50,a/b,100,255,0)
  4. @wait_count = 1
复制代码
这个部份专门是為时间条做的设计
变数($game_variables)9号10号分别就是计时器最大时限
a/b就类似是X方向放大率的百分比
不断循环(刷新)的结果就是可以看到时间条在时间槽裡在跑
@wait_count = 1就是等待一禎的画格,使时间条有一禎的时间生成

P.S.
  1. #     name         : 文件名
  2. #     origin       : 原点
  3. #     x            : X 坐标
  4. #     y            : Y 坐标
  5. #     zoom_x       : X 方向放大率
  6. #     zoom_y       : Y 方向放大率
  7. #     opacity      : 不透明度
  8. #     blend_type   : 合成方式
  9. 显示图片
  10. $game_screen.pictures[number].show(name, origin, x, y, zoom_x, zoom_y, opacity, blend_type)
复制代码
红色的部份
流程图子事件的计时器是否达到最大时限条件判断的部份

四、主事件的流程(按键处理)

按下键值的公共事件就是子事件

紫色的部份
流程图主事件的计时器是否达到最大时限条件判断的部份
这裡建议加上刚刚提起的失败开关,使之為ON
这个开关可以判断你是否失败

绿色的部份
流程图的按下键值与预订(乱数)键值是否相同条件判断的部份

红色的部份
方向正确图片变色等处理的部份

综色的部份
这裡也建议加上刚刚提起的失败开关,使之為ON
这个开关可以判断你是否失败

依此类推,五个键值的操作流程

五、按键结束处理

这裡就不用教了吧,全程最简单的地方

◎思路细节疑惑解析(有疑惑再看,否则这裡文字颇多)
一、子事件Trigger按键前缘触发的条件判断思路疑惑
Q:
在子事件(按下键值)的处理中有这麼几段Input.trigger?的条件判断
為什麼不使用一般事件中的按钮条件判断??

ANS:
在这裡必须先解释Input.trigger?Input.press?的差别
其实事件中的按钮条件判断就是Input.press?

由上图可以看到
Input.trigger?是只有在按键按下去的瞬间才会回传TRUE
这就是所谓的前缘触发

想下一下,程式执行事件的速度是非常的狠快
如果你使用了Input.press?来判断,虽然这时本判断执行是没问题的
但在下一个执行按键判断的时候,你所按的键是不可能放开的,
这时你的逻辑就是错误了
甚至你以為只按了一下,其实五个键值判断早已经跑完了

换句话说
『程式执行的速度,远大於人类的反应速度』

所以这裡才使用按键前缘触发的条件判断
防止下一个执行按键判断直接通过跳出子事件的循环

二、子事件时间条事件脚本中的@wait_count与Input.update的思路疑惑
Q:
有仔细看完以上教学的同学可能会问两个问题
@wait_count就相当於等待的效果,為啥不直接使用事件本身有的就好??
这时候為什麼要调用Input.update(更新输入信息)??

ANS:
这两个问题其实也困扰了许久,
但是如果用了事件本身有的等待或不使用Input.update
流程就会卡死在这(按键反应不是特别灵敏)
不使用@wait_count等待的话时间条图片生成会来不及

以下是我的见解(有错的话,希望高人指导纠正)
使用Input.update的原因是
在执行事件时(尤其是循环),单靠Scene_Map脚本中的Input.update
没办法即时更新输入讯息,所以这裡才要强迫更新输入讯息

在时间条事件脚本中可以看成单一个事件的执行
而@wait_count与事件本身有的等待还是有所差别
如果使用了事件本身有的等待,
会造成子事件Input.trigger?判断延迟(按键反应不是特别灵敏)

三、使用了两个判断计时器是否达到最大时限条件的思路疑惑
Q:
有仔细观察思考流程图的人,可能会问.....
為什麼用了两个判断计时器是否达到最大时限条件?
為什麼子事件的该判断(TRUE)不直接到按键结束的地方?
这样不是就执行同样的东西两次了吗??


ANS:
切记~~事件执行是流水式的,子事件跟按键结束处理是各别独立出来的
一旦子事件的该判断(TRUE)直接到按键结束的地方,执行结束....
会回到主事件继续执行下去,
使用中断事件处理也只是中断独立的公共事件

◎工程范例
原始帖就有,请自行去那下载
6R RM附件现在又有问题....= =
压缩文件损坏修复方法:
http://rpg.blue/viewthread.php?tid=130263
http://rpg.blue/viewthread.php?tid=130261

                签名图来自:無限のファンタジア
                 我的RMXP专题空间--龙使传说

Lv1.梦旅人

清纯红

梦石
0
星屑
61
在线时间
65 小时
注册时间
2009-7-23
帖子
995

贵宾

2
发表于 2009-8-25 23:45:34 | 只看该作者
做个出招判断用
提供思路,写成脚本- -b
就算痛也要做,宅必备宅人的必备网站
回复 支持 反对

使用道具 举报

Lv1.梦旅人

B

梦石
0
星屑
50
在线时间
26 小时
注册时间
2007-8-26
帖子
3693
3
发表于 2009-8-25 23:47:19 | 只看该作者
挺不错~ 写成教程~ 方便交流~
回复 支持 反对

使用道具 举报

Lv1.梦旅人

龙皇

梦石
0
星屑
50
在线时间
83 小时
注册时间
2007-8-8
帖子
2956
4
 楼主| 发表于 2009-8-26 00:46:12 | 只看该作者
谢谢LS几位支持


更新 教程部分重点 加粗 加色

                签名图来自:無限のファンタジア
                 我的RMXP专题空间--龙使传说
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
128 小时
注册时间
2009-1-28
帖子
2790
5
发表于 2009-8-26 00:55:00 | 只看该作者
为什么我能看懂这么论文的东西.....
ANS:
在这裡必须先解释Input.trigger?与Input.press?的差别
其实是件中的按钮条件判断就是Input.press?

龙仔这里打错了

炼金术的根本法则是等价交换。想要获得,必须失去同等价值的东西。每当烦躁的时候,煎熬在不想做却又正在做的烦心事中的时候,我就安慰自己,提醒自己做这些事情的目的所在,告诉自己不要忽略所获得或者即将获得的回报,物质的,精神的,肉体的,灵魂的回报!只做想做的事情,就会失去不想失去的东西。
回复 支持 反对

使用道具 举报

Lv1.梦旅人

龙皇

梦石
0
星屑
50
在线时间
83 小时
注册时间
2007-8-8
帖子
2956
6
 楼主| 发表于 2009-8-26 00:59:31 | 只看该作者
为什么我能看懂这么论文的东西.....

龙仔这里打错了
霜冻之狼 发表于 2009-8-26 00:55

谢谢告知,已经修正。

                签名图来自:無限のファンタジア
                 我的RMXP专题空间--龙使传说
回复 支持 反对

使用道具 举报

Lv3.寻梦者 (暗夜天使)

名侦探小柯

梦石
0
星屑
3263
在线时间
3616 小时
注册时间
2006-9-6
帖子
37399

开拓者贵宾第3届短篇游戏大赛主流游戏组亚军第5届短篇游戏比赛亚军

7
发表于 2009-8-26 13:58:06 | 只看该作者
我个人不大喜欢用计时器,还是【等待】比较好。
回复 支持 反对

使用道具 举报

Lv1.梦旅人

龙皇

梦石
0
星屑
50
在线时间
83 小时
注册时间
2007-8-8
帖子
2956
8
 楼主| 发表于 2009-8-26 14:47:53 | 只看该作者
我个人不大喜欢用计时器,还是【等待】比较好。
越前リョーマ 发表于 2009-8-26 13:58

不要误会了是也,
这里的计时器非事件中的计时器。

这里的计时器是一个变量
用来快速累计时间的一个变量

利用循环累加所得到的效果

                签名图来自:無限のファンタジア
                 我的RMXP专题空间--龙使传说
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1055
在线时间
1564 小时
注册时间
2008-7-30
帖子
4418

贵宾

9
发表于 2009-8-26 16:06:13 | 只看该作者
终于看到这个事件教程就真是热泪盈眶啊

现在会了RGSS做什么都想着脚本,还把亲爱的事件给遗忘了。

LZ:1.排版强大 2.流程图系正宗流程图强大 3.创意强大 4.逻辑思维强大

膜拜了。。。

See FScript Here:https://github.com/DeathKing/fscript
潜心编写URG3中。
所有对URG3的疑问和勘误或者建议,请移步至发布页面。
欢迎萌妹纸催更
回复 支持 反对

使用道具 举报

Lv1.梦旅人

龙皇

梦石
0
星屑
50
在线时间
83 小时
注册时间
2007-8-8
帖子
2956
10
 楼主| 发表于 2009-8-26 19:32:36 | 只看该作者
终于看到这个事件教程就真是热泪盈眶啊
现在会了RGSS做什么都想着脚本,还把亲爱的事件给遗忘了。
LZ:1.排版强大 2.流程图系正宗流程图强大 3.创意强大 4.逻辑思维强大
膜拜了。。。 ...
DeathKing 发表于 2009-8-26 16:06

首先很谢谢DeathKing大力的赞赏


DeathKing大大也是脚本的高手吧~
如果你有兴趣脚本版的续性按键组合操作......就交給你了=w= (~被~PIA
就是因为这个效果 我用脚本做不出来 才用成事件版的

                签名图来自:無限のファンタジア
                 我的RMXP专题空间--龙使传说
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-5-15 05:55

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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