查看: 4430|回复: 2

[原创发布] 仿 XAS 3.82 的动态式标题

[复制链接]
梦石
0
星屑
3069
在线时间
1054 小时
注册时间
2011-8-16
回帖
223
发表于 2012-10-7 14:53:54 | 显示全部楼层 |阅读模式

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

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

×
本帖最后由 失落的乐章 于 2018-10-7 18:58 编辑

时隔六年的更新……

各功能测试通过。

[pre lang="ruby"]=begin
================================================================================

滚动图片式标题

________________________________________________________________________________

【版本历史】

版本      日期            备注
-----     -----------     ----------------------------------------------------
2.0   ... 2018.10.07 ...  脚本结构优化;代码规范化;增加范例工程
1.0   ... 2012.10.07 ...  最初版本

________________________________________________________________________________

【简介】
仿照 XAS 3.82 的标题画面,在标题中加入全景图及雾图形,增强视觉效果。

________________________________________________________________________________

【使用方式】

替换默认的 Scene_Title,或插入到 Main 之前。

________________________________________________________________________________

【作者】

失落的乐章

================================================================================
=end

module SGSTITLE

  # 固定标题图的路径(若为 nil 则采用数据库中设置的标题画面图形)
  TITLE = nil
  # 固定标题图显示方式(0:在滚动背景图与雾图形之下;
  # 1:在背景图之上,雾图形之下;2:在滚动背景图与雾图形之上)
  TYPE = 1
  # 固定标题图的原点
  TITLE_OX = 0
  TITLE_OY = 0
  # 固定标题图的坐标
  TITLE_X = 50
  TITLE_Y = 111
  
  # 滚动背景图的路径
  PLANE = "Graphics/Panoramas/001-Sky01.jpg"
  # 滚动背景图不透明度
  PLANE_OPACITY = 120
  # 背景图滚动速度
  PLANE_OX = 1
  PLANE_OY = 1
  
  # 雾图形的路径
  FOG = "Graphics/Fogs/001-Fog01.png"
  # 雾图形不透明度
  FOG_OPACITY = 50
  # 雾图形合成方式(0:正常;1:加法;2:减法)
  FOG_BLEND_TYPE = 1
  # 雾图形滚动速度
  FOG_OX = -1
  FOG_OY =  1
  
end

class Scene_Title
  include SGSTITLE
   def main
    if $BTEST
      battle_test
      return
    end
    $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
    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
    @command_window.y = 288
    @continue_enabled = false
    @plane = Plane.new
    @plane.bitmap = Bitmap.new(PLANE)
    @plane.z = 2
    @fog = Plane.new
    @fog.bitmap = Bitmap.new(FOG)
    @fog.opacity = FOG_OPACITY
    @fog.blend_type = FOG_BLEND_TYPE
    @fog.z = 4
    @title = Sprite.new
    @title.bitmap = TITLE ? Bitmap.new(TITLE) : RPG::Cache.title($data_system.title_name)
    @title.ox = TITLE_OX
    @title.oy = TITLE_OY
    @title.x = TITLE_X
    @title.y = TITLE_Y
    @title.z = case TYPE
               when 0 then 1
               when 1 then 3
               when 2 then 5
               else 5
               end
    for i in 0..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
    $game_system.bgm_play($data_system.title_bgm)
    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
    @plane.bitmap.dispose
    @plane.dispose
    @fog.bitmap.dispose   
    @fog.dispose
    @title.bitmap.dispose
    @title.dispose   
  end
  def update
    @plane.ox += PLANE_OX
    @plane.oy += PLANE_OY
    @fog.ox += FOG_OX
    @fog.oy += FOG_OY
    @command_window.update
    if Input.trigger?(Input::C)
      case @command_window.index
      when 0
        command_new_game
      when 1
        command_continue
      when 2
        command_shutdown
      end
    end
  end
  def command_new_game
    $game_system.se_play($data_system.decision_se)
    Audio.bgm_stop
    Graphics.frame_count = 0
    $game_temp          = Game_Temp.new
    $game_system        = Game_System.new
    $game_switches      = Game_Switches.new
    $game_variables     = Game_Variables.new
    $game_self_switches = Game_SelfSwitches.new
    $game_screen        = Game_Screen.new
    $game_actors        = Game_Actors.new
    $game_party         = Game_Party.new
    $game_troop         = Game_Troop.new
    $game_map           = Game_Map.new
    $game_player        = Game_Player.new
    $game_party.setup_starting_members
    $game_map.setup($data_system.start_map_id)
    $game_player.moveto($data_system.start_x, $data_system.start_y)
    $game_player.refresh
    $game_map.autoplay
    $game_map.update
    $scene = Scene_Map.new
  end
  def command_continue
    unless @continue_enabled
      $game_system.se_play($data_system.buzzer_se)
      return
    end
    $game_system.se_play($data_system.decision_se)
    $scene = Scene_Load.new
  end
  def command_shutdown
    $game_system.se_play($data_system.decision_se)
    Audio.bgm_fade(800)
    Audio.bgs_fade(800)
    Audio.me_fade(800)
    $scene = nil
  end
  def battle_test
    $data_actors        = load_data("Data/BT_Actors.rxdata")
    $data_classes       = load_data("Data/BT_Classes.rxdata")
    $data_skills        = load_data("Data/BT_Skills.rxdata")
    $data_items         = load_data("Data/BT_Items.rxdata")
    $data_weapons       = load_data("Data/BT_Weapons.rxdata")
    $data_armors        = load_data("Data/BT_Armors.rxdata")
    $data_enemies       = load_data("Data/BT_Enemies.rxdata")
    $data_troops        = load_data("Data/BT_Troops.rxdata")
    $data_states        = load_data("Data/BT_States.rxdata")
    $data_animations    = load_data("Data/BT_Animations.rxdata")
    $data_tilesets      = load_data("Data/BT_Tilesets.rxdata")
    $data_common_events = load_data("Data/BT_CommonEvents.rxdata")
    $data_system        = load_data("Data/BT_System.rxdata")
    Graphics.frame_count = 0
    $game_temp          = Game_Temp.new
    $game_system        = Game_System.new
    $game_switches      = Game_Switches.new
    $game_variables     = Game_Variables.new
    $game_self_switches = Game_SelfSwitches.new
    $game_screen        = Game_Screen.new
    $game_actors        = Game_Actors.new
    $game_party         = Game_Party.new
    $game_troop         = Game_Troop.new
    $game_map           = Game_Map.new
    $game_player        = Game_Player.new
    $game_party.setup_battle_test_members
    $game_temp.battle_troop_id = $data_system.test_troop_id
    $game_temp.battle_can_escape = true
    $game_map.battleback_name = $data_system.battleback_name
    $game_system.se_play($data_system.battle_start_se)
    $game_system.bgm_play($game_system.battle_bgm)
    $scene = Scene_Battle.new
  end
end[/pre]

范例工程:
动态标题(新).zip (212.99 KB, 下载次数: 213)

评分

参与人数 3星屑 +2 赞 +11 收起 理由
水母书亚 + 1 塞糖
论坛助理 + 10 主站发布
satgo1546 + 2 没有范例工程么

查看全部评分

梦石
0
星屑
3069
在线时间
1054 小时
注册时间
2011-8-16
回帖
223
 楼主| 发表于 2018-10-7 19:06:29 | 显示全部楼层
时隔六年,这个脚本终于有范例工程了。不过脚本本身技术含量不高,以后估计也不会再更新了。
回复

使用道具 举报

梦石
0
星屑
20
在线时间
2 小时
注册时间
2018-11-4
回帖
1
发表于 2018-11-4 11:46:02 | 显示全部楼层
这个脚本不错!标题好看多了!
回复

使用道具 举报

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

本版积分规则

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

在本版发帖返回顶部