Project1

标题: 一个关于如何对付2个游戏不同风格与脚本冲突的创意 [打印本页]

作者: 枫起    时间: 2009-7-15 16:56
标题: 一个关于如何对付2个游戏不同风格与脚本冲突的创意
最近在做一个小游戏与R剧的合集。。。
突然间想到由于包含的游戏太多,要是2个游戏间的脚本冲突了怎么办?要做的操作界面不一样怎么办?对话脚本不一样怎么办?



于是一个创意就诞生了。。。(适合包含2个及以上的游戏)
很简单,就是加入你A游戏与B游戏的脚本冲突了
那么:1.请人做个可以调用外部文件的脚本
2.在你游戏的开头选择玩游戏A还是B(A在游戏里,B另做一个)
3.如果选A,则开始A游戏
如果选B,则执行调用外部脚本,之后结束A游戏,调用并开始运行B游戏
4.如果选了B游戏,则调用脚本,之后结束A游戏(A包含了开头选择游戏的选项,所以要调用B,并结束A),调用并开始运行B游戏
之后要玩A游戏,如同上面一样,还是调用脚本来执行。。。
作者: 黯乡魂    时间: 2009-7-15 17:23
提示: 作者被禁止或删除 内容自动屏蔽
作者: 枫起    时间: 2009-7-15 17:48
我去请个人来写。。。
作者: 亿万星辰    时间: 2009-7-15 18:21
写两个scene,不会冲突了吧。。。。
作者: 霜冻之狼    时间: 2009-7-15 18:23
本帖最后由 霜冻之狼 于 2009-7-15 18:27 编辑

已经调用的脚本怎么处理?
B游戏玩完后再玩A游戏,而B脚本已经调用,再调用A脚本的话,两者就会冲突
作者: tommay    时间: 2009-7-15 19:37
本帖最后由 tommay 于 2009-7-15 19:40 编辑
已经调用的脚本怎么处理?
B游戏玩完后再玩A游戏,而B脚本已经调用,再调用A脚本的话,两者就会冲突
霜冻之狼 发表于 2009-7-15 18:23

不能用开关或者变量来分歧吗?
作者: 亿万星辰    时间: 2009-7-15 20:07
本帖最后由 亿万星辰 于 2009-7-15 20:08 编辑

游戏A玩完以后会肯定就应该回到个选游戏的环节了啊……
作者: 越前リョーマ    时间: 2009-7-15 20:50
不如都用开关控制起来好了。
作者: 猫哥哥    时间: 2009-7-15 21:19
假如A脚本里重载了原有的class或者方法,而B脚本里没有重载,该怎么办?重载全部原有class?
作者: orochi2k    时间: 2009-7-15 22:30
直接做3个进程吧 时刻保持2个藏着1个跑 囧
作者: 亿万星辰    时间: 2009-7-16 07:42
假如A脚本里重载了原有的class或者方法,而B脚本里没有重载,该怎么办?重载全部原有class?
猫哥哥 发表于 2009-7-15 21:19

不明,还是请举例说明吧。。。

不过我一直做的小游戏都是独立的……
作者: IamI    时间: 2009-7-16 09:20
比如说一个有RTAB,重载了Window_Base::draw_actor_hps(反正差不多- -)
另外一个有血条,同样重载了Window_Base::draw_actor_hps,怎么办?

一直觉得 include module巨神奇- -
作者: 猫哥哥    时间: 2009-7-16 12:22
本帖最后由 猫哥哥 于 2009-7-16 12:57 编辑
比如说一个有RTAB,重载了Window_Base::draw_actor_hps(反正差不多- -)
另外一个有血条,同样重载了Window_Base::draw_actor_hps,怎么办?

一直觉得 include module巨神奇- - ...
IamI 发表于 2009-7-16 09:20


我的意思是
比如说A脚本有RTAB,重载了Window_Base::draw_actor_hps(反正也差不多= =)。
而B脚本并没有重载Window_Base::draw_actor_hps。
但B脚本用到了Window_Base::draw_actor_hps,而此时Window_Base::draw_actor_hps并没有被重载,所以现在的Window_Base::draw_actor_hps是属于A脚本的内容,那么……
-----------------------------------------------------------------------------------------------------------
所以我觉得解决小游戏冲突的方法,就是在写脚本的时候写独立的脚本
作者: 霜冻之狼    时间: 2009-7-16 12:53
思路好混乱....
作者: ONEWateR    时间: 2009-7-16 12:59
本帖最后由 ONEWateR 于 2009-7-16 13:01 编辑

那样很麻烦……
在内部放几个独立的r剧
我记得zh问个一个问题,可以关闭总再打开分~然后再关闭分打开总~
作者: 枫起    时间: 2009-7-16 13:03
...这只是一个创意而已...另外做一个单独的脚本,调用后游戏关闭,另一个游戏再另外调用,不可以吗?
作者: 风雪优游    时间: 2009-7-16 13:07
一个游戏工程,含有另外的游戏工程吗?
感觉上比整合脚本更加麻烦呢。
作者: tommay    时间: 2009-7-16 17:26
我完全不理解LS诸位的意思,算了,飘过~
作者: 猫哥哥    时间: 2009-7-16 18:58
...这只是一个创意而已...另外做一个单独的脚本,调用后游戏关闭,另一个游戏再另外调用,不可以吗?
枫起 发表于 2009-7-16 13:03


其实RGSS运行的时候,就是在一个scene的实例里运行,所以如果小游戏的脚本本身就是独立的scene(就像亿万说的),有冲突的情况极低…… = =

不过你的创意,应该对解决用了事件和默认脚本的小游戏的冲突有效……
作者: 465889216    时间: 2009-7-16 23:50
提示: 作者被禁止或删除 内容自动屏蔽
作者: 亿万星辰    时间: 2009-7-17 17:22
小游戏一般我写出的都是单独的Scene,一个游戏和一个游戏之间并不什么关联,退出一个游戏进另外一个就像小时候FC上的RESET键,按下后重新回到N合一的选择游戏界面……{:3_49:}
作者: 后知后觉    时间: 2009-7-18 12:25
小游戏一般不会发生太大的冲突
基本上都是新建scene
至于Window_Base里的那些方法 简单的用变量或者开关条件分歧一下就好了
比如一个方法本来是这样
def abc(x,y)
  x *= 3
  y *= 3
end
然后游戏A进行了修改 成了这样
def abc(x,y,w)
  x *= 2
  y *= 2
  w *= 2
end
手动拿个东西来判断一下就好
def abc(x, y, w = 0)
  if $game_variables[ID] == ?
  x *= 2
  y *= 2
  w *= 2
  return
end
  x *= 3
  y *= 3
end




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