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

Project1

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

一个脚本问题

 关闭 [复制链接]

Lv1.梦旅人

kissye的宠物<

梦石
0
星屑
61
在线时间
1563 小时
注册时间
2008-8-11
帖子
6174

贵宾

跳转到指定楼层
1
发表于 2008-10-4 23:37:46 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
  1. #==============================================================================
  2. # 本脚本来自www.66RPG.com,使用和转载请保留此信息
  3. #==============================================================================

  4. #==============================================================================
  5. # ■ Scene_Title
  6. #------------------------------------------------------------------------------
  7. #  タイトル画面の処理を行うクラスです。
  8. #==============================================================================

  9. class Scene_Title < Scene_Base
  10.   WEATHER = 4     # 使用自定义效果(0:无,1:雨,2:暴风雨,3:雪,4:自定义)
  11.   MAXNUMBER = 18  # 天气图片数量
  12.   
  13.   WEATHER_FILE = "Graphics/Pictures/Title_starlong.png"
  14.   # 自定义图片路径,这个文件是流星雨
  15.   
  16.   BLEND_TYPE = 1 # 合成方式(0:普通,1:加法,2:减法)
  17.   WEATHER_X = 5 # X方向每回合减少象素
  18.   WEATHER_Y = 5 # Y方向每回合减少象素
  19.   WEATHER_OPACITY = 2 #每回合减低透明度
  20.   START_OPACITY = 200 #出现时的透明度
  21.   RAND_X = 1200 # 随机X范围
  22.   RAND_Y = 600 # 随机Y范围
  23.   HEIGHT = -600 # 出现时候的屏幕Y
  24.   WIDTH = 100 # 出现时候的屏幕X
  25.   #--------------------------------------------------------------------------
  26.   # ● メイン処理
  27.   #--------------------------------------------------------------------------
  28.   def main
  29.     if $BTEST                         # 戦闘テストの場合
  30.       battle_test                     # 戦闘テストの開始処理
  31.     else                              # 通常のプレイの場合
  32.       super                           # 本来のメイン処理
  33.     end
  34.   end
  35.   #--------------------------------------------------------------------------
  36.   # ● 開始処理
  37.   #--------------------------------------------------------------------------
  38.   def start
  39.     super
  40.     load_database                     # データベースをロード
  41.     create_game_objects               # ゲームオブジェクトを作成
  42.     check_continue                    # コンティニュー有効判定
  43.     create_title_graphic   # タイトルグラフィックを作成
  44.     @ox = 0
  45.     @oy = 0
  46.     color1 = Color.new(255, 255, 255, 255)
  47.     color2 = Color.new(255, 255, 255, 128)
  48.     @rain_bitmap = Bitmap.new(7, 56)
  49.     for i in 0..6
  50.       @rain_bitmap.fill_rect(6-i, i*8, 1, 8, color1)
  51.     end
  52.     @storm_bitmap = Bitmap.new(34, 64)
  53.     for i in 0..31
  54.       @storm_bitmap.fill_rect(33-i, i*2, 1, 2, color2)
  55.       @storm_bitmap.fill_rect(32-i, i*2, 1, 2, color1)
  56.       @storm_bitmap.fill_rect(31-i, i*2, 1, 2, color2)
  57.     end
  58.     @snow_bitmap = Bitmap.new(6, 6)
  59.     @snow_bitmap.fill_rect(0, 1, 6, 4, color2)
  60.     @snow_bitmap.fill_rect(1, 0, 4, 6, color2)
  61.     @snow_bitmap.fill_rect(1, 2, 4, 2, color1)
  62.     @snow_bitmap.fill_rect(2, 1, 2, 4, color1)
  63.     @sprites = []
  64.     for i in 1..40
  65.       sprite = Sprite.new
  66.       case WEATHER
  67.       when 1
  68.         sprite.bitmap = @rain_bitmap
  69.       when 2
  70.         sprite.bitmap = @storm_bitmap
  71.       when 3
  72.         sprite.bitmap = @snow_bitmap
  73.       when 4
  74.         sprite.bitmap = Bitmap.new(WEATHER_FILE)
  75.       end
  76.       sprite.z = 1000
  77.       sprite.x = -1000
  78.       sprite.y = -1000
  79.       sprite.visible = (i <= MAXNUMBER)
  80.       sprite.blend_type = BLEND_TYPE
  81.       sprite.opacity = START_OPACITY
  82.       @sprites.push(sprite)
  83.     end
  84.     weather_update
  85.     create_command_window             # コマンドウィンドウを作成
  86.     play_title_music                  # タイトル画面の音楽を演奏
  87.   end
  88.   #--------------------------------------------------------------------------
  89.   # ● トランジション実行
  90.   #--------------------------------------------------------------------------
  91.   def perform_transition
  92.     Graphics.transition(20)
  93.   end
  94.   #--------------------------------------------------------------------------
  95.   # ● 開始後処理
  96.   #--------------------------------------------------------------------------
  97.   def post_start
  98.     super
  99.     open_command_window
  100.   end
  101.   #--------------------------------------------------------------------------
  102.   # ● 終了前処理
  103.   #--------------------------------------------------------------------------
  104.   def pre_terminate
  105.     super
  106.     close_command_window
  107.   end
  108.   #--------------------------------------------------------------------------
  109.   # ● 終了処理
  110.   #--------------------------------------------------------------------------
  111.   def terminate
  112.     super
  113.     dispose_command_window
  114.     snapshot_for_background
  115.     @sprite.bitmap.dispose
  116.     @sprite.dispose
  117.     for sprite in @sprites
  118.       sprite.dispose
  119.     end
  120.     @rain_bitmap.dispose
  121.     @storm_bitmap.dispose
  122.     @snow_bitmap.dispose
  123.     dispose_title_graphic
  124.   end
  125.   
  126.   def weather_update
  127.     return if WEATHER == 0
  128.     for i in 1..MAXNUMBER
  129.       sprite = @sprites[i]
  130.       if sprite == nil
  131.         break
  132.       end
  133.       if WEATHER == 1
  134.         sprite.x -= 2
  135.         sprite.y += 16
  136.         sprite.opacity -= 8
  137.       end
  138.       if WEATHER == 2
  139.         sprite.x -= 8
  140.         sprite.y += 16
  141.         sprite.opacity -= 12
  142.       end
  143.       if WEATHER == 3
  144.         sprite.x -= 2
  145.         sprite.y += 8
  146.         sprite.opacity -= 8
  147.       end
  148.       if WEATHER == 4
  149.         sprite.x -= WEATHER_X
  150.         sprite.y += WEATHER_Y
  151.         sprite.opacity -= WEATHER_OPACITY
  152.       end
  153.       x = sprite.x - @ox
  154.       y = sprite.y - @oy
  155.       if sprite.opacity < 32 or x < -100 or x > 750 or y < -1000 or y > 500
  156.         sprite.x = rand(RAND_X) + WIDTH + @ox
  157.         sprite.y = rand(RAND_Y) + HEIGHT + @oy
  158.         sprite.opacity = START_OPACITY
  159.       end
  160.     end
  161.   end
  162.   #--------------------------------------------------------------------------
  163.   # ● フレーム更新
  164.   #--------------------------------------------------------------------------
  165.   def update
  166.     super
  167.     @command_window.update
  168.     if Input.trigger?(Input::C)
  169.       case @command_window.index
  170.       when 0    # ニューゲーム
  171.         command_new_game
  172.       when 1    # コンティニュー
  173.         command_continue
  174.       when 2    # シャットダウン
  175.         command_shutdown
  176.       end
  177.     end
  178.     weather_update
  179.   end
  180.   #--------------------------------------------------------------------------
  181.   # ● データベースのロード
  182.   #--------------------------------------------------------------------------
  183.   def load_database
  184.     $data_actors        = load_data("Data/Actors.rvdata")
  185.     $data_classes       = load_data("Data/Classes.rvdata")
  186.     $data_skills        = load_data("Data/Skills.rvdata")
  187.     $data_items         = load_data("Data/Items.rvdata")
  188.     $data_weapons       = load_data("Data/Weapons.rvdata")
  189.     $data_armors        = load_data("Data/Armors.rvdata")
  190.     $data_enemies       = load_data("Data/Enemies.rvdata")
  191.     $data_troops        = load_data("Data/Troops.rvdata")
  192.     $data_states        = load_data("Data/States.rvdata")
  193.     $data_animations    = load_data("Data/Animations.rvdata")
  194.     $data_common_events = load_data("Data/CommonEvents.rvdata")
  195.     $data_system        = load_data("Data/System.rvdata")
  196.     $data_areas         = load_data("Data/Areas.rvdata")
  197.   end
  198.   #--------------------------------------------------------------------------
  199.   # ● 戦闘テスト用データベースのロード
  200.   #--------------------------------------------------------------------------
  201.   def load_bt_database
  202.     $data_actors        = load_data("Data/BT_Actors.rvdata")
  203.     $data_classes       = load_data("Data/BT_Classes.rvdata")
  204.     $data_skills        = load_data("Data/BT_Skills.rvdata")
  205.     $data_items         = load_data("Data/BT_Items.rvdata")
  206.     $data_weapons       = load_data("Data/BT_Weapons.rvdata")
  207.     $data_armors        = load_data("Data/BT_Armors.rvdata")
  208.     $data_enemies       = load_data("Data/BT_Enemies.rvdata")
  209.     $data_troops        = load_data("Data/BT_Troops.rvdata")
  210.     $data_states        = load_data("Data/BT_States.rvdata")
  211.     $data_animations    = load_data("Data/BT_Animations.rvdata")
  212.     $data_common_events = load_data("Data/BT_CommonEvents.rvdata")
  213.     $data_system        = load_data("Data/BT_System.rvdata")
  214.   end
  215.   #--------------------------------------------------------------------------
  216.   # ● 各種ゲームオブジェクトの作成
  217.   #--------------------------------------------------------------------------
  218.   def create_game_objects
  219.     $game_temp          = Game_Temp.new
  220.     $game_message       = Game_Message.new
  221.     $game_system        = Game_System.new
  222.     $game_switches      = Game_Switches.new
  223.     $game_variables     = Game_Variables.new
  224.     $game_self_switches = Game_SelfSwitches.new
  225.     $game_actors        = Game_Actors.new
  226.     $game_party         = Game_Party.new
  227.     $game_troop         = Game_Troop.new
  228.     $game_map           = Game_Map.new
  229.     $game_player        = Game_Player.new
  230.   end
  231.   #--------------------------------------------------------------------------
  232.   # ● コンティニュー有効判定
  233.   #--------------------------------------------------------------------------
  234.   def check_continue
  235.     @continue_enabled = (Dir.glob('Save*.rvdata').size > 0)
  236.   end
  237.   #--------------------------------------------------------------------------
  238.   # ● タイトルグラフィックの作成
  239.   #--------------------------------------------------------------------------
  240.   def create_title_graphic
  241.     @sprite = Sprite.new
  242.     @sprite.bitmap = Cache.system("Title")
  243.   end
  244.   #--------------------------------------------------------------------------
  245.   # ● タイトルグラフィックの解放
  246.   #--------------------------------------------------------------------------
  247.   def dispose_title_graphic
  248.     @sprite.bitmap.dispose
  249.     @sprite.dispose
  250.   end
  251.   #--------------------------------------------------------------------------
  252.   # ● コマンドウィンドウの作成
  253.   #--------------------------------------------------------------------------
  254.   def create_command_window
  255.     s1 = Vocab::new_game
  256.     s2 = Vocab::continue
  257.     s3 = Vocab::shutdown
  258.     @command_window = Window_Command.new(172, [s1, s2, s3])
  259.     @command_window.x = (544 - @command_window.width) / 2
  260.     @command_window.y = 288
  261.     if @continue_enabled                    # コンティニューが有効な場合
  262.       @command_window.index = 1             # カーソルを合わせる
  263.     else                                    # 無効な場合
  264.       @command_window.draw_item(1, false)   # コマンドを半透明表示にする
  265.     end
  266.     @command_window.openness = 0
  267.     @command_window.open
  268.   end
  269.   #--------------------------------------------------------------------------
  270.   # ● コマンドウィンドウの解放
  271.   #--------------------------------------------------------------------------
  272.   def dispose_command_window
  273.     @command_window.dispose
  274.   end
  275.   #--------------------------------------------------------------------------
  276.   # ● コマンドウィンドウを開く
  277.   #--------------------------------------------------------------------------
  278.   def open_command_window
  279.     @command_window.open
  280.     begin
  281.       @command_window.update
  282.       Graphics.update
  283.     end until @command_window.openness == 255
  284.   end
  285.   #--------------------------------------------------------------------------
  286.   # ● コマンドウィンドウを閉じる
  287.   #--------------------------------------------------------------------------
  288.   def close_command_window
  289.     @command_window.close
  290.     begin
  291.       @command_window.update
  292.       Graphics.update
  293.     end until @command_window.openness == 0
  294.   end
  295.   #--------------------------------------------------------------------------
  296.   # ● タイトル画面の音楽演奏
  297.   #--------------------------------------------------------------------------
  298.   def play_title_music
  299.     $data_system.title_bgm.play
  300.     RPG::BGS.stop
  301.     RPG::ME.stop
  302.   end
  303.   #--------------------------------------------------------------------------
  304.   # ● プレイヤーの初期位置存在チェック
  305.   #--------------------------------------------------------------------------
  306.   def confirm_player_location
  307.     if $data_system.start_map_id == 0
  308.       print "プレイヤーの初期位置が設定されていません。"
  309.       exit
  310.     end
  311.   end
  312.   #--------------------------------------------------------------------------
  313.   # ● コマンド : ニューゲーム
  314.   #--------------------------------------------------------------------------
  315.   def command_new_game
  316.     confirm_player_location
  317.     Sound.play_decision
  318.     $game_party.setup_starting_members            # 初期パーティ
  319.     $game_map.setup($data_system.start_map_id)    # 初期位置のマップ
  320.     $game_player.moveto($data_system.start_x, $data_system.start_y)
  321.     $game_player.refresh
  322.     $scene = Scene_Map.new
  323.     RPG::BGM.fade(1500)
  324.     close_command_window
  325.     Graphics.fadeout(60)
  326.     Graphics.wait(40)
  327.     Graphics.frame_count = 0
  328.     RPG::BGM.stop
  329.     $game_map.autoplay
  330.   end
  331.   #--------------------------------------------------------------------------
  332.   # ● コマンド : コンティニュー
  333.   #--------------------------------------------------------------------------
  334.   def command_continue
  335.     if @continue_enabled
  336.       Sound.play_decision
  337.       $scene = Scene_File.new(false, true, false)
  338.     else
  339.       Sound.play_buzzer
  340.     end
  341.   end
  342.   #--------------------------------------------------------------------------
  343.   # ● コマンド : シャットダウン
  344.   #--------------------------------------------------------------------------
  345.   def command_shutdown
  346.     Sound.play_decision
  347.     RPG::BGM.fade(800)
  348.     RPG::BGS.fade(800)
  349.     RPG::ME.fade(800)
  350.     $scene = nil
  351.   end
  352.   #--------------------------------------------------------------------------
  353.   # ● 戦闘テスト
  354.   #--------------------------------------------------------------------------
  355.   def battle_test
  356.     load_bt_database                  # 戦闘テスト用データベースをロード
  357.     create_game_objects               # ゲームオブジェクトを作成
  358.     Graphics.frame_count = 0          # プレイ時間を初期化
  359.     $game_party.setup_battle_test_members
  360.     $game_troop.setup($data_system.test_troop_id)
  361.     $game_troop.can_escape = true
  362.     $game_system.battle_bgm.play
  363.     snapshot_for_background
  364.     $scene = Scene_Battle.new
  365.   end
  366. end


  367. #==============================================================================
  368. # 本脚本来自www.66RPG.com,使用和转载请保留此信息
  369. #==============================================================================
复制代码

用了这个脚本后,就无视了我下面改过的这个脚本····
  1. #==============================================================================
  2. # ■ Scene_Title
  3. #------------------------------------------------------------------------------
  4. #  处理标题画面的类。
  5. #==============================================================================

  6. class Scene_Title < Scene_Base
  7.   #--------------------------------------------------------------------------
  8.   # ● 主处理
  9.   #--------------------------------------------------------------------------
  10.   def main
  11.     if $BTEST                         # 战斗测试的情况下
  12.       battle_test                     # 开始战斗测试处理
  13.     else                              # 普通游戏的情况下
  14.       super                           # 原来的主处理
  15.     end
  16.   end
  17.   #--------------------------------------------------------------------------
  18.   # ● 开始处理
  19.   #--------------------------------------------------------------------------
  20.   def start
  21.     super
  22.     load_database                     # 载入数据库
  23.     create_game_objects               # 生成游戏对象
  24.     check_continue                    # 判断继续是否有效
  25.     create_title_graphic              # 生成标题画面图像
  26.     create_command_window             # 生成指令窗口
  27.     play_title_music                  # 播放标题画面音乐
  28.   end
  29.   #--------------------------------------------------------------------------
  30.   # ● 执行渐变
  31.   #--------------------------------------------------------------------------
  32.   def perform_transition
  33.     Graphics.transition(20)
  34.   end
  35.   #--------------------------------------------------------------------------
  36.   # ● 开始後处理
  37.   #--------------------------------------------------------------------------
  38.   def post_start
  39.     super
  40.     open_command_window
  41.   end
  42.   #--------------------------------------------------------------------------
  43.   # ● 结束前处理
  44.   #--------------------------------------------------------------------------
  45.   def pre_terminate
  46.     super
  47.     close_command_window
  48.   end
  49.   #--------------------------------------------------------------------------
  50.   # ● 结束处理
  51.   #--------------------------------------------------------------------------
  52.   def terminate
  53.     super
  54.     dispose_command_window
  55.     snapshot_for_background
  56.     dispose_title_graphic
  57.   end
  58.   #--------------------------------------------------------------------------
  59.   # ● 更新画面
  60.   #--------------------------------------------------------------------------
  61.   def update
  62.     super
  63.     @command_window.update
  64.     if Input.trigger?(Input::C)
  65.       case @command_window.index
  66.       when 0    #New game
  67.         command_new_game
  68.       when 1    # Continue
  69.         command_continue
  70.       when 2    # Boss Rush
  71.         command_new_game
  72.        $game_switches[1] = true
  73.       when 3    # 小游戏
  74.         command_new_game
  75.        $game_switches[2] = true
  76.       when 4    # Shutdown
  77.         command_shutdown
  78.       end
  79.     end
  80.   end
  81. end
  82.   #--------------------------------------------------------------------------
  83.   # ● 载入数据库
  84.   #--------------------------------------------------------------------------
  85.   def load_database
  86.     $data_actors        = load_data("Data/Actors.rvdata")
  87.     $data_classes       = load_data("Data/Classes.rvdata")
  88.     $data_skills        = load_data("Data/Skills.rvdata")
  89.     $data_items         = load_data("Data/Items.rvdata")
  90.     $data_weapons       = load_data("Data/Weapons.rvdata")
  91.     $data_armors        = load_data("Data/Armors.rvdata")
  92.     $data_enemies       = load_data("Data/Enemies.rvdata")
  93.     $data_troops        = load_data("Data/Troops.rvdata")
  94.     $data_states        = load_data("Data/States.rvdata")
  95.     $data_animations    = load_data("Data/Animations.rvdata")
  96.     $data_common_events = load_data("Data/CommonEvents.rvdata")
  97.     $data_system        = load_data("Data/System.rvdata")
  98.     $data_areas         = load_data("Data/Areas.rvdata")
  99.   end
  100.   #--------------------------------------------------------------------------
  101.   # ● 载入战斗测试数据库
  102.   #--------------------------------------------------------------------------
  103.   def load_bt_database
  104.     $data_actors        = load_data("Data/BT_Actors.rvdata")
  105.     $data_classes       = load_data("Data/BT_Classes.rvdata")
  106.     $data_skills        = load_data("Data/BT_Skills.rvdata")
  107.     $data_items         = load_data("Data/BT_Items.rvdata")
  108.     $data_weapons       = load_data("Data/BT_Weapons.rvdata")
  109.     $data_armors        = load_data("Data/BT_Armors.rvdata")
  110.     $data_enemies       = load_data("Data/BT_Enemies.rvdata")
  111.     $data_troops        = load_data("Data/BT_Troops.rvdata")
  112.     $data_states        = load_data("Data/BT_States.rvdata")
  113.     $data_animations    = load_data("Data/BT_Animations.rvdata")
  114.     $data_common_events = load_data("Data/BT_CommonEvents.rvdata")
  115.     $data_system        = load_data("Data/BT_System.rvdata")
  116.   end
  117.   #--------------------------------------------------------------------------
  118.   # ● 生成各种游戏对象
  119.   #--------------------------------------------------------------------------
  120.   def create_game_objects
  121.     $game_temp          = Game_Temp.new
  122.     $game_message       = Game_Message.new
  123.     $game_system        = Game_System.new
  124.     $game_switches      = Game_Switches.new
  125.     $game_variables     = Game_Variables.new
  126.     $game_self_switches = Game_SelfSwitches.new
  127.     $game_actors        = Game_Actors.new
  128.     $game_party         = Game_Party.new
  129.     $game_troop         = Game_Troop.new
  130.     $game_map           = Game_Map.new
  131.     $game_player        = Game_Player.new
  132.   end
  133.   #--------------------------------------------------------------------------
  134.   # ● 判断继续的有效性
  135.   #--------------------------------------------------------------------------
  136.   def check_continue
  137.     @continue_enabled = (Dir.glob('Save*.rvdata').size > 0)
  138.   end
  139.   #--------------------------------------------------------------------------
  140.   # ● 生成标题图形
  141.   #--------------------------------------------------------------------------
  142.   def create_title_graphic
  143.     @sprite = Sprite.new
  144.     @sprite.bitmap = Cache.system("Title")
  145.   end
  146.   #--------------------------------------------------------------------------
  147.   # ● 释放标题图形
  148.   #--------------------------------------------------------------------------
  149.   def dispose_title_graphic
  150.     @sprite.bitmap.dispose
  151.     @sprite.dispose
  152.   end
  153.   #--------------------------------------------------------------------------
  154.   # ● 生成命令窗口
  155.   #--------------------------------------------------------------------------
  156.   def create_command_window
  157.     s1 = Vocab::new_game
  158.     s2 = Vocab::continue
  159.     s3 = "Boss Rush"
  160.     s4 = "小游戏"
  161.     s5 = Vocab::shutdown
  162.     @command_window = Window_Command.new(172, [s1, s2, s3, s4, s5])
  163.     @command_window.x = (544 - @command_window.width) / 2
  164.     @command_window.y = 416 - @command_window.height - 20

  165.     if @continue_enabled                    # 如果「继续」有效
  166.       @command_window.index = 1             # 将光标移至「继续游戏」
  167.     else                                    # 否则则将「继续游戏」半透明化
  168.       @command_window.draw_item(1, false)
  169.     end
  170.     @command_window.openness = 0
  171.     @command_window.open
  172.   end
  173.   #--------------------------------------------------------------------------
  174.   # ● 释放命令窗口
  175.   #--------------------------------------------------------------------------
  176.   def dispose_command_window
  177.     @command_window.dispose
  178.   end
  179.   #--------------------------------------------------------------------------
  180.   # ● 开启命令窗口
  181.   #--------------------------------------------------------------------------
  182.   def open_command_window
  183.     @command_window.open
  184.     begin
  185.       @command_window.update
  186.       Graphics.update
  187.     end until @command_window.openness == 255
  188.   end
  189.   #--------------------------------------------------------------------------
  190.   # ● 关闭命令窗口
  191.   #--------------------------------------------------------------------------
  192.   def close_command_window
  193.     @command_window.close
  194.     begin
  195.       @command_window.update
  196.       Graphics.update
  197.     end until @command_window.openness == 0
  198.   end
  199.   #--------------------------------------------------------------------------
  200.   # ● 播放标题音乐
  201.   #--------------------------------------------------------------------------
  202.   def play_title_music
  203.     $data_system.title_bgm.play
  204.     RPG::BGS.stop
  205.     RPG::ME.stop
  206.   end
  207.   #--------------------------------------------------------------------------
  208.   # ● 检查主角初期位置是否存在
  209.   #--------------------------------------------------------------------------
  210.   def confirm_player_location
  211.     if $data_system.start_map_id == 0
  212.       print "主角初始位置未设定。"
  213.       exit
  214.     end
  215.   end
  216.   #--------------------------------------------------------------------------
  217.   # ● 命令:新游戏
  218.   #--------------------------------------------------------------------------
  219.   def command_new_game
  220.     confirm_player_location
  221.     Sound.play_decision
  222.     $game_party.setup_starting_members            # 起始队伍
  223.     $game_map.setup($data_system.start_map_id)    # 起始位置
  224.     $game_player.moveto($data_system.start_x, $data_system.start_y)
  225.     $game_player.refresh
  226.     $scene = Scene_Map.new
  227.     RPG::BGM.fade(1500)
  228.     close_command_window
  229.     Graphics.fadeout(60)
  230.     Graphics.wait(40)
  231.     Graphics.frame_count = 0
  232.     RPG::BGM.stop
  233.     $game_map.autoplay
  234.   end
  235.   #--------------------------------------------------------------------------
  236.   # ● 命令:继续游戏
  237.   #--------------------------------------------------------------------------
  238.   def command_continue
  239.     if @continue_enabled
  240.       Sound.play_decision
  241.       $scene = Scene_File.new(false, true, false)
  242.     else
  243.       Sound.play_buzzer
  244.     end
  245.   end
  246.   #--------------------------------------------------------------------------
  247.   # ● 命令:离开游戏
  248.   #--------------------------------------------------------------------------
  249.   def command_shutdown
  250.     Sound.play_decision
  251.     RPG::BGM.fade(800)
  252.     RPG::BGS.fade(800)
  253.     RPG::ME.fade(800)
  254.     $scene = nil
  255.   end
  256.   #--------------------------------------------------------------------------
  257.   # ● 战斗测试
  258.   #--------------------------------------------------------------------------
  259.   def battle_test
  260.     load_bt_database                  # 载入战斗测试数据库
  261.     create_game_objects               # 生成个各种游戏对象
  262.     Graphics.frame_count = 0          # 初始化游戏时间
  263.     $game_party.setup_battle_test_members
  264.     $game_troop.setup($data_system.test_troop_id)
  265.     $game_troop.can_escape = true
  266.     $game_system.battle_bgm.play
  267.     snapshot_for_background
  268.     $scene = Scene_Battle.new
  269.   end
复制代码

版务信息:本贴由楼主自主结贴~

Lv2.观梦者

神隐的主犯

梦石
0
星屑
299
在线时间
271 小时
注册时间
2008-2-22
帖子
7691

贵宾

2
发表于 2008-10-4 23:40:36 | 只看该作者
无视是正常的, 同一个类的相同方法定义了两次, Ruby 不支持多态的,所以, 定义同名

方法后,方法是按照 最后定义的为主。 (使用了 alias 的除外)

《天空之城 —— 破碎的命运》
回复 支持 反对

使用道具 举报

头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
50
在线时间
0 小时
注册时间
2008-9-12
帖子
953
3
发表于 2008-10-4 23:41:01 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
回复 支持 反对

使用道具 举报

Lv1.梦旅人

kissye的宠物<

梦石
0
星屑
61
在线时间
1563 小时
注册时间
2008-8-11
帖子
6174

贵宾

4
 楼主| 发表于 2008-10-4 23:42:44 | 只看该作者
以下引用八云紫于2008-10-4 15:40:36的发言:

无视是正常的, 同一个类的相同方法定义了两次, Ruby 不支持多态的,所以, 定义同名

方法后,方法是按照 最后定义的为主。 (使用了 alias 的除外)

如果我在流星脚本里改呢?
回复 支持 反对

使用道具 举报

Lv2.观梦者

神隐的主犯

梦石
0
星屑
299
在线时间
271 小时
注册时间
2008-2-22
帖子
7691

贵宾

5
发表于 2008-10-4 23:46:51 | 只看该作者
嘛, 直接把两个脚本整合了就OK了。{/hx}
系统信息:本贴由楼主认可为正确答案,66RPG感谢您的热情解答~

《天空之城 —— 破碎的命运》
回复 支持 反对

使用道具 举报

Lv1.梦旅人

kissye的宠物<

梦石
0
星屑
61
在线时间
1563 小时
注册时间
2008-8-11
帖子
6174

贵宾

6
 楼主| 发表于 2008-10-4 23:48:26 | 只看该作者
以下引用八云紫于2008-10-4 15:46:51的发言:

嘛, 直接把两个脚本整合了就OK了。

呀···就拜托你了····
{/tp}
回复 支持 反对

使用道具 举报

头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
50
在线时间
0 小时
注册时间
2008-9-12
帖子
953
7
发表于 2008-10-4 23:53:07 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
回复 支持 反对

使用道具 举报

Lv2.观梦者

神隐的主犯

梦石
0
星屑
299
在线时间
271 小时
注册时间
2008-2-22
帖子
7691

贵宾

8
发表于 2008-10-4 23:55:33 | 只看该作者
  1. #==============================================================================
  2. # 本脚本来自www.66RPG.com,使用和转载请保留此信息
  3. #==============================================================================

  4. #==============================================================================
  5. # ■ Scene_Title
  6. #------------------------------------------------------------------------------
  7. #  タイトル画面の処理を行うクラスです。
  8. #==============================================================================

  9. class Scene_Title < Scene_Base
  10.   WEATHER = 4     # 使用自定义效果(0:无,1:雨,2:暴风雨,3:雪,4:自定义)
  11.   MAXNUMBER = 18  # 天气图片数量
  12.   
  13.   WEATHER_FILE = "Graphics/Pictures/Title_starlong.png"
  14.   # 自定义图片路径,这个文件是流星雨
  15.   
  16.   BLEND_TYPE = 1 # 合成方式(0:普通,1:加法,2:减法)
  17.   WEATHER_X = 5 # X方向每回合减少象素
  18.   WEATHER_Y = 5 # Y方向每回合减少象素
  19.   WEATHER_OPACITY = 2 #每回合减低透明度
  20.   START_OPACITY = 200 #出现时的透明度
  21.   RAND_X = 1200 # 随机X范围
  22.   RAND_Y = 600 # 随机Y范围
  23.   HEIGHT = -600 # 出现时候的屏幕Y
  24.   WIDTH = 100 # 出现时候的屏幕X
  25.   #--------------------------------------------------------------------------
  26.   # ● メイン処理
  27.   #--------------------------------------------------------------------------
  28.   def main
  29.     if $BTEST                         # 戦闘テストの場合
  30.       battle_test                     # 戦闘テストの開始処理
  31.     else                              # 通常のプレイの場合
  32.       super                           # 本来のメイン処理
  33.     end
  34.   end
  35.   #--------------------------------------------------------------------------
  36.   # ● 開始処理
  37.   #--------------------------------------------------------------------------
  38.   def start
  39.     super
  40.     load_database                     # データベースをロード
  41.     create_game_objects               # ゲームオブジェクトを作成
  42.     check_continue                    # コンティニュー有効判定
  43.     create_title_graphic   # タイトルグラフィックを作成
  44.     @ox = 0
  45.     @oy = 0
  46.     color1 = Color.new(255, 255, 255, 255)
  47.     color2 = Color.new(255, 255, 255, 128)
  48.     @rain_bitmap = Bitmap.new(7, 56)
  49.     for i in 0..6
  50.       @rain_bitmap.fill_rect(6-i, i*8, 1, 8, color1)
  51.     end
  52.     @storm_bitmap = Bitmap.new(34, 64)
  53.     for i in 0..31
  54.       @storm_bitmap.fill_rect(33-i, i*2, 1, 2, color2)
  55.       @storm_bitmap.fill_rect(32-i, i*2, 1, 2, color1)
  56.       @storm_bitmap.fill_rect(31-i, i*2, 1, 2, color2)
  57.     end
  58.     @snow_bitmap = Bitmap.new(6, 6)
  59.     @snow_bitmap.fill_rect(0, 1, 6, 4, color2)
  60.     @snow_bitmap.fill_rect(1, 0, 4, 6, color2)
  61.     @snow_bitmap.fill_rect(1, 2, 4, 2, color1)
  62.     @snow_bitmap.fill_rect(2, 1, 2, 4, color1)
  63.     @sprites = []
  64.     for i in 1..40
  65.       sprite = Sprite.new
  66.       case WEATHER
  67.       when 1
  68.         sprite.bitmap = @rain_bitmap
  69.       when 2
  70.         sprite.bitmap = @storm_bitmap
  71.       when 3
  72.         sprite.bitmap = @snow_bitmap
  73.       when 4
  74.         sprite.bitmap = Bitmap.new(WEATHER_FILE)
  75.       end
  76.       sprite.z = 1000
  77.       sprite.x = -1000
  78.       sprite.y = -1000
  79.       sprite.visible = (i <= MAXNUMBER)
  80.       sprite.blend_type = BLEND_TYPE
  81.       sprite.opacity = START_OPACITY
  82.       @sprites.push(sprite)
  83.     end
  84.     weather_update
  85.     create_command_window             # コマンドウィンドウを作成
  86.     play_title_music                  # タイトル画面の音楽を演奏
  87.   end
  88.   #--------------------------------------------------------------------------
  89.   # ● トランジション実行
  90.   #--------------------------------------------------------------------------
  91.   def perform_transition
  92.     Graphics.transition(20)
  93.   end
  94.   #--------------------------------------------------------------------------
  95.   # ● 開始後処理
  96.   #--------------------------------------------------------------------------
  97.   def post_start
  98.     super
  99.     open_command_window
  100.   end
  101.   #--------------------------------------------------------------------------
  102.   # ● 終了前処理
  103.   #--------------------------------------------------------------------------
  104.   def pre_terminate
  105.     super
  106.     close_command_window
  107.   end
  108.   #--------------------------------------------------------------------------
  109.   # ● 終了処理
  110.   #--------------------------------------------------------------------------
  111.   def terminate
  112.     super
  113.     dispose_command_window
  114.     snapshot_for_background
  115.     @sprite.bitmap.dispose
  116.     @sprite.dispose
  117.     for sprite in @sprites
  118.       sprite.dispose
  119.     end
  120.     @rain_bitmap.dispose
  121.     @storm_bitmap.dispose
  122.     @snow_bitmap.dispose
  123.     dispose_title_graphic
  124.   end
  125.   
  126.   def weather_update
  127.     return if WEATHER == 0
  128.     for i in 1..MAXNUMBER
  129.       sprite = @sprites[i]
  130.       if sprite == nil
  131.         break
  132.       end
  133.       if WEATHER == 1
  134.         sprite.x -= 2
  135.         sprite.y += 16
  136.         sprite.opacity -= 8
  137.       end
  138.       if WEATHER == 2
  139.         sprite.x -= 8
  140.         sprite.y += 16
  141.         sprite.opacity -= 12
  142.       end
  143.       if WEATHER == 3
  144.         sprite.x -= 2
  145.         sprite.y += 8
  146.         sprite.opacity -= 8
  147.       end
  148.       if WEATHER == 4
  149.         sprite.x -= WEATHER_X
  150.         sprite.y += WEATHER_Y
  151.         sprite.opacity -= WEATHER_OPACITY
  152.       end
  153.       x = sprite.x - @ox
  154.       y = sprite.y - @oy
  155.       if sprite.opacity < 32 or x < -100 or x > 750 or y < -1000 or y > 500
  156.         sprite.x = rand(RAND_X) + WIDTH + @ox
  157.         sprite.y = rand(RAND_Y) + HEIGHT + @oy
  158.         sprite.opacity = START_OPACITY
  159.       end
  160.     end
  161.   end
  162. #--------------------------------------------------------------------------
  163.   # ● 更新画面
  164.   #--------------------------------------------------------------------------
  165.   def update
  166.     super
  167.     @command_window.update
  168.     if Input.trigger?(Input::C)
  169.       case @command_window.index
  170.       when 0    #New game
  171.         command_new_game
  172.       when 1    # Continue
  173.         command_continue
  174.       when 2    # Boss Rush
  175.         command_new_game
  176.        $game_switches[1] = true
  177.       when 3    # 小游戏
  178.         command_new_game
  179.        $game_switches[2] = true
  180.       when 4    # Shutdown
  181.         command_shutdown
  182.       end
  183.     end
  184.     weather_update
  185.   end
  186.   #--------------------------------------------------------------------------
  187.   # ● データベースのロード
  188.   #--------------------------------------------------------------------------
  189.   def load_database
  190.     $data_actors        = load_data("Data/Actors.rvdata")
  191.     $data_classes       = load_data("Data/Classes.rvdata")
  192.     $data_skills        = load_data("Data/Skills.rvdata")
  193.     $data_items         = load_data("Data/Items.rvdata")
  194.     $data_weapons       = load_data("Data/Weapons.rvdata")
  195.     $data_armors        = load_data("Data/Armors.rvdata")
  196.     $data_enemies       = load_data("Data/Enemies.rvdata")
  197.     $data_troops        = load_data("Data/Troops.rvdata")
  198.     $data_states        = load_data("Data/States.rvdata")
  199.     $data_animations    = load_data("Data/Animations.rvdata")
  200.     $data_common_events = load_data("Data/CommonEvents.rvdata")
  201.     $data_system        = load_data("Data/System.rvdata")
  202.     $data_areas         = load_data("Data/Areas.rvdata")
  203.   end
  204.   #--------------------------------------------------------------------------
  205.   # ● 戦闘テスト用データベースのロード
  206.   #--------------------------------------------------------------------------
  207.   def load_bt_database
  208.     $data_actors        = load_data("Data/BT_Actors.rvdata")
  209.     $data_classes       = load_data("Data/BT_Classes.rvdata")
  210.     $data_skills        = load_data("Data/BT_Skills.rvdata")
  211.     $data_items         = load_data("Data/BT_Items.rvdata")
  212.     $data_weapons       = load_data("Data/BT_Weapons.rvdata")
  213.     $data_armors        = load_data("Data/BT_Armors.rvdata")
  214.     $data_enemies       = load_data("Data/BT_Enemies.rvdata")
  215.     $data_troops        = load_data("Data/BT_Troops.rvdata")
  216.     $data_states        = load_data("Data/BT_States.rvdata")
  217.     $data_animations    = load_data("Data/BT_Animations.rvdata")
  218.     $data_common_events = load_data("Data/BT_CommonEvents.rvdata")
  219.     $data_system        = load_data("Data/BT_System.rvdata")
  220.   end
  221.   #--------------------------------------------------------------------------
  222.   # ● 各種ゲームオブジェクトの作成
  223.   #--------------------------------------------------------------------------
  224.   def create_game_objects
  225.     $game_temp          = Game_Temp.new
  226.     $game_message       = Game_Message.new
  227.     $game_system        = Game_System.new
  228.     $game_switches      = Game_Switches.new
  229.     $game_variables     = Game_Variables.new
  230.     $game_self_switches = Game_SelfSwitches.new
  231.     $game_actors        = Game_Actors.new
  232.     $game_party         = Game_Party.new
  233.     $game_troop         = Game_Troop.new
  234.     $game_map           = Game_Map.new
  235.     $game_player        = Game_Player.new
  236.   end
  237.   #--------------------------------------------------------------------------
  238.   # ● コンティニュー有効判定
  239.   #--------------------------------------------------------------------------
  240.   def check_continue
  241.     @continue_enabled = (Dir.glob('Save*.rvdata').size > 0)
  242.   end
  243.   #--------------------------------------------------------------------------
  244.   # ● タイトルグラフィックの作成
  245.   #--------------------------------------------------------------------------
  246.   def create_title_graphic
  247.     @sprite = Sprite.new
  248.     @sprite.bitmap = Cache.system("Title")
  249.   end
  250.   #--------------------------------------------------------------------------
  251.   # ● タイトルグラフィックの解放
  252.   #--------------------------------------------------------------------------
  253.   def dispose_title_graphic
  254.     @sprite.bitmap.dispose
  255.     @sprite.dispose
  256.   end
  257.   #--------------------------------------------------------------------------
  258.   # ● 生成命令窗口
  259.   #--------------------------------------------------------------------------
  260.   def create_command_window
  261.     s1 = Vocab::new_game
  262.     s2 = Vocab::continue
  263.     s3 = "Boss Rush"
  264.     s4 = "小游戏"
  265.     s5 = Vocab::shutdown
  266.     @command_window = Window_Command.new(172, [s1, s2, s3, s4, s5])
  267.     @command_window.x = (544 - @command_window.width) / 2
  268.     @command_window.y = 416 - @command_window.height - 20

  269.     if @continue_enabled                    # 如果「继续」有效
  270.       @command_window.index = 1             # 将光标移至「继续游戏」
  271.     else                                    # 否则则将「继续游戏」半透明化
  272.       @command_window.draw_item(1, false)
  273.     end
  274.     @command_window.openness = 0
  275.     @command_window.open
  276.   end
  277.   #--------------------------------------------------------------------------
  278.   # ● コマンドウィンドウの解放
  279.   #--------------------------------------------------------------------------
  280.   def dispose_command_window
  281.     @command_window.dispose
  282.   end
  283.   #--------------------------------------------------------------------------
  284.   # ● コマンドウィンドウを開く
  285.   #--------------------------------------------------------------------------
  286.   def open_command_window
  287.     @command_window.open
  288.     begin
  289.       @command_window.update
  290.       Graphics.update
  291.     end until @command_window.openness == 255
  292.   end
  293.   #--------------------------------------------------------------------------
  294.   # ● コマンドウィンドウを閉じる
  295.   #--------------------------------------------------------------------------
  296.   def close_command_window
  297.     @command_window.close
  298.     begin
  299.       @command_window.update
  300.       Graphics.update
  301.     end until @command_window.openness == 0
  302.   end
  303.   #--------------------------------------------------------------------------
  304.   # ● タイトル画面の音楽演奏
  305.   #--------------------------------------------------------------------------
  306.   def play_title_music
  307.     $data_system.title_bgm.play
  308.     RPG::BGS.stop
  309.     RPG::ME.stop
  310.   end
  311.   #--------------------------------------------------------------------------
  312.   # ● プレイヤーの初期位置存在チェック
  313.   #--------------------------------------------------------------------------
  314.   def confirm_player_location
  315.     if $data_system.start_map_id == 0
  316.       print "主角初始位置未设定。"
  317.       exit
  318.     end
  319.   end
  320.   #--------------------------------------------------------------------------
  321.   # ● コマンド : ニューゲーム
  322.   #--------------------------------------------------------------------------
  323.   def command_new_game
  324.     confirm_player_location
  325.     Sound.play_decision
  326.     $game_party.setup_starting_members            # 初期パーティ
  327.     $game_map.setup($data_system.start_map_id)    # 初期位置のマップ
  328.     $game_player.moveto($data_system.start_x, $data_system.start_y)
  329.     $game_player.refresh
  330.     $scene = Scene_Map.new
  331.     RPG::BGM.fade(1500)
  332.     close_command_window
  333.     Graphics.fadeout(60)
  334.     Graphics.wait(40)
  335.     Graphics.frame_count = 0
  336.     RPG::BGM.stop
  337.     $game_map.autoplay
  338.   end
  339.   #--------------------------------------------------------------------------
  340.   # ● コマンド : コンティニュー
  341.   #--------------------------------------------------------------------------
  342.   def command_continue
  343.     if @continue_enabled
  344.       Sound.play_decision
  345.       $scene = Scene_File.new(false, true, false)
  346.     else
  347.       Sound.play_buzzer
  348.     end
  349.   end
  350.   #--------------------------------------------------------------------------
  351.   # ● コマンド : シャットダウン
  352.   #--------------------------------------------------------------------------
  353.   def command_shutdown
  354.     Sound.play_decision
  355.     RPG::BGM.fade(800)
  356.     RPG::BGS.fade(800)
  357.     RPG::ME.fade(800)
  358.     $scene = nil
  359.   end
  360.   #--------------------------------------------------------------------------
  361.   # ● 戦闘テスト
  362.   #--------------------------------------------------------------------------
  363.   def battle_test
  364.     load_bt_database                  # 戦闘テスト用データベースをロード
  365.     create_game_objects               # ゲームオブジェクトを作成
  366.     Graphics.frame_count = 0          # プレイ時間を初期化
  367.     $game_party.setup_battle_test_members
  368.     $game_troop.setup($data_system.test_troop_id)
  369.     $game_troop.can_escape = true
  370.     $game_system.battle_bgm.play
  371.     snapshot_for_background
  372.     $scene = Scene_Battle.new
  373.   end
  374. end


  375. #==============================================================================
  376. # 本脚本来自www.66RPG.com,使用和转载请保留此信息
  377. #==============================================================================
复制代码


没有仔细的测试,有什么 BUG ,请告诉我。

《天空之城 —— 破碎的命运》
回复 支持 反对

使用道具 举报

Lv1.梦旅人

辉瑞中国首席研究员<

梦石
0
星屑
50
在线时间
142 小时
注册时间
2008-1-18
帖子
2129
9
发表于 2008-10-4 23:57:06 | 只看该作者
以下引用八云紫于2008-10-4 15:40:36的发言:

无视是正常的, 同一个类的相同方法定义了两次, Ruby 不支持多态的,所以, 定义同名

方法后,方法是按照 最后定义的为主。 (使用了 alias 的除外)


问个小白问题,什么是多态
来6r就是等某位仁兄的巨坑

褴褛着身行无端,囊中羞涩空心酸。
平生几无得意事,倒塔泡面宅寝室。
惟羡隔壁高帅富,雨露春风月夜声。
青丝无处觅其踪,只有硬盘苍井空。
莫云男儿空悲愁,鸿鹄岂不天际游。
坐断天下执鹿首,千百金帛万兜鍪。
夜深忽梦某年月,再见女神欲语迟。
吊丝终有逆袭日,木耳再无回粉时。
回复 支持 反对

使用道具 举报

Lv3.寻梦者 (暗夜天使)

名侦探小柯

梦石
0
星屑
3304
在线时间
3619 小时
注册时间
2006-9-6
帖子
37400

开拓者贵宾第3届短篇游戏大赛主流游戏组亚军第5届短篇游戏比赛亚军

10
发表于 2008-10-4 23:58:34 | 只看该作者
修改同个东西的脚本,
哪个放后面就按照哪个运行。
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2025-1-1 23:04

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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