查看: 3151|回复: 3

独立变量[每个事件都有无限个变量]制作方法

  [复制链接]
梦石
0
星屑
50
在线时间
28 小时
注册时间
2007-12-22
回帖
62
发表于 2008-8-10 23:50:32 | 显示全部楼层 |阅读模式

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

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

×
我是新手说的不好,请多多见谅。
首先打个框架:
class Game_Dlbl
  def initialize
    @dlbl = []
  end
end
然后我们模仿变量的脚本做一下:
class Game_Dlbl
  def initialize
    @dlbl = []
  end
  def [](variable_id)
    if variable_id <= 5000 and @data[variable_id] != nil
      return @data[variable_id]
    else
      return 0
    end
  end
  def []=(variable_id, value)
    if variable_id <= 5000
      @data[variable_id] = value
    end
  end
end
继续改良:
class Game_Dlbl
  def initialize
    @dlbl = []
  end
  def [](variable_id, sjbh = "")
    if sjbh == ""
      sjbh = @event_id
    end
    if @dlbl[variable_id] != nil
      @blz = @dlbl[sjbh]
      return @blz[variable_id]
    else
      return 0
    end
  end
  def []=(variable_id, value)
    if variable_id <= 5000
      @data[variable_id] = value
    end
  end
end
再改良:
class Game_Dlbl
  def initialize
    @dlbl = []
  end
  def [](variable_id, sjbh = "")
    if sjbh == ""
      sjbh = @event_id
    end
    if @dlbl[variable_id] != nil
      @blz = @dlbl[sjbh]
      return @blz[variable_id]
    else
      return 0
    end
  end
  def []=(variable_id, value, sjbh = "")
    if sjbh == ""
      sjbh = @event_id
    end
    @blz = @dlbl[sjbh]
    @blz[variable_id] = value
    @dlbl[sjbh] = @blz
  end
end
加上注释:
#==============================================================================
# ■ Game_Dlbl
#------------------------------------------------------------------------------
#  处理独立变量的类。
#==============================================================================

class Game_Dlbl
  #--------------------------------------------------------------------------
  # ● 初始化
  #--------------------------------------------------------------------------
  def initialize
    @dlbl = []
  end
  #--------------------------------------------------------------------------
  # ● 获取变量
  #     variable_id : 变量 ID
  #--------------------------------------------------------------------------
  def [](variable_id, sjbh = "")
    if sjbh == ""
      sjbh = @event_id
    end
    if @dlbl[variable_id] != nil
      @blz = @dlbl[sjbh]
      return @blz[variable_id]
    else
      return 0
    end
  end
  #--------------------------------------------------------------------------
  # ● 设置变量
  #     variable_id : 变量 ID
  #     value       : 变量的值
  #--------------------------------------------------------------------------
  def []=(variable_id, value, sjbh = "")
    if sjbh == ""
      sjbh = @event_id
    end
    @blz = @dlbl[sjbh]
    @blz[variable_id] = value
    @dlbl[sjbh] = @blz
  end
end
换到标题画面继续改:
新游戏的生成各种游戏对像下面加一条
#修改#
$game_dlbl        = Game_Dlbl
换到存档画面继续改:
写入存档数据的写入各种游戏对像下面加一条
#修改#
Marshal.dump($game_dlbl, file)
换到读档画面继续改:
读取存档数据的读取各种游戏对像下面加一条
#修改#
$game_dlbl        = Marshal.load(file)
脚本搞定了…………
获得:
$game_dlbl[变量编号, 事件编号]
设置:
$game_dlbl[变量编号, 事件编号]后面的跟通用变量的设置方法一样。
搞定了拜拜…………
a.a~

静

梦石
0
星屑
49
在线时间
157 小时
注册时间
2007-12-16
回帖
3031
发表于 2008-8-10 23:59:28 | 显示全部楼层
哇。。喜欢这样靠自己摸索的新手
回复

使用道具 举报

名侦探小柯

梦石
10
星屑
4393
在线时间
3739 小时
注册时间
2006-9-6
回帖
36595

极短27获奖MZ评测员开拓者贵宾第3届短篇游戏大赛主流游戏组亚军第5届短篇游戏比赛亚军

发表于 2009-6-12 08:00:00 | 显示全部楼层
虽然站上也有一个,
不过那个似乎不能用,修复了问题后也不大能用……不知道是不是我不会用…… - -

这个的设置似乎简单点。
不定期回归 ~ 游戏开发之旅
———————————————————————————————
回复

使用道具 举报

头像被屏蔽
梦石
0
星屑
115
在线时间
3 小时
注册时间
2008-1-12
回帖
324
发表于 2008-8-11 21:09:54 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
回复

使用道具 举报

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

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部