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

Project1

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

一个脚本问题

 关闭 [复制链接]

Lv1.梦旅人

kissye的宠物<

梦石
0
星屑
66
在线时间
1564 小时
注册时间
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
星屑
438
在线时间
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
星屑
66
在线时间
1564 小时
注册时间
2008-8-11
帖子
6174

贵宾

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

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

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

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

使用道具 举报

Lv2.观梦者

神隐的主犯

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

贵宾

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

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

使用道具 举报

Lv1.梦旅人

kissye的宠物<

梦石
0
星屑
66
在线时间
1564 小时
注册时间
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
星屑
438
在线时间
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就是等某位仁兄的巨坑

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

使用道具 举报

Lv4.逐梦者 (暗夜天使)

名侦探小柯

梦石
10
星屑
4248
在线时间
3732 小时
注册时间
2006-9-6
帖子
37430

极短27获奖MZ评测员开拓者贵宾第3届短篇游戏大赛主流游戏组亚军第5届短篇游戏比赛亚军

10
发表于 2008-10-4 23:58:34 | 只看该作者
修改同个东西的脚本,
哪个放后面就按照哪个运行。
不定期回归 ~ 游戏开发之旅
———————————————————————————————
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-6-15 20:55

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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