Project1

标题: 逆向思维-事件教学 [打印本页]

作者: 越前リョーマ    时间: 2008-10-11 06:59
标题: 逆向思维-事件教学
节前语:
其实事件是个很简单的东西,只要按按按钮输输数字、文字什么的就好了。

【正文】
对于制作事件的东西,关键就是两点:熟练,思路。

熟练,毫无疑问,使用一下这些功能,明白他的意义和使用价值,熟练他的用法。这样就是熟练。要求基本上是全部熟练。(个别几个没什么用的没关系,其实那个什么按键输入之类的什么东西我现在也没明白……)
思路,即时这个系统的构造,需要什么样,什么功能,而这些功能又如何实现。就好像要解一个几何题,比如要知道这个角多少度,你可以知道他的对顶角多少度,而对顶角又要怎么求呢?这样反过来思维,而不是先想这个能得到什么,然后这个能得到什么,最后发现这个可以得到答案,这样比较浪费时间,而且也可能会卡脑(相当于电脑死机)。就好像要做一个家具系统(其实是给某人的作业,结果他做不出来),购买家具后可以在地图任意可以建造的位置(默认判断为可通行),然后家具就出现了。
青天(做这个作业的人)是这么想的:在地图上可以通行的地方铺满事件,然后在事件上按下时改变行走图。
这个办法不是不可以,但是极其耗费FPS。我的要求是FPS要25以上,他做的FPS降到了4。很明显这是不可取的,这种速度基本上是无法运行的。
有个办法可以保证FPS。FPS的最大影响就是:地图大、事件多、并行处理多(尤其是开关和变量的操作)。那么要让FPS不低就抓住这三点。地图大这个不能控制,有制作者决定。那么想后两个。
事件不能多,假设家具有X个,那么就有X个事件(家具多事件就多,这个没办法,当然也可以用yangff的那个建房子脚本,不过违背了事件就是了……)。那么如果只有一个家具既是1个事件,这样FPS就不会低了。
然后是并行处理,为了判断按键所以需要一个,但是不需要开关和变量的操作,所以不会怎么掉FPS。
制作大概就是这样:
画地图(废话!),建立一个事件当作家具,条件是开关【001:家具1号】打开,设置一下家具的图像。并行事件设置条件分歧当A建按下时(举例而已),把主角的X和Y代入变量(要确保在主角再次移动时已经计算出当时的坐标,如果FPS不好可能会有误差),条件分歧里写事件脚本:$game_player.passable?(x,y,方向)(X Y 方向 需要替换),不知道$game_player.passable?(x,y,10)这样写是不是全部的方向,如果不行就一个一个判断吧。判断后如果是可以通行那么移动先前的那个家具事件移动到指定的X和Y的变量,然后打开开关【001:家具1号】。这样就好了。然后结束这个操作,让玩家恢复正常操作模式。
这里说的是一个家具,如果多个的话前面可以加个判断。因为XP刷新地图后事件会归回原位,所以需要在加个自动事件的判断,把它移动回改过的位置。

恩……有点偏题了。没话说了,想到什么再补充吧…… = =
[LINE]1,#dddddd[/LINE]
事件是让不会写脚本的人也能做出丰富多样的系统和游戏的东西,这才是制作工具的意义。
倒过来想,条件充足,答案也存在,那么肯定会发现那个答案是什么。发现不了是因为倒转的东西太多而记不住或者是根本没认真去想。
无视这两句话。


作者: 浩气青天    时间: 2008-10-11 07:03

咳咳。{/fd}
小柯,你好了喔{/fd}
人家向你学习嘛{/hx}
不会的人家说错了干嘛要把我发上来嘛{/hx}

呜呜{/ll}
作者: 塑望    时间: 2008-10-11 07:04
{/pz}太长了....坐板凳(-_-||)看..

顺便...柯柯..我把你<牧场物语>素材拿去了点[主站有你标明下载后要和发布者打招呼-_-||]

不同意也不行..我都用了.....{/gg}

我在VX做庄园游戏........VX原来那么难用..你那素材我也在拼合..累
作者: 浩气青天    时间: 2008-10-11 07:11

其实不厚道地说:沙发是我的{/dy}
作者: 越前リョーマ    时间: 2008-10-11 07:13
以下引用塑望于2008-10-10 23:04:06的发言:

太长了....坐SF看..

顺便...柯柯..我把你<牧场物语>素材拿去了点[主站有你标明下载后要和发布者打招呼-_-||]

不同意也不行..我都用了.....

我在VX做庄园游戏........VX原来那么难用..你那素材我也在拼合..累

那种条例…… = =
无视它吧……学柳柳的……
作者: 塑望    时间: 2008-10-11 07:22
以下引用浩气青天于2008-10-10 23:11:16的发言:


其实不厚道地说:沙发是我的


无耻!!!

以下引用越前リョーマ于2008-10-10 23:13:05的发言:

那种条例…… = =
无视它吧……学柳柳的……


THANKS
作者: 浩气青天    时间: 2008-10-11 07:26
以下引用塑望于2008-10-10 23:22:01的发言:


以下引用浩气青天于2008-10-10 23:11:16的发言:


其实不厚道地说:沙发是我的



无耻!!!


以下引用越前リョーマ于2008-10-10 23:13:05的发言:

那种条例…… = =
无视它吧……学柳柳的……



THANKS


嘎嘎嘎嘎嘎。
作者: 灯笼菜刀王    时间: 2008-10-11 10:29
判断全部方向是10=3=

小柯难得写教程的说,不过后面那段应该分一下段,感觉看起来很乱- -~~

嘛,小声的说,这样设置一切换地图的话,就恢复原样了-3-,事件移动需要记录坐标才行,并要在一开始使用一个自动执行事件把事件移动到之前记录的坐标上-。-
作者: 越前リョーマ    时间: 2008-10-11 20:30
以下引用灯笼菜刀王于2008-10-11 2:29:52的发言:

判断全部方向是10=3=

小柯难得写教程的说,不过后面那段应该分一下段,感觉看起来很乱- -~~

嘛,小声的说,这样设置一切换地图的话,就恢复原样了-3-,事件移动需要记录坐标才行,并要在一开始使用一个自动执行事件把事件移动到之前记录的坐标上-。-

所以我一直为这个烦恼,虽然站上也有个稍微简便点的方法,但是依然需要用变量代入。这样东西多很需要变量,要是VX的话就自带固定功能了。
作者: 灯笼菜刀王    时间: 2008-10-12 00:06
要让事件能固定位置而不会随着地图REFRESH

把GAME EVENT里初试化移动位置做下手脚就可以了-。-,至于怎么做手脚~

嘛,有空我来写一个试试 -b-...
作者: 越前リョーマ    时间: 2008-10-12 00:26
以下引用灯笼菜刀王于2008-10-11 16:06:38的发言:

要让事件能固定位置而不会随着地图REFRESH

把GAME EVENT里初试化移动位置做下手脚就可以了-。-,至于怎么做手脚~

嘛,有空我来写一个试试 -b-...

有这个东西很多东西都简化了……(比如上次那个长草的…… = =)




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1