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

Project1

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

[已经解决] 请问如何使存档显示角色图像和地图名

[复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
54 小时
注册时间
2013-1-3
帖子
128
跳转到指定楼层
1
发表于 2013-6-23 16:08:44 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

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

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

x
请问如何使用 header[:   ] 这般的代码,我想要让存档显示角色图像和地图名
我在DataManager--header[:map_name] = $game_map.display_name
Window_SaveFile运用时,header[:map_name]告诉我[]错误。
我还写了header[:faces]用来存actor.face_name和index
header[:faces].each_with_index do |data, i|动作,each_with_index报错


想问下如何才能使存档显示角色图像和地图名
1

Lv2.观梦者 (暗夜天使)

梦石
0
星屑
266
在线时间
2355 小时
注册时间
2009-3-13
帖子
2309

贵宾

2
发表于 2013-6-23 16:16:10 | 只看该作者
存地图名
  1. header[:map_name] = $game_map.name_display # 地图名
复制代码
读取的时候展开
  1. map_name = DataManager.load_header(存档索引)[:map_name]
复制代码
保存跟绘制脸图就修改下面的两个方法吧:
  1. def characters_for_savefile
复制代码
  1. def draw_party_characters(x, y)
复制代码

点评

不是$game_map.display_name吗……  发表于 2013-6-23 16:33
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
54 小时
注册时间
2013-1-3
帖子
128
3
 楼主| 发表于 2013-6-23 17:58:11 | 只看该作者
Sion 发表于 2013-6-23 16:16
存地图名读取的时候展开保存跟绘制脸图就修改下面的两个方法吧:

我新写了 [:faces] = battle_members.collect do |actor|
                             [actor.face_name, actor.face_index]
                             end
然后使用到def draw_faces(x, y)中,header[:face].each_with_index do |data, i| 的.each_with_index报错

请问是为什么?

点评

也许你没有展开存档。  发表于 2013-6-23 18:03
1
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
54 小时
注册时间
2013-1-3
帖子
128
4
 楼主| 发表于 2013-6-23 19:00:35 | 只看该作者
本帖最后由 asdwds 于 2013-6-23 19:08 编辑
Sion 发表于 2013-6-23 16:16
存地图名读取的时候展开保存跟绘制脸图就修改下面的两个方法吧:


each_with_index 和 [:map_name]的[]未定义报错,请问是为什么?

#==============================================================================
# ■ Game_Party
#------------------------------------------------------------------------------
#  管理队伍的类。保存有金钱及物品的信息。本类的实例请参考 $game_party 。
#==============================================================================
  #--------------------------------------------------------------------------
  # ● 存档文件显示用的角色图
  #--------------------------------------------------------------------------
  def faces_for_savefile
    battle_members.collect do |actor|
      [actor.face_name, actor.face_index]
    end
  end
#==============================================================================
# ■ Window_SaveFile
#==============================================================================
class Window_SaveFile < Window_Base
  #--------------------------------------------------------------------------
  # ● 刷新
  #--------------------------------------------------------------------------
  def refresh
    contents.clear
    change_color(normal_color)
    name = Vocab::File + " #{@file_index + 1}"
    draw_text(4, 0, 200, line_height, name)
    @name_width = text_size(name).width
    draw_playtime(0, 34, contents.width - 4, 2)
    draw_party_faces(100, -10)
    map_name = DataManager.load_header(@file_index)[:map_name]#说[]错误
    draw_text(320-16, 0, 200, 32, map_name, 2)
  end
  #--------------------------------------------------------------------------
  # ● 画角色图
  #--------------------------------------------------------------------------
  def draw_party_faces(x, y)
    header = DataManager.load_header(@file_index)
    return unless header
    header[:faces].each_with_index do |data, i| #each_with_index 报错
      draw_character(data[0], data[1], x + i * 48, y)
    end
  end
  
end
#==============================================================================
# ■ DataManager
#------------------------------------------------------------------------------
#  数据库和游戏实例的管理器。所有在游戏中使用的全局变量都在这里初始化。
#==============================================================================
module DataManager
  #--------------------------------------------------------------------------
  # ● 生成存档的头数据
  #--------------------------------------------------------------------------
  def self.make_save_header
    header = {}
    header[:characters] = $game_party.characters_for_savefile
    header[:playtime_s] = $game_system.playtime_s
    header[:faces] = $game_party.faces_for_savefile
    header[:map_name] = $game_map.display_name
    header
  end
end

点评

绘制地图名之前要判断存档是否存在。  发表于 2013-6-23 19:30
你要先把之前的存档删掉。  发表于 2013-6-23 19:29
1
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
54 小时
注册时间
2013-1-3
帖子
128
5
 楼主| 发表于 2013-6-23 19:51:03 | 只看该作者
asdwds 发表于 2013-6-23 17:58
我新写了 [:faces] = battle_members.collect do |actor|
                             [actor.face_nam ...

如何判断是否有存档存在?
def checkheader
    @header = DataManager.load_header(@file_index)
    return true if @header
  end
我用这个判断了,然后现在不能保存了
1
回复 支持 反对

使用道具 举报

Lv2.观梦者 (暗夜天使)

梦石
0
星屑
266
在线时间
2355 小时
注册时间
2009-3-13
帖子
2309

贵宾

6
发表于 2013-6-23 20:20:40 | 只看该作者
asdwds 发表于 2013-6-23 19:51
如何判断是否有存档存在?
def checkheader
    @header = DataManager.load_header(@file_index)
  1. class Game_Party
  2.   def characters_for_savefile
  3.     battle_members.collect do |actor|
  4.       [actor.character_name, actor.character_index,
  5.         actor.face_name, actor.face_index]
  6.     end
  7.   end
  8. end

  9. class Window_SaveFile
  10.   def draw_party_characters(x, y)
  11.     header = DataManager.load_header(@file_index)
  12.     return unless header
  13.     header[:characters].each_with_index do |data, i|
  14.       draw_character(data[0], data[1], x + i * 48, y)
  15.       draw_character_face(data[2], data[3], x, y)
  16.     end
  17.     draw_saved_map_name(header[:map_name], x, y)
  18.   end
  19.   def draw_character_face(face_name, face_index, x, y)
  20.   end
  21.   def draw_saved_map_name(name, x, y)
  22.   end
  23. end

  24. module DataManager
  25.   def self.make_save_header
  26.     header = {}
  27.     header[:characters] = $game_party.characters_for_savefile
  28.     header[:playtime_s] = $game_system.playtime_s
  29.     header[:map_name] = $game_map.display_name
  30.     header
  31.   end
  32. end
复制代码
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
54 小时
注册时间
2013-1-3
帖子
128
7
 楼主| 发表于 2013-6-23 20:31:15 | 只看该作者
Sion 发表于 2013-6-23 20:20

依旧不能存档,打开存档界面,按存档后会发出存档不能的声音
1
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
2
星屑
165
在线时间
169 小时
注册时间
2013-1-1
帖子
166
8
发表于 2013-6-23 20:38:36 | 只看该作者
感觉不是简单的事情啊……我试了一下,写出数据有难度啊。

点评

其实写出数据Sion已经给出了方法,只是我不知道为什么不能存档了  发表于 2013-6-24 16:11
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
54 小时
注册时间
2013-1-3
帖子
128
9
 楼主| 发表于 2013-6-24 17:05:46 | 只看该作者
Sion 发表于 2013-6-23 20:20

header是不是有容量限制?为什么一定要是characters和characters_for_savefile
只要不是这个的,都会存档不成功

点评

我不知道你的那个是什么问题。  发表于 2013-6-24 18:04
1
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
54 小时
注册时间
2013-1-3
帖子
128
10
 楼主| 发表于 2013-6-24 19:29:52 | 只看该作者
Sion 发表于 2013-6-23 20:20

现在我已经没有太大的问题了,header好像是有容量限制
角色的图像如果不是在一张png里面的话,就只会出现角色1的图像,如果以角色2保存的话,就是黑的(没图片)
1
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-18 12:16

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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