赞 | 0 |
VIP | 9 |
好人卡 | 0 |
积分 | 1 |
经验 | 4021 |
最后登录 | 2014-3-20 |
在线时间 | 169 小时 |
Lv1.梦旅人
- 梦石
- 0
- 星屑
- 50
- 在线时间
- 169 小时
- 注册时间
- 2010-11-29
- 帖子
- 172
|
加入我们,或者,欢迎回来。
您需要 登录 才可以下载或查看,没有帐号?注册会员
x
本帖最后由 fux2 于 2011-6-4 14:33 编辑
RT- #=============================================================================
- # 本脚本来自www.66RPG.com,使用和转载请保留此信息
- # 作者:chaochao+66rpg的66
- #============================================================================= #=============================================================================
- #■ Scene_Title
- #------------------------------------------------------------------------------
- # 处理标题画面的类。
- #=============================================================================
- class Scene_Title
- WEATHER = 4 # 使用自定义效果(0:无,1:雨,2:暴风雨,3:雪,4:自定义)
- MAXNUMBER = 18 # 天气图片数量
-
- WEATHER_FILE = "Graphics/Pictures/Title_starlong.png"
- # 自定义图片路径,这个文件可以从黑暗圣剑DEMO获得,是流星雨
-
- BLEND_TYPE = 0 # 合成方式(0:普通,1:加法,2:减法)
- WEATHER_X = 5 # X方向每回合减少象素
- WEATHER_Y = 5 # Y方向每回合减少象素
- WEATHER_OPACITY = 2 #每回合减低透明度
- START_OPACITY = 200 #出现时的透明度
- RAND_X = 1200 # 随机X范围
- RAND_Y = 600 # 随机Y范围
- HEIGHT = -600 # 出现时候的屏幕Y
- WIDTH = 100 # 出现时候的屏幕X
- #--------------------------------------------------------------------------
- # ● 主处理
- #--------------------------------------------------------------------------
- def main
- if $BTEST
- battle_test
- return
- end
- $data_actors = load_data("Data/Actors.rxdata")
- $data_classes = load_data("Data/Classes.rxdata")
- $data_skills = load_data("Data/Skills.rxdata")
- $data_items = load_data("Data/Items.rxdata")
- $data_weapons = load_data("Data/Weapons.rxdata")
- $data_armors = load_data("Data/Armors.rxdata")
- $data_enemies = load_data("Data/Enemies.rxdata")
- $data_troops = load_data("Data/Troops.rxdata")
- $data_states = load_data("Data/States.rxdata")
- $data_animations = load_data("Data/Animations.rxdata")
- $data_tilesets = load_data("Data/Tilesets.rxdata")
- $data_common_events = load_data("Data/CommonEvents.rxdata")
- $data_system = load_data("Data/System.rxdata")
- $game_system = Game_System.new
- # 生成标题图形
- @sprite = Sprite.new
- @sprite.bitmap = RPG::Cache.title($data_system.title_name)
- @ox = 0
- @oy = 0
- color1 = Color.new(255,255,255, 255)
- color2 = Color.new(255, 255, 255, 128)
- @rain_bitmap = Bitmap.new(7, 56)
- for i in 0..6
- @rain_bitmap.fill_rect(6-i, i*8, 1, 8, color1)
- end
- @storm_bitmap = Bitmap.new(34, 64)
- for i in 0..31
- @storm_bitmap.fill_rect(33-i, i*2, 1, 2, color2)
- @storm_bitmap.fill_rect(32-i, i*2, 1, 2, color1)
- @storm_bitmap.fill_rect(31-i, i*2, 1, 2, color2)
- end
- @snow_bitmap = Bitmap.new(6, 6)
- @snow_bitmap.fill_rect(0, 1, 6, 4, color2)
- @snow_bitmap.fill_rect(1, 0, 4, 6, color2)
- @snow_bitmap.fill_rect(1, 2, 4, 2, color1)
- @snow_bitmap.fill_rect(2, 1, 2, 4, color1)
- @sprites = []
- for i in 1..40
- sprite = Sprite.new
- case WEATHER
- when 1
- sprite.bitmap = @rain_bitmap
- when 2
- sprite.bitmap = @storm_bitmap
- when 3
- sprite.bitmap = @snow_bitmap
- when 4
- sprite.bitmap = Bitmap.new(WEATHER_FILE)
- end
- sprite.z = 1000
- sprite.x = -1000
- sprite.y = -1000
- sprite.visible = (i <= MAXNUMBER)
- sprite.blend_type = BLEND_TYPE
- sprite.opacity = START_OPACITY
- @sprites.push(sprite)
- end
- weather_update
- # 生成标题图形
- @sprite = [Sprite.new]
- for i in 0..6
- @sprite[i] = Sprite.new
- @sprite[i].opacity = 0
- end
- @sprite[0].bitmap = RPG::Cache.title($data_system.title_name)
- @sprite[0].opacity = 0
- #开始游戏的图片
- @sprite[1].bitmap = Bitmap.new("Graphics/Pictures/1.png")
- @sprite[2].bitmap = Bitmap.new("Graphics/Pictures/2.png")
- #继续游戏的图片
- @sprite[3].bitmap = Bitmap.new("Graphics/Pictures/3.png")
- @sprite[4].bitmap = Bitmap.new("Graphics/Pictures/4.png")
- #结束游戏的图片
- @sprite[5].bitmap = Bitmap.new("Graphics/Pictures/5.png")
- @sprite[6].bitmap = Bitmap.new("Graphics/Pictures/6.png")
- #图片位置
- for i in 1..6
- x=465
- y=(i+1)/2*35+313
- @sprite[i].x =x
- @sprite[i].y =y
- end
- @continue_enabled = false
- for i in 0..3
- if FileTest.exist?("Save#{i+1}.rxdata")
- @continue_enabled = true
- end
- end
- if @continue_enabled
- @command_index = 1
- else
- @command_index = 0
- @sprite[4].bitmap = Bitmap.new("Graphics/Pictures/3.png")
- end
- $game_system.bgm_play($data_system.title_bgm)
- Audio.me_stop
- Audio.bgs_stop
- Graphics.transition
- loop do
- Graphics.update
- #淡出背景圖形
- if @sprite[0].opacity <= 255
- @sprite[0].opacity += 15
- end
- Input.update
- update
- if $scene != self
- break
- end
- end
- Graphics.freeze
- # 釋放圖形
- for i in 0..6
- @sprite[i].bitmap.dispose
- @sprite[i].dispose
- end
- for sprite in @sprites
- sprite.dispose
- end
- @rain_bitmap.dispose
- @storm_bitmap.dispose
- @snow_bitmap.dispose
- end
- #--------------------------------------------------------------------------
- # ● 刷新天气
- #--------------------------------------------------------------------------
- def weather_update
- return if WEATHER == 0
- for i in 1..MAXNUMBER
- sprite = @sprites[i]
- if sprite == nil
- break
- end
- if WEATHER == 1
- sprite.x -= 2
- sprite.y += 16
- sprite.opacity -= 8
- end
- if WEATHER == 2
- sprite.x -= 8
- sprite.y += 16
- sprite.opacity -= 12
- end
- if WEATHER == 3
- sprite.x -= 2
- sprite.y += 8
- sprite.opacity -= 8
- end
- if WEATHER == 4
- sprite.x -= WEATHER_X
- sprite.y += WEATHER_Y
- sprite.opacity -= WEATHER_OPACITY
- end
- x = sprite.x - @ox
- y = sprite.y - @oy
- if sprite.opacity < 32 or x < -100 or x > 750 or y < -1000 or y > 500
- sprite.x = rand(RAND_X) + WIDTH + @ox
- sprite.y = rand(RAND_Y) + HEIGHT + @oy
- sprite.opacity = START_OPACITY
- end
- end
- end
- def update
- chaochaocommandchaochao
- if Input.trigger?(Input::C)
- case @command_index
- when 0
- command_new_game
- when 1
- command_continue
- when 2
- command_shutdown
- end
- end
- weather_update
- end
-
- def chaochaocommandchaochao
- if Input.trigger?(Input::UP)
- @command_index -= 1
- if @command_index < 0
- @command_index = 2
- end
- $game_system.se_play($data_system.cursor_se)
- end
- if Input.trigger?(Input::DOWN)
- @command_index += 1
- if @command_index > 2
- @command_index = 0
- end
- $game_system.se_play($data_system.cursor_se)
- end
- case @command_index
- when 0
- if @sprite[1].opacity >= 0
- @sprite[1].opacity -= 30
- end
- if @sprite[2].opacity <= 240
- @sprite[2].opacity += 30
- end
- if @sprite[3].opacity <= 210
- @sprite[3].opacity += 30
- end
- if @sprite[4].opacity >= 0
- @sprite[4].opacity -= 30
- end
- if @sprite[5].opacity <= 210
- @sprite[5].opacity += 30
- end
- if @sprite[6].opacity >= 0
- @sprite[6].opacity -= 30
- end
- when 1
- if @sprite[1].opacity <= 210
- @sprite[1].opacity += 30
- end
- if @sprite[2].opacity >= 0
- @sprite[2].opacity -= 30
- end
- if @sprite[3].opacity >= 0
- @sprite[3].opacity -= 30
- end
- if @sprite[4].opacity <= 240
- @sprite[4].opacity += 30
- end
- if @sprite[5].opacity <= 210
- @sprite[5].opacity += 30
- end
- if @sprite[6].opacity >= 0
- @sprite[6].opacity -= 30
- end
- when 2
- if @sprite[1].opacity <= 210
- @sprite[1].opacity += 30
- end
- if @sprite[2].opacity >= 0
- @sprite[2].opacity -= 30
- end
- if @sprite[3].opacity <= 210
- @sprite[3].opacity += 30
- end
- if @sprite[4].opacity >= 0
- @sprite[4].opacity -= 30
- end
- if @sprite[5].opacity >= 0
- @sprite[5].opacity -= 30
- end
- if @sprite[6].opacity <= 240
- @sprite[6].opacity += 30
- end
- end
- end
- end
- # ————————————————————————————————————
- # 本脚本来自www.66rpg.com,转载请保留此信息
- # ————————————————————————————————————
- class Interpreter
-
- BOOK_READING = 50 # 默认打开50开关后进入读书系统
-
- #--------------------------------------------------------------------------
- # ● 显示文章
- #--------------------------------------------------------------------------
- def command_101
- # 另外的文章已经设置过 message_text 的情况下
- if $game_temp.message_text != nil
- # 结束
- return false
- end
- # 设置信息结束后待机和返回调用标志
- @message_waiting = true
- $game_temp.message_proc = Proc.new { @message_waiting = false }
- # message_text 设置为 1 行
- $game_temp.message_text = @list[@index].parameters[0] + "\n"
- line_count = 1
- # 循环
- loop do
- # 下一个事件指令为文章两行以上的情况
- if $game_switches[BOOK_READING] and @list[@index+1].code == 101#阅读书刊报纸
- unless $game_temp.in_battle
- $scene.message_window.height = 320
- $scene.message_window.contents = Bitmap.new($scene.message_window.width - 32, $scene.message_window.height - 32)
- $scene.message_window.contents.font.size = 20
- $game_temp.message_text += @list[@index+1].parameters[0] +"\n"
- line_count+=1
- @index+=1
- end
- end
- if $game_switches[BOOK_READING]==false
- unless $game_temp.in_battle
- if $scene.message_window.height == 320
- $scene.message_window.height = 160
- $scene.message_window.contents = Bitmap.new($scene.message_window.width - 32, $scene.message_window.height - 32)
- $scene.message_window.contents.font.size = 22
- end
- end
- end
- if @list[@index+1].code == 401
- # message_text 添加到第 2 行以下
- $game_temp.message_text += @list[@index+1].parameters[0] + "\n"
- line_count += 1
- # 事件指令不在文章两行以下的情况
- else
- # 下一个事件指令为显示选择项的情况下
- if @list[@index+1].code == 102
- # 如果选择项能收纳在画面里
- if @list[@index+1].parameters[0].size <= 4 - line_count
- # 推进索引
- @index += 1
- # 设置选择项
- $game_temp.choice_start = line_count
- setup_choices(@list[@index].parameters)
- end
- # 下一个事件指令为处理输入数值的情况下
- elsif @list[@index+1].code == 103
- # 如果数值输入窗口能收纳在画面里
- if line_count < 4
- # 推进索引
- @index += 1
- # 设置输入数值
- $game_temp.num_input_start = line_count
- $game_temp.num_input_variable_id = @list[@index].parameters[0]
- $game_temp.num_input_digits_max = @list[@index].parameters[1]
- end
- end
- # 继续
- return true
- end
- # 推进索引
- @index += 1
- end
- end
- end
- class Scene_Map
- attr_accessor :message_window
- end
- #==============================================================================
- # 本脚本来自www.66RPG.com,使用和转载请保留此信息
- #==============================================================================
复制代码 |
|