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

Project1

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

[已经过期] 怎么建立一个公共的变量?

[复制链接]

Lv1.梦旅人

梦石
0
星屑
57
在线时间
131 小时
注册时间
2008-8-12
帖子
184
跳转到指定楼层
1
发表于 2014-9-23 15:34:50 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
比如建立一个变量 $ss,游戏中赋值 $ss = 9 ,保存为存档1。然后进入新游戏或者读取存档2,能判断出 $ss 变量的值依然是9
Tomorrow

Lv1.梦旅人

梦石
0
星屑
50
在线时间
320 小时
注册时间
2014-9-2
帖子
267
2
发表于 2014-9-23 17:12:30 | 只看该作者
核心代码


存储
Marshal.dump($ss, file)


读取
$ss = Marshal.load(file)

点评

这样的话,退出关闭再开始新游戏就不继承变量了吧?  发表于 2014-9-24 09:12
回复 支持 反对

使用道具 举报

Lv4.逐梦者 (版主)

梦石
0
星屑
9532
在线时间
5073 小时
注册时间
2013-6-21
帖子
3580

开拓者贵宾剧作品鉴家

3
发表于 2014-9-23 19:55:00 | 只看该作者
本帖最后由 RyanBern 于 2014-9-26 08:56 编辑

公共变量放在了一个单独的文件中储存,发生改变的时候就即时存档。
在游戏中$game_common_variables表示公共变量,可以像$game_variables一样使用。
未测试。缺点就是如果文件被删除,内容就要重置。
在Scene_Title中载入数据库的后面加上这个:
RUBY 代码复制
  1. unless FileTest.exist?("CommonVar.rxdata")
  2.   $game_common_variables = load_data("CommonVar.rxdata")
  3. else
  4.   $game_common_variables = Game_CommonVariables.new
  5. end

下面这个新建一个脚本插入即可:
RUBY 代码复制
  1. class Game_CommonVariables
  2.   def initialize
  3.     @data = {}
  4.   end
  5.   def [](id)
  6.     @data[id] == nil ? 0 : @data[id]
  7.   end
  8.   def []=(id, val)
  9.     @data[id] = val
  10.     filename = "CommonVar.rxdata"
  11.     file = File.open(filename, "wb")
  12.     Marshal.dump($game_common_variables, file)
  13.     file.close
  14.   end
  15. end
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
206 小时
注册时间
2014-2-8
帖子
396
4
发表于 2014-9-23 20:53:12 | 只看该作者
本帖最后由 573932914 于 2014-9-23 20:54 编辑

存档时建立文件,文件名字就用变量的数值,读档后再判断名字←←
刚接触RPG的新人们裤艾来这里!在这里能够帮助你们提高自身的能力,让大家来帮助每个人实现自己的创意、构想!
也许你只是正在看RPG教程的新人,或者是正在努力学着制作自己的RPG的制作者,或者是狂热的RPG游戏喜爱者,
但都不重要!
加入我们,我们会帮助你实现梦想,或者帮助你更好的运用RPG并且创造个人的一片天地!周末我们会不定时间开放RM技术讨论活动或者RM经验交流课!
加入我们,我们愿意与你共同创造奇迹,共同进步!
QQ群号:329443038  
或者联系QQ:573932914
我们和你站在同一线!
要求只有:常能上线
我们会用十分的热情接纳你!
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
57
在线时间
131 小时
注册时间
2008-8-12
帖子
184
5
 楼主| 发表于 2014-9-24 08:11:57 | 只看该作者
RyanBern 发表于 2014-9-23 19:55
首先这个公共的变量是不是要随时保存(即只要发生了变化就保存)?还是只有特定情况才保存(比方说存档了) ...

如果我要保存的变量比较多,比如大概有三十多个,需要随时保存,用什么方法比较好?

点评

3L已经编辑  发表于 2014-9-26 08:58
Tomorrow
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
320 小时
注册时间
2014-9-2
帖子
267
6
发表于 2014-9-24 12:29:58 | 只看该作者
那就选30+个ID放变量

点评

重定义 Game_Variables#[]= 比较好 参见楼下  发表于 2014-9-24 12:43
随时存就要修改Graphics.update  发表于 2014-9-24 12:32
回复 支持 反对

使用道具 举报

Lv3.寻梦者 (版主)

…あたしは天使なんかじゃないわ

梦石
0
星屑
2208
在线时间
4033 小时
注册时间
2010-10-4
帖子
10779

开拓者贵宾

7
发表于 2014-9-24 12:38:00 | 只看该作者
兔毛鹿 发表于 2014-9-24 08:11
如果我要保存的变量比较多,比如大概有三十多个,需要随时保存,用什么方法比较好? ...

1.
如果我要保存的变量比较多,比如大概有三十多个

建立一个 变量id -> 值 的哈希表,dump 到外部文件

2.
需要随时保存

重定义 Game_Variables#[]= (我不清楚XP,但这样应该可以。如果是VA的话可以重定义 on_change),使得变量每次改变的时候都存档
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-27 11:30

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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