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

Project1

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

[已经解决] 请问如何一打开游戏就自动开始新游戏或读取存档,并且...

[复制链接]

Lv1.梦旅人

梦石
0
星屑
75
在线时间
27 小时
注册时间
2014-7-19
帖子
110
跳转到指定楼层
1
发表于 2014-7-19 12:29:14 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
并且存档时只能存一个?

Lv1.梦旅人

梦石
0
星屑
76
在线时间
1379 小时
注册时间
2012-7-5
帖子
1698

开拓者

2
发表于 2014-7-19 12:38:16 | 只看该作者
Scene_Title第55~59行改为如下
  1. if @continue_enabled
  2.   command_continue
  3. else
  4.   command_new_game
  5. end
复制代码
另外这样只是打开读档界面而已, 存档只能存一个要改Scene_Load了现在没空等大触来回答吧

  -fk: -azogi:
回复 支持 反对

使用道具 举报

Lv1.梦旅人

薄凉看客

梦石
0
星屑
50
在线时间
1269 小时
注册时间
2010-6-20
帖子
1316
3
发表于 2014-7-19 12:38:51 | 只看该作者
本帖最后由 恐惧剑刃 于 2014-7-19 13:27 编辑

放在main前
  1. #==============================================================================
  2. # ■ Scene_Title
  3. #------------------------------------------------------------------------------
  4. #  处理标题画面的类。
  5. #==============================================================================

  6. class Scene_Title
  7.   #--------------------------------------------------------------------------
  8.   # ● 读取存档数据
  9.   #     file : 读取用文件对像 (已经打开)
  10.   #--------------------------------------------------------------------------
  11.   def read_save_data(file)
  12.     # 读取描绘存档文件用的角色数据
  13.     characters = Marshal.load(file)
  14.     # 读取测量游戏时间用画面计数
  15.     Graphics.frame_count = Marshal.load(file)
  16.     # 读取各种游戏对像
  17.     $game_system        = Marshal.load(file)
  18.     $game_switches      = Marshal.load(file)
  19.     $game_variables     = Marshal.load(file)
  20.     $game_self_switches = Marshal.load(file)
  21.     $game_screen        = Marshal.load(file)
  22.     $game_actors        = Marshal.load(file)
  23.     $game_party         = Marshal.load(file)
  24.     $game_troop         = Marshal.load(file)
  25.     $game_map           = Marshal.load(file)
  26.     $game_player        = Marshal.load(file)
  27.     # 魔法编号与保存时有差异的情况下
  28.     # (加入编辑器的编辑过的数据)
  29.     if $game_system.magic_number != $data_system.magic_number
  30.       # 重新装载地图
  31.       $game_map.setup($game_map.map_id)
  32.       $game_player.center($game_player.x, $game_player.y)
  33.     end
  34.     # 刷新同伴成员
  35.     $game_party.refresh
  36.   end
  37.   #--------------------------------------------------------------------------
  38.   # ● 主处理
  39.   #--------------------------------------------------------------------------
  40.   def main
  41.     # 战斗测试的情况下
  42.     if $BTEST
  43.       battle_test
  44.       return
  45.     end
  46.     # 载入数据库
  47.     $data_actors        = load_data("Data/Actors.rxdata")
  48.     $data_classes       = load_data("Data/Classes.rxdata")
  49.     $data_skills        = load_data("Data/Skills.rxdata")
  50.     $data_items         = load_data("Data/Items.rxdata")
  51.     $data_weapons       = load_data("Data/Weapons.rxdata")
  52.     $data_armors        = load_data("Data/Armors.rxdata")
  53.     $data_enemies       = load_data("Data/Enemies.rxdata")
  54.     $data_troops        = load_data("Data/Troops.rxdata")
  55.     $data_states        = load_data("Data/States.rxdata")
  56.     $data_animations    = load_data("Data/Animations.rxdata")
  57.     $data_tilesets      = load_data("Data/Tilesets.rxdata")
  58.     $data_common_events = load_data("Data/CommonEvents.rxdata")
  59.     $data_system        = load_data("Data/System.rxdata")
  60.     # 生成系统对像
  61.     $game_system = Game_System.new
  62.    
  63.    
  64.     if FileTest.exist?("Save.rxdata")
  65.       $game_temp = Game_Temp.new
  66.       # 演奏读档 SE
  67.       $game_system.se_play($data_system.load_se)
  68.       # 写入存档数据
  69.       file = File.open("Save.rxdata", "rb")
  70.       read_save_data(file)
  71.       file.close
  72.       # 还原 BGM、BGS
  73.       $game_system.bgm_play($game_system.playing_bgm)
  74.       $game_system.bgs_play($game_system.playing_bgs)
  75.       # 刷新地图 (执行并行事件)
  76.       $game_map.update
  77.       # 切换到地图画面
  78.       $scene = Scene_Map.new
  79.       return
  80.     else
  81.       command_new_game
  82.       return
  83.     end
  84.    
  85.    
  86.    
  87.    
  88.     # 生成标题图形
  89.     @sprite = Sprite.new
  90.     @sprite.bitmap = RPG::Cache.title($data_system.title_name)
  91.     # 生成命令窗口
  92.     s1 = "新游戏"
  93.     s2 = "继续"
  94.     s3 = "退出"
  95.     @command_window = Window_Command.new(192, [s1, s2, s3])
  96.     @command_window.back_opacity = 160
  97.     @command_window.x = 320 - @command_window.width / 2
  98.     @command_window.y = 288
  99.    
  100.     # 继续为有效的情况下、光标停止在继续上
  101.     # 无效的情况下、继续的文字显示为灰色
  102.     if @continue_enabled
  103.       @command_window.index = 1
  104.     else
  105.       @command_window.disable_item(1)
  106.     end
  107.     # 演奏标题 BGM
  108.     $game_system.bgm_play($data_system.title_bgm)
  109.     # 停止演奏 ME、BGS
  110.     Audio.me_stop
  111.     Audio.bgs_stop
  112.     # 执行过渡
  113.     Graphics.transition
  114.     # 主循环
  115.     loop do
  116.       # 刷新游戏画面
  117.       Graphics.update
  118.       # 刷新输入信息
  119.       Input.update
  120.       # 刷新画面
  121.       update
  122.       # 如果画面被切换就中断循环
  123.       if $scene != self
  124.         break
  125.       end
  126.     end
  127.     # 装备过渡
  128.     Graphics.freeze
  129.     # 释放命令窗口
  130.     @command_window.dispose
  131.     # 释放标题图形
  132.     @sprite.bitmap.dispose
  133.     @sprite.dispose
  134.   end
  135. end

  136. #==============================================================================
  137. # ■ Window_SaveFile
  138. #------------------------------------------------------------------------------
  139. #  显示存档以及读档画面、保存文件的窗口。
  140. #==============================================================================

  141. class Window_SaveFile < Window_Selectable
  142.   #--------------------------------------------------------------------------
  143.   # ● 初始化对像
  144.   #     file_index : 存档文件的索引 (0~3)
  145.   #     filename   : 文件名
  146.   #--------------------------------------------------------------------------
  147.   def initialize
  148.     super(0, 64*3, 640, 104)
  149.     self.contents = Bitmap.new(width - 32, height - 32)
  150.     @max_item = 1
  151.     @filename = "Save.rxdata"
  152.     @time_stamp = Time.at(0)
  153.     @file_exist = FileTest.exist?(@filename)
  154.     if @file_exist
  155.       file = File.open(@filename, "r")
  156.       @time_stamp = file.mtime
  157.       @characters = Marshal.load(file)
  158.       @frame_count = Marshal.load(file)
  159.       @game_system = Marshal.load(file)
  160.       @game_switches = Marshal.load(file)
  161.       @game_variables = Marshal.load(file)
  162.       @total_sec = @frame_count / Graphics.frame_rate
  163.       file.close
  164.     end
  165.     refresh
  166.   end
  167.   #--------------------------------------------------------------------------
  168.   # ● 刷新
  169.   #--------------------------------------------------------------------------
  170.   def refresh
  171.     self.contents.clear
  172.     # 描绘文件编号
  173.     self.contents.font.color = normal_color
  174.     self.contents.draw_text(4, 0, 600, 32, "文件")
  175.     # 存档文件存在的情况下
  176.     if @file_exist
  177.       # 描绘角色
  178.       for i in [email protected]
  179.         bitmap = RPG::Cache.character(@characters[i][0], @characters[i][1])
  180.         cw = bitmap.rect.width / 4
  181.         ch = bitmap.rect.height / 4
  182.         src_rect = Rect.new(0, 0, cw, ch)
  183.         x = 300 - @characters.size * 32 + i * 64 - cw / 2
  184.         self.contents.blt(x, 68 - ch, bitmap, src_rect)
  185.       end
  186.       # 描绘游戏时间
  187.       hour = @total_sec / 60 / 60
  188.       min = @total_sec / 60 % 60
  189.       sec = @total_sec % 60
  190.       time_string = sprintf("%02d:%02d:%02d", hour, min, sec)
  191.       self.contents.font.color = normal_color
  192.       self.contents.draw_text(4, 8, 600, 32, time_string, 2)
  193.       # 描绘时间标记
  194.       self.contents.font.color = normal_color
  195.       time_string = @time_stamp.strftime("%Y/%m/%d %H:%M")
  196.       self.contents.draw_text(4, 40, 600, 32, time_string, 2)
  197.     end
  198.   end
  199.   #--------------------------------------------------------------------------
  200.   # ● 刷新光标矩形
  201.   #--------------------------------------------------------------------------
  202.   def update_cursor_rect
  203.     self.cursor_rect.set(0, 0, contents.text_size("文件").width + 8, 32)
  204.   end
  205. end
  206. #==============================================================================
  207. # ■ Scene_File
  208. #------------------------------------------------------------------------------
  209. #  存档画面及读档画面的超级类。
  210. #==============================================================================

  211. class Scene_File
  212.   #--------------------------------------------------------------------------
  213.   # ● 初始化对像
  214.   #     help_text : 帮助窗口显示的字符串
  215.   #--------------------------------------------------------------------------
  216.   def initialize(help_text)
  217.     @help_text = help_text
  218.   end
  219.   #--------------------------------------------------------------------------
  220.   # ● 主处理
  221.   #--------------------------------------------------------------------------
  222.   def main
  223.     # 生成帮助窗口
  224.     @help_window = Window_Help.new
  225.     @help_window.y = 64*2
  226.     @help_window.set_text(@help_text)
  227.     # 生成存档文件窗口
  228.     @savefile_windows = Window_SaveFile.new
  229.    
  230.     # 执行过渡
  231.     Graphics.transition
  232.     # 主循环
  233.     loop do
  234.       # 刷新游戏画面
  235.       Graphics.update
  236.       # 刷新输入信息
  237.       Input.update
  238.       # 刷新画面
  239.       update
  240.       # 如果画面被切换的话就中断循环
  241.       if $scene != self
  242.         break
  243.       end
  244.     end
  245.     # 准备过渡
  246.     Graphics.freeze
  247.     # 释放窗口
  248.     @help_window.dispose
  249.     @savefile_windows.dispose
  250.   end
  251.   #--------------------------------------------------------------------------
  252.   # ● 刷新画面
  253.   #--------------------------------------------------------------------------
  254.   def update
  255.     # 刷新窗口
  256.     @help_window.update
  257.     @savefile_windows.update
  258.     # 按下 C 键的情况下
  259.     if Input.trigger?(Input::C)
  260.       # 调用过程 on_decision (定义继承目标)
  261.       on_decision("Save.rxdata")
  262.       return
  263.     end
  264.     # 按下 B 键的情况下
  265.     if Input.trigger?(Input::B)
  266.       # 调用过程 on_cancel (定义继承目标)
  267.       on_cancel
  268.       return
  269.     end
  270.   end
  271. end

  272. #==============================================================================
  273. # ■ Scene_Save
  274. #------------------------------------------------------------------------------
  275. #  处理存档画面的类。
  276. #==============================================================================

  277. class Scene_Save < Scene_File
  278.   #--------------------------------------------------------------------------
  279.   # ● 初始化对像
  280.   #--------------------------------------------------------------------------
  281.   def initialize
  282.     super("要保存文件吗?")
  283.   end
  284.   def main
  285.     map = Spriteset_Map.new
  286.     super
  287.     map.dispose
  288.   end
  289. end

复制代码

点评

哈哈我打了白字所以比你慢  发表于 2014-7-19 12:41
哈哈哈我比你快  发表于 2014-7-19 12:40

评分

参与人数 1星屑 +150 收起 理由
RyanBern + 150 认可答案

查看全部评分

回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
75
在线时间
27 小时
注册时间
2014-7-19
帖子
110
4
 楼主| 发表于 2014-7-19 12:49:19 | 只看该作者
恐惧剑刃 发表于 2014-7-19 12:38
找到Scene_Title
默认32行一直到# 演奏标题 BGM中间删掉替换为只能帮你到这儿了。。。

好像不行
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
75
在线时间
27 小时
注册时间
2014-7-19
帖子
110
5
 楼主| 发表于 2014-7-19 12:52:45 | 只看该作者
恐惧剑刃 发表于 2014-7-19 12:38
找到Scene_Title
默认32行一直到# 演奏标题 BGM中间删掉替换为只能帮你到这儿了。。。

我是说,如果没有存档直接开始游戏,如果有存档就进那一个,存档时也只能存一个

点评

3L已回复请查收  发表于 2014-7-19 13:59
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-18 20:19

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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