赞 | 170 |
VIP | 6 |
好人卡 | 208 |
积分 | 230 |
经验 | 137153 |
最后登录 | 2024-12-18 |
在线时间 | 8646 小时 |
Lv5.捕梦者
- 梦石
- 0
- 星屑
- 23048
- 在线时间
- 8646 小时
- 注册时间
- 2011-12-31
- 帖子
- 3367
|
本帖最后由 tseyik 于 2014-10-5 09:49 编辑
來源原網頁己沒了
調用SceneManager.call(Scene_StaffRoll)就可以
行10~48是設定(背景圖,文字,可不可以skip……等等)- #==============================================================================
- # □ No.057
- # スタッフロール(RPGツクールVX Ace)
- #------------------------------------------------------------------------------
- # by initialization
- #==============================================================================
- #==============================================================================
- # □ 設定
- #==============================================================================
- module RGSSinit end
- module RGSSinit::Staff_Roll
- #--------------------------------------------------------------------------
- # ○ 素材スイッチ
- #--------------------------------------------------------------------------
- MATERIAL_SWITCH = true
- #--------------------------------------------------------------------------
- # ○ フォルダの指定
- #--------------------------------------------------------------------------
- FOLDER_NAME = "Graphics/Titles1"
- #--------------------------------------------------------------------------
- # ○ 背景の設定
- #--------------------------------------------------------------------------
- BACKGROUND = "Island"
- #--------------------------------------------------------------------------
- # ○ 登録
- #--------------------------------------------------------------------------
- REGISTRATION = {
- 1 => ["GAME DESIGNER", "AAA"],
- 2 => ["DESIGNER", "BBB"],
- 3 => ["SCENARIO", "CCC"],
- 4 => ["THANKS", "DDD"],
- 5 => ["MATERIAL", "EEE"],
- 6 => ["THANK YOU", "FOR PLAYING!"],
- }
- #--------------------------------------------------------------------------
- # ○ 最後の文字列に対して、中央停止設定
- #--------------------------------------------------------------------------
- LAST_STRING_STOP = true
- #--------------------------------------------------------------------------
- # ○ 音楽
- #--------------------------------------------------------------------------
- SOUND = "Theme1"
- #--------------------------------------------------------------------------
- # ○ スタッフロールのスキップ許可設定
- #--------------------------------------------------------------------------
- SKIP = true
- end
- #==============================================================================
- # ■ Object
- #==============================================================================
- class Object
- #--------------------------------------------------------------------------
- # ○ アクセス省略化
- #--------------------------------------------------------------------------
- RGSSinit057 = RGSSinit::Staff_Roll
- end
- #==============================================================================
- # □ スタッフロール
- #==============================================================================
- $rgssinit ||= {} ; $rgssinit["スタッフロール"] = RGSSinit057::MATERIAL_SWITCH
- if $rgssinit["スタッフロール"]
- #==============================================================================
- # ■ Cache
- #==============================================================================
- module Cache
- #--------------------------------------------------------------------------
- # ○ スタッフロール画面背景の取得
- # filename : ファイル名
- #--------------------------------------------------------------------------
- def self.staff_roll_background(filename)
- load_bitmap(RGSSinit057::FOLDER_NAME + "/", filename)
- end
- end
- #==============================================================================
- # ■ Game_Interpreter
- #==============================================================================
- class Game_Interpreter
- #--------------------------------------------------------------------------
- # ○ スタッフロール呼び出しメソッド
- #--------------------------------------------------------------------------
- def call057
- SceneManager.call(Scene_StaffRoll)
- Fiber.yield
- end
- end
- #==============================================================================
- # □ Scene_StaffRoll
- #==============================================================================
- class Scene_StaffRoll < Scene_Base
- #--------------------------------------------------------------------------
- # ○ オブジェクト初期化 [オーバーライド]
- #--------------------------------------------------------------------------
- def initialize
- [url=home.php?mod=space&uid=263426]@temp[/url] = RPG::BGM.last
- @background_sprite = Sprite.new
- @entry = 1
- @string1 = Sprite.new
- @string2 = Sprite.new
- @timer = 0
- @last_flag = false
- end
- #--------------------------------------------------------------------------
- # ○ 開始処理 [オーバーライド]
- #--------------------------------------------------------------------------
- def start
- bgm_process
- super
- create_spriteset
- end
- #--------------------------------------------------------------------------
- # ○ 音楽処理
- #--------------------------------------------------------------------------
- def bgm_process
- if RGSSinit057::SOUND == nil
- Audio.bgm_stop
- elsif RGSSinit057::SOUND != ""
- Audio.bgm_play("Audio/BGM/" + RGSSinit057::SOUND)
- end
- end
- #--------------------------------------------------------------------------
- # ○ スプライトセットの作成
- #--------------------------------------------------------------------------
- def create_spriteset
- if RGSSinit057::BACKGROUND != ""
- @background_sprite.bitmap = Cache.staff_roll_background(RGSSinit057::BACKGROUND)
- end
- end
- #--------------------------------------------------------------------------
- # ○ フレーム更新 [オーバーライド]
- #--------------------------------------------------------------------------
- def update
- super
- update_input
- if RGSSinit057::REGISTRATION[@entry]
- update_string_display1
- update_string_display2
- update_string_process
- else
- return_scene
- end
- end
- #--------------------------------------------------------------------------
- # ○ フレーム更新:入力
- #--------------------------------------------------------------------------
- def update_input
- unless @last_flag
- return unless RGSSinit057::SKIP
- return_scene if Input.trigger?(:C)
- else
- return_scene if Input.trigger?(:C)
- end
- end
- #--------------------------------------------------------------------------
- # ○ フレーム更新:文字列表示1
- #--------------------------------------------------------------------------
- def update_string_display1
- if @string1.bitmap == nil
- create_string1
- return
- end
- end
- #--------------------------------------------------------------------------
- # ○ フレーム更新:文字列表示2
- #--------------------------------------------------------------------------
- def update_string_display2
- if @string2.bitmap == nil
- create_string2
- return
- end
- end
- #--------------------------------------------------------------------------
- # ○ フレーム更新:文字列の処理
- #--------------------------------------------------------------------------
- def update_string_process
- return if @last_flag
- @timer += 1
- if @timer == 5
- @string1.y -= 4 if @string1.bitmap
- @string2.y -= 4 if @string2.bitmap
- if (@string1.y < Graphics.height / 2 - 16) && RGSSinit057::REGISTRATION[@entry + 1] == nil && RGSSinit057::LAST_STRING_STOP
- @last_flag = true
- end
- @timer = 0
- end
- if @string2.y < -46
- @string1.bitmap = nil
- @string2.bitmap = nil
- @entry += 1
- @timer = 0
- end
- end
- #--------------------------------------------------------------------------
- # ○ 文字列の作成1
- #--------------------------------------------------------------------------
- def create_string1
- @string1.bitmap = Bitmap.new(1, 1)
- rect = @string1.bitmap.text_size(RGSSinit057::REGISTRATION[@entry][0])
- @string1.bitmap.dispose
- @string1.bitmap = Bitmap.new(rect.width, rect.height)
- @string1.bitmap.font.color = Color.new(192, 192, 255)
- @string1.bitmap.draw_text(rect, RGSSinit057::REGISTRATION[@entry][0])
- @string1.x = (Graphics.width - rect.width) / 2
- @string1.y = Graphics.height - 16 + 30
- end
- #--------------------------------------------------------------------------
- # ○ 文字列の作成2
- #--------------------------------------------------------------------------
- def create_string2
- @string2.bitmap = Bitmap.new(1, 1)
- rect = @string2.bitmap.text_size(RGSSinit057::REGISTRATION[@entry][1])
- @string2.bitmap.dispose
- @string2.bitmap = Bitmap.new(rect.width, rect.height)
- @string2.bitmap.draw_text(rect, RGSSinit057::REGISTRATION[@entry][1])
- @string2.x = (Graphics.width - rect.width) / 2
- @string2.y = Graphics.height + 16 + 30
- end
- #--------------------------------------------------------------------------
- # ○ 終了処理 [オーバーライド]
- #--------------------------------------------------------------------------
- def terminate
- super
- Audio.bgm_play("Audio/BGM/" + @temp.name) if @temp.name != ""
- dispose_sprites
- end
- #--------------------------------------------------------------------------
- # ○ スプライトの解放
- #--------------------------------------------------------------------------
- def dispose_sprites
- @background_sprite.dispose
- @string1.dispose
- @string2.dispose
- end
- end
- end
复制代码 叧外一個
http://www4.plala.or.jp/findias/ ... ce_rgss3/index.html |
|