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

Project1

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

[RMXP发布] 新手翻译标题窗口有错的请前辈指出

[复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
31 小时
注册时间
2014-2-20
帖子
87
跳转到指定楼层
1
发表于 2014-2-22 23:28:46 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
#==============================================================================
# ■ Scene_Title
#------------------------------------------------------------------------------
#  处理标题画面的类。
#==============================================================================

class Scene_Title
#class处理某类 Scene_Title处理标题画面
  #--------------------------------------------------------------------------
  # ● 住处理
  #--------------------------------------------------------------------------
  def main#def定义main
    # 战斗测试的情况下
    if $BTEST#如果在战斗测试的情况下
      battle_test#显示战斗者
      return#刷新
    end#结束
    # 载入数据库(数据库文件一般会在Data文件夹找到)
    $data_actors        = load_data("Data/Actors.rxdata")#载入角色数据库
    $data_classes       = load_data("Data/Classes.rxdata")#载入职业数据库
    $data_skills        = load_data("Data/Skills.rxdata")#载入特技数据库
    $data_items         = load_data("Data/Items.rxdata")#载入物品数据库
    $data_weapons       = load_data("Data/Weapons.rxdata")#载入武器数据库
    $data_armors        = load_data("Data/Armors.rxdata")#载入防具数据库
    $data_enemies       = load_data("Data/Enemies.rxdata")#载入敌人数据库
    $data_troops        = load_data("Data/Troops.rxdata")#载入队伍数据库
    $data_states        = load_data("Data/States.rxdata")#载入状态数据库
    $data_animations    = load_data("Data/Animations.rxdata")#载入动画数据库
    $data_tilesets      = load_data("Data/Tilesets.rxdata")#载入图块数据库
    $data_common_events = load_data("Data/CommonEvents.rxdata")#载入公共事件数据库
    $data_system        = load_data("Data/System.rxdata")#载入系统数据库
    # 生成系统对像
    $game_system = Game_System.new
    # 生成标题图形
    @sprite = Sprite.new
    @sprite.bitmap = RPG::Cache.title($data_system.title_name)
    # 生成命令窗口
    s1 = "新游戏"
    s2 = "继续"
    s3 = "退出"
    @command_window = Window_Command.new(192, [s1, s2, s3])#调用一般的命令选择行窗口
    @command_window.back_opacity = 160#窗口透明度
    @command_window.x = 320 - @command_window.width / 2#窗口x-高除2
    @command_window.y = 288#窗口y
    # 判定继续的有效性
    # 存档文件一个也不存在的时候也调查
    # 有効为 @continue_enabled 为 true、無効为 false
    @continue_enabled = false # 判定存档假的情况
    for i in 0..3 # 循环检查存档0,1,2,3
      if FileTest.exist?("Save#{i+1}.rxdata")#载入存档数据库
        @continue_enabled = true# 判定存档真的情况
      end#结束
    end#结束
    # 继续为有效的情况下、光标停止在继续上
    # 无效的情况下、继续的文字显示为灰色
    if @continue_enabled#如果继续为有效的情况下
      @command_window.index = 1#光标停止在第一位上
    else#除此之外
      @command_window.disable_item(1)#光标停止在第一位上文字显示为灰色
    end#结束
    # 演奏标题 BGM
    $game_system.bgm_play($data_system.title_bgm)#载入BGM
    # 停止演奏 ME、BGS
    Audio.me_stop
    Audio.bgs_stop
    # 执行过渡
    Graphics.transition
    # 主循环
    loop do
      # 刷新游戏画面
      Graphics.update
      # 刷新输入信息
      Input.update
      # 刷新画面
      update
      # 如果画面被切换就中断循环
      if $scene != self
        break
      end
    end
    # 装备过渡
    Graphics.freeze
    # 释放命令窗口
    @command_window.dispose
    # 释放标题图形
    @sprite.bitmap.dispose # 释放精灵就会消失
    @sprite.dispose
  end

点评

厉害,有耐心,有毅力,有能力,加油,你,会成为脚本大师的!  发表于 2014-2-23 10:13

Lv5.捕梦者

梦石
0
星屑
33482
在线时间
5108 小时
注册时间
2012-11-19
帖子
4878

开拓者

2
发表于 2014-2-23 09:23:41 | 只看该作者
本帖最后由 芯☆淡茹水 于 2014-2-23 14:23 编辑

battle_test#调用方法:battle_test
@command_window.x = 320 - @command_window.width / 2#窗口左右居中。
@continue_enabled = false # 赋值 @continue_enabled 为 false
if FileTest.exist?("Save#{i+1}.rxdata")#如果有存档的情况下
xp vx va mv  va mz 各类型脚本/插件定制
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
31 小时
注册时间
2014-2-20
帖子
87
3
 楼主| 发表于 2014-2-23 17:26:05 | 只看该作者
  #--------------------------------------------------------------------------
  # ● 刷新画面
  #--------------------------------------------------------------------------
  def update#定义刷新窗口
    # 刷新命令窗口
    @command_window.update#调用一般的命令选择行窗口的刷新
    # 按下 C 键的情况下
    if Input.trigger?(Input::C)#当按下C键的情况下至于C键是什么键呢?
      #运行游戏按加F1键在游戏手柄中你会发现是回车键空格键和C键都是C键
      #大家想制作更多键的功能吗?这个可是很有用处哦!
      # 命令窗口的光标位置的分支
      case @command_window.index#光标位置的分支就像事件指令里的选择项功能差不多。index是指光标
      when 0  # 新游戏
        command_new_game# 新游戏命令代入
      when 1  # 继续
        command_continue# 继续命令代入
      when 2  # 退出
        command_shutdown # 退出命令代入
      end# 结束
    end# 这里要注意有多少选择项就有多少结束
  end#
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
3583
在线时间
3065 小时
注册时间
2011-11-17
帖子
980
4
发表于 2014-2-23 19:53:47 | 只看该作者
本帖最后由 yagami 于 2014-2-23 20:01 编辑

  if $BTEST#如果在战斗测试的情况下
      battle_test#显示战斗者
      return#刷新
    end#结束
rutern是 返回的意思 这句话的用意在于 如果战斗测试 执行battle_test 方法   不会执行后面的代码 直接返回了并不是刷新
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
31 小时
注册时间
2014-2-20
帖子
87
5
 楼主| 发表于 2014-2-23 20:51:23 | 只看该作者
yagami 发表于 2014-2-23 19:53
if $BTEST#如果在战斗测试的情况下
      battle_test#显示战斗者
      return#刷新

谢谢修正
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
31 小时
注册时间
2014-2-20
帖子
87
6
 楼主| 发表于 2014-2-23 20:58:47 | 只看该作者
    前面我们讲到数据库的载入
    $data_skills        = load_data("Data/Skills.rxdata")#载入特技数据库
    $data_items         = load_data("Data/Items.rxdata")#载入物品数据库
    $data_weapons       = load_data("Data/Weapons.rxdata")#载入武器数据库
    $data_armors        = load_data("Data/Armors.rxdata")#载入防具数据库
    $data_enemies       = load_data("Data/Enemies.rxdata")#载入敌人数据库
    $data_troops        = load_data("Data/Troops.rxdata")#载入队伍数据库
    $data_states        = load_data("Data/States.rxdata")#载入状态数据库
    $data_animations    = load_data("Data/Animations.rxdata")#载入动画数据库
    $data_tilesets      = load_data("Data/Tilesets.rxdata")#载入图块数据库
其实这些东西没必要在这里载入我们把他全部剪切Game_Map
def initialize
    @map_id = 0
    @display_x = 0
    @display_y = 0
end
就变成这样
def initialize
    @map_id = 0
    @display_x = 0
    @display_y = 0
    $data_skills        = load_data("Data/Skills.rxdata")
    $data_items         = load_data("Data/Items.rxdata")
    $data_weapons       = load_data("Data/Weapons.rxdata")
    $data_armors        = load_data("Data/Armors.rxdata")
    $data_enemies       = load_data("Data/Enemies.rxdata")
    $data_troops        = load_data("Data/Troops.rxdata")
    $data_states        = load_data("Data/States.rxdata")
    $data_animations    = load_data("Data/Animations.rxdata")
    $data_tilesets      = load_data("Data/Tilesets.rxdata")
   end
意思就是进入地图后在载入这些东西。
这样游戏就不会那么卡了。
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
3583
在线时间
3065 小时
注册时间
2011-11-17
帖子
980
7
发表于 2014-2-23 21:07:51 | 只看该作者
啊兴 发表于 2014-2-23 20:58
前面我们讲到数据库的载入
    $data_skills        = load_data("Data/Skills.rxdata")#载入特技数据 ...

你这样效率差 titile里加载的话 只加载一次足矣 你放到map的初始化里 每次生成map都要重新加载 这是没必要的性能开销 从战斗场景切换到地图场景 就要生成一个新的map对象 你自己想想 会增加多少开销
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
31 小时
注册时间
2014-2-20
帖子
87
8
 楼主| 发表于 2014-2-23 21:24:33 | 只看该作者
yagami 发表于 2014-2-23 21:07
你这样效率差 titile里加载的话 只加载一次足矣 你放到map的初始化里 每次生成map都要重新加载 这是没必 ...

我每次进入游戏的时候都觉得卡,估计是加载这些东西的缘故不知道如何才能让他不卡。
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
3583
在线时间
3065 小时
注册时间
2011-11-17
帖子
980
9
发表于 2014-2-23 21:29:18 | 只看该作者
啊兴 发表于 2014-2-23 21:24
我每次进入游戏的时候都觉得卡,估计是加载这些东西的缘故不知道如何才能让他不卡。 ...

就是因为开始游戏要加载很多东西 所以卡 这样的好处是 上手卡一次 后面流畅 把这种事情一次性的事情都开始做掉 换来后面的流畅 是划算的 你写map里 把应该做一次的事情 做了无数次

点评

我明白了,万分感谢  发表于 2014-2-23 22:31
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
31 小时
注册时间
2014-2-20
帖子
87
10
 楼主| 发表于 2014-2-23 21:31:06 | 只看该作者
从数据库的载入我们明白了这些数据都是在Data文件夹里,我们就有样学样在这个地方可以看到
for i in 0..3 # 循环检查存档0,1,2,3
      if FileTest.exist?("Save#{i+1}.rxdata")#载入存档数据库
        @continue_enabled = true# 判定存档真的情况
      end#结束
全局搜索全部Save#把他改成Save/Save#让后在创建一个Save文件夹意思就是把他放进Save文件夹里,当然不能改成中文我试过也许rxdata不支持吧!嘻嘻。。
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-26 11:20

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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