赞 | 0 |
VIP | 0 |
好人卡 | 0 |
积分 | 1 |
经验 | 163587 |
最后登录 | 2020-5-5 |
在线时间 | 41 小时 |
Lv1.梦旅人
- 梦石
- 0
- 星屑
- 60
- 在线时间
- 41 小时
- 注册时间
- 2008-3-5
- 帖子
- 2072
|
看的懂就拿去吧。。。。。。
其实是很没技术的东西,就是实现点效果而已
- #==============================================================================
- # ■ Scene_Title
- #------------------------------------------------------------------------------
- # 处理标题画面的类。
- #==============================================================================
- class Scene_Title < Scene_Base
- #--------------------------------------------------------------------------
- # ● 住处理
- #--------------------------------------------------------------------------
- def main_start
- super
- @vp = Viewport.new(0,0,640,480)
- _load_data_
- Mess_Text.visible = true
- # 生成系统对像
- $game_system = Game_System.new
- @index = 2
- @titlepic =0
- @time = 0
- # 生成标题图形
- @sprite = Sprite.new(@vp)
- @sprite.bitmap = RPG::Cache.picture("back/#{$game_system.titleback}")
- @white = []
- # 横白条
- @white[1] = RPG::Sprite.new(@vp)
- @white[1].x , @white[1].y = -640, 188
- @white[1].opacity = 100
- @white[1].bitmap = Bitmap.new(650,94)
- @white[1].bitmap.fill_rect(0,0,650,94,Color.new(255,5,255,255))
- #@white[1].flash(Color.new(255,5,255,255), 20)
- # 小块图象
- @sprite1 = RPG::Sprite.new(@vp)
- @sprite1.x , @sprite1.y = 420, 190
- @sprite1.bitmap = RPG::Cache.picture("back/#{$game_system.titleback}1")
- # 竖白条
- @white[0] = RPG::Sprite.new(@vp)
- @white[0].x , @white[0].y = 420, 0
- @white[0].bitmap = Bitmap.new(200,480)
- @white[0].bitmap.fill_rect(0,0,200,480,Color.new(255,255,255,100))
- # 八云图
- @white[2] = RPG::Sprite.new(@vp)
- @white[2].x , @white[2].y = 30, 170
- @white[2].bitmap = RPG::Cache.picture("back/bayun")
- # 标题字
- @white[3] = RPG::Sprite.new(@vp)
- @white[3].x , @white[3].y = 20, 20
- @white[3].opacity = 255
- @white[3].bitmap = RPG::Cache.picture("back/zi")
- #@white[0].flash(Color.new(255,5,255,255), 20)
- @t = 0
- # 生成命令窗口
- s = [" 制作团队"," 心灵花园"," 操作说明"," 新的开始"," 读取存档"," 退出游戏"," 网站连接"]
- @sprites = []
- for i in 0...7
- if i == 0 ; color = Color.new(255, 0,255,150)
- elsif i == 1 ; color = Color.new(255, 0, 0,150)
- elsif i == 2 ; color = Color.new(255,100, 0,150)
- elsif i == 3 ; color = Color.new(255,255, 0,150)
- elsif i == 4 ; color = Color.new(0, 255, 0,150)
- elsif i == 5 ; color = Color.new(0, 255,255,150)
- elsif i == 6 ; color = Color.new(0, 0, 255,150)
- end
- @sprites[i] = Sprite.new(@vp)
- @sprites[i].bitmap = Bitmap.new(200,95)
- #@sprites[i].x,@sprites[i].y = 420, 95*(i-1)
- @sprites[i].x,@sprites[i].y = 420, 95*(i-7)-6
- @sprites[i].bitmap.font.size = 26
- @sprites[i].bitmap.fill_rect(0,0,200,90,color)
- @sprites[i].bitmap.draw_text(80,50,100,40,s[i])
- @sprites[i].bitmap.draw_text(40,15,100,40,"www.66rpg.com") if s[i]==" 网站连接"
- @sprites[i].bitmap.draw_line(180,0,199,94,Color.new(255,255,255,100))
- # 4条白边
- @sprites[i].bitmap.draw_line(0,0,199,0,Color.new(255,255,255,200))
- @sprites[i].bitmap.draw_line(0,4,199,4,Color.new(255,255,255,200))
- @sprites[i].bitmap.draw_line(0,8,199,8,Color.new(255,255,255,200))
- @sprites[i].bitmap.draw_line(0,90,199,90,Color.new(255,255,255,200))
- @sprites[i].bitmap.draw_line(0,86,199,86,Color.new(255,255,255,200))
- @sprites[i].bitmap.draw_line(0,0,0,90,Color.new(255,255,255,200))
- @sprites[i].bitmap.draw_line(4,0,4,90,Color.new(255,255,255,200))
- @sprites[i].bitmap.draw_line(8,0,8,90,Color.new(255,255,255,200))
- @sprites[i].bitmap.draw_line(195,0,195,90,Color.new(255,255,255,200))
- @sprites[i].bitmap.draw_line(199,0,199,90,Color.new(255,255,255,200))
-
- end
- # jiong猪
- @white[3] = RPG::Sprite.new(@vp)
- @white[3].x , @white[3].y = 440, 225
- @white[3].bitmap = RPG::Cache.picture("back/j")
- @sprites[6].x,@sprites[6].y = 420, 475
- @continue_enabled = false
- for i in 0..3
- if FileTest.exist?("Save/Save#{i+1}.rxdata")
- @continue_enabled = true
- end
- end
- # 继续为有效的情况下、光标停止在继续上
- # 无效的情况下、继续的文字显示为灰色
- #if @continue_enabled
- # @index == 4
- #else
- # @command_window.disable_item(1)
- #end
- # 演奏标题 BGM
- $game_system.bgm_play($data_system.title_bgm)
- # 停止演奏 ME、BGS
- Audio.me_stop
- Audio.bgs_stop
- super
- Graphics.transition
- for j in 1...7
- for i in 0...6
- @white[1].x += 107 if j == 1
- @sprites[6-j].y += 96
- #if i == 11
- # @sprites[6-j].y += 48
- #end
- Graphics.update
- end
- end
- @text = "THE MAN WHO HAS MADE UP HIS MIND TO WIN WILL NEVER SAY IMPOSSIBLE!"
- @white[1].bitmap.font.size = 90
- @white[1].bitmap.font.bold = true
- @white[1].bitmap.font.name = ["Arial Black", "黑体"]
- @white[1].bitmap.draw_text(650,-3,650,94,@text)
-
-
- end
- def _load_data_
- # 载入数据库
- $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")
- $qianzui_weapons = load_data("Data/Weapons1.rxdata")
- $qianzui_armors = load_data("Data/Armors1.rxdata")
- #--------------------------------------------------------------------------
- # ● 刷新画面
- #--------------------------------------------------------------------------
- def update
- super
- #@white[1].whiten
- #for i in [email protected]
- # @white[i].update
- #end
- if $game_system.titleback != @titlepic
- #@sprite.bitmap.clear
- #@sprite1.bitmap.clear
- @sprite.bitmap = RPG::Cache.picture("back/#{$game_system.titleback}")
- @sprite1.bitmap = RPG::Cache.picture("back/#{$game_system.titleback}1")
- @titlepic = $game_system.titleback
- end
- update_white
- # 按下 C 键的情况下
- if Input.trigger?(Input::C)
- # 命令窗口的光标位置的分支
- case @index
- when 0
- command_about
- when 1
- command_caozuoshuoming
- when 2 # 新游戏
- command_new_game
- when 3 # 继续
- command_continue
- when 4 # 退出
- command_shutdown
- when 5
- command_website
- when 6
- command_make
- end
- elsif Input.repeat?(Input::DOWN) or Kboard.repeat?($R_Key_S)
- $game_system.se_play($data_system.cursor_se)
- @index += 1
- @index %= 7
- $game_system.titleback = @index
- refresh("down")
- elsif Input.repeat?(Input::UP) or Kboard.repeat?($R_Key_W)
- $game_system.se_play($data_system.cursor_se)
- @index -= 1
- @index %= 7
- $game_system.titleback = @index
- refresh("up")
- elsif Input.repeat?(Input::RIGHT) or Kboard.repeat?($R_Key_D)
- $game_system.se_play($data_system.cursor_se)
- elsif Input.repeat?(Input::LEFT) or Kboard.repeat?($R_Key_A)
- $game_system.se_play($data_system.cursor_se)
- end
- #----------------------------------
-
- end
- #--------------------------------------------------------------------------
- def dispose
- @sprite.bitmap.dispose
- @sprite.dispose
- @sprite1.bitmap.dispose
- @sprite1.dispose
- for i in [email protected]
- @sprites[i].bitmap.dispose
- @sprites[i].dispose
- end
- for i in [email protected]
- @white[i].bitmap.dispose
- @white[i].dispose
- end
- end
- #--------------------------------------------------------------------------
- def update_white
- @time = 0 if @time > 900
- @white[1].bitmap.clear
- @white[1].bitmap.fill_rect(0,0,650,94,Color.new(255,5,255,255))
- @white[1].bitmap.font.name = ["Arial Black", "黑体"]
- @white[1].bitmap.draw_text(650-@time*3,-3,1800,94,@text)
- @time += 1
- end
- #--------------------------------------------------------------------------
- def refresh(type)
- case type
- when "down"
- #@sprite1.opacity = 0
- for i in 0...7
- #Graphics.transition
- for u in 0...5
- @sprites[i].y -= 21
- if u == 4
- @sprites[i].y += 10
- end
- update_white
- Graphics.update
- end
- end
- #@sprite1.opacity = 255
- @sprites[0].y = 475
- bitmap = @sprites[0]
- @sprites.shift
- @sprites[6] = bitmap
-
- when "up"
- # @sprite1.opacity = 0
- for i in 0...7
- #Graphics.transition
- for u in 0...5
- @sprites[6-i].y += 21
- if u == 4
- @sprites[6-i].y -= 10
- end
- update_white
- Graphics.update
- end
- end
- #@sprite1.opacity = 255
- @sprites[6].y = -95
- bitmap = @sprites[6]
- @sprites.insert(0,0)
- @sprites[0] = bitmap
- end
- return
- end
- #--------------------------------------------------------------------------
- # ● 命令 : 新游戏
- #--------------------------------------------------------------------------
- def command_new_game
- # 演奏确定 SE
- $game_system.se_play($data_system.decision_se)
- # 停止 BGM
- Audio.bgm_stop
- # 重置测量游戏时间用的画面计数器
- Graphics.frame_count = 0
- # 生成各种游戏对像
- $game_temp = Game_Temp.new
- $game_system = Game_System.new
- $game_switches = Game_Switches.new
- $game_variables = Game_Variables.new
- $game_self_switches = Game_SelfSwitches.new
- $game_screen = Game_Screen.new
- $game_actors = Game_Actors.new
- $game_skills = Game_Skills.new
- $game_party = Game_Party.new
- $game_troop = Game_Troop.new
- $game_map = Game_Map.new
- $game_player = Game_Player.new
- # 设置初期同伴位置
- $game_party.setup_starting_members
- # 设置初期位置的地图
- $game_map.setup($data_system.start_map_id)
- # 主角向初期位置移动
- $game_player.moveto($data_system.start_x, $data_system.start_y)
- # 刷新主角
- $game_player.refresh
- # 执行地图设置的 BGM 与 BGS 的自动切换
- $game_map.autoplay
- # 刷新地图 (执行并行事件)
- $game_map.update
- #####################设置开始参数############
- $game_variables[5] = 0
-
- # 切换地图画面
- dispose
- $scene = Scene_Map.new
- end
- #--------------------------------------------------------------------------
- # ● 命令 : 继续
- #--------------------------------------------------------------------------
- def command_continue
- # 继续无效的情况下
- unless @continue_enabled
- # 演奏无效 SE
- $game_system.se_play($data_system.buzzer_se)
- return
- end
- # 演奏确定 SE
- $game_system.se_play($data_system.decision_se)
- # 切换到读档画面
- dispose
- $scene = Scene_Load.new
- end
- #--------------------------------------------------------------------------
- # ● 命令 : 操作说明
- #--------------------------------------------------------------------------
- def command_caozuoshuoming
- # 演奏确定 SE
- $game_system.se_play($data_system.decision_se)
- # 切换到读档画面
- dispose
- $scene = Scene_Caozuoshuoming.new
- end
- #--------------------------------------------------------------------------
- # ● 命令 : 游戏介绍
- #--------------------------------------------------------------------------
- def command_about
- # 演奏确定 SE
- $game_system.se_play($data_system.decision_se)
- # 切换到读档画面
- dispose
- $scene = Scene_About.new
- end
- #--------------------------------------------------------------------------
- # ● 命令 : 制作团队
- #--------------------------------------------------------------------------
- def command_make
- # 演奏确定 SE
- $game_system.se_play($data_system.decision_se)
- # 切换到读档画面
- dispose
- $scene = Scene_Make.new
- end
- #--------------------------------------------------------------------------
- # ● 命令 : 网站连接
- #--------------------------------------------------------------------------
- def command_website
- $game_system.se_play($data_system.decision_se)
- $bb_66rpg = Win32API.new('shell32.dll','ShellExecuteA',%w(p p p p p i),'i')
- $bb_66rpg.call(0, 'open', 'http://rpg.blue/web/',0, 0, 1)
- $scene = nil
- end
- #--------------------------------------------------------------------------
- # ● 命令 : 退出
- #--------------------------------------------------------------------------
- def command_shutdown
- # 演奏确定 SE
- $game_system.se_play($data_system.decision_se)
- # BGM、BGS、ME 的淡入淡出
- Audio.bgm_fade(800)
- Audio.bgs_fade(800)
- Audio.me_fade(800)
- # 退出
- $scene = nil
- end
- end
复制代码 |
|