Project1

标题: 关于图片标题菜单的问题 [打印本页]

作者: ddx0122012    时间: 2012-8-28 13:55
标题: 关于图片标题菜单的问题
http://rpg.blue/forum.php?mod=viewthread&tid=72890

我想在里面加“CG鉴赏”,不知道怎么弄,求大神修改一下。dsu_plus_rewardpost_czw
作者: 咕噜    时间: 2012-8-28 15:12
本帖最后由 delv25 于 2012-8-28 15:16 编辑

CG鉴赏菜单-脚本1
  1. #==============================================================================
  2. # ** Scene_CG
  3. #------------------------------------------------------------------------------
  4. #  这个类用来执行CG鉴赏的程式。
  5. #==============================================================================

  6. class Scene_CG < Scene_Base
  7.   #--------------------------------------------------------------------------
  8.   # * 对象初始化
  9.   #     card_num : 命令光标的起始位置
  10.   #     @cg_num :各项目的图片数
  11.   #     @hang_shu :行数
  12.   #     @lie_shu :列数(每行的图片数)
  13.   #--------------------------------------------------------------------------
  14.   def initialize(card_num)
  15.     @card_num = card_num   
  16.     @pic = []
  17.     @switch_pic = true
  18.     @hang_shu = 2
  19.     @lie_shu = 4
  20.     @cg_num = [8, 8, 8]
  21.     $temp_height = 0
  22.   end
  23.   #--------------------------------------------------------------------------
  24.   # * 程式开始
  25.   #--------------------------------------------------------------------------
  26.   def start
  27.     super
  28.     create_menu_background
  29.     refresh
  30.   end
  31.   #--------------------------------------------------------------------------
  32.   # * 程式终止
  33.   #--------------------------------------------------------------------------
  34.   def terminate
  35.     super
  36.     dispose_menu_background
  37.     @command_window.dispose
  38.     for i in 0...@hang_shu
  39.       for j in 0...@lie_shu
  40.         break if (@lie_shu * i + j) >= @cg_num[@card_num]
  41.         @pic[@lie_shu * i + j].dispose
  42.       end
  43.     end

  44.   end
  45.   #--------------------------------------------------------------------------
  46.   # * 返回之前的画面
  47.   #--------------------------------------------------------------------------
  48.   def return_scene
  49.     $scene = Scene_Read_CG.new(@card_num)
  50.   end
  51.   #--------------------------------------------------------------------------
  52.   # * 更新内容显示
  53.   #--------------------------------------------------------------------------
  54.   def refresh
  55.     #-------------------------窗口初始化--------------------------
  56.     @command_window = Window_CG.new(576,["", "", "", "", "", "", "", ""],@lie_shu,0,0)
  57.     @command_window.x = -16
  58.     @command_window.y = -16
  59.     @command_window.height = 448
  60.     @command_window.opacity = 0   
  61.     @command_window.index = 0
  62.     #----------------------显示图片初始化-------------------------
  63.     @picture = Sprite.new
  64.     @picture.z = 500   
  65.     for i in 0...@hang_shu
  66.       for j in 0...@lie_shu
  67.         break if (@lie_shu * i + j) >= @cg_num[@card_num]
  68.         @pic[@lie_shu * i + j] = Sprite.new
  69.         @pic[@lie_shu * i + j].bitmap = Cache.load_bitmap("Graphics/Pictures/", "CG_#{@card_num}_#{@lie_shu * i + j}")
  70.         @pic[@lie_shu * i + j].x = 544 / @lie_shu * j
  71.         @pic[@lie_shu * i + j].y = 416 / @hang_shu * i
  72.         @pic[@lie_shu * i + j].zoom_x = 0.3
  73.         @pic[@lie_shu * i + j].zoom_y = 0.3
  74.       end
  75.     end
  76.     $temp_height = @pic[@command_window.index].bitmap.height * 0.3
  77.   end
  78.   #--------------------------------------------------------------------------
  79.   # * 更新帧
  80.   #--------------------------------------------------------------------------
  81.   def update   
  82.     super
  83.     @command_window.update
  84.     #----------------图片移动判定---------------------------------
  85.     if Input.dir4 != 0
  86.       $temp_height = @pic[@command_window.index].bitmap.height * 0.3
  87.       if @switch_pic == false
  88.         step_y = [0, 1, 2, 1, 0, 0, 0, -1 ,-2, -1]#移动阵列
  89.         step_x = [0, -1, 0, 1, -2, 0, 2, -1, 0, 1]         
  90.         @picture.x += step_x[Input.dir8]
  91.         @picture.y += step_y[Input.dir8]
  92.       end
  93.     #-----------------退出判定---------------------------------------
  94.     elsif Input.trigger?(Input::B)
  95.       if @switch_pic
  96.         return_scene
  97.       else
  98.         dis_pic
  99.       end
  100.     #-------------------选中判定--------------------------
  101.     elsif Input.trigger?(Input::C)
  102.       Sound.play_decision
  103.       if @switch_pic
  104.         @command_window.active = false
  105.         @switch_pic = false        
  106.         @picture.bitmap = Bitmap.new("Graphics/Pictures/CG_#{@card_num}_#{@command_window.index}")
  107.         @picture.x = 0
  108.         @picture.y = 0      
  109.         @picture.zoom_x =0.7
  110.         @picture.zoom_y =0.7
  111.       else
  112.         dis_pic
  113.       end
  114.     #-------------------缩放判定------------------------
  115.     elsif Input.trigger?(Input::L)#每次缩放 变动 0.1
  116.       @picture.zoom_x +=0.1
  117.       @picture.zoom_y +=0.1
  118.     elsif Input.trigger?(Input::R)
  119.       @picture.zoom_x -=0.1
  120.       @picture.zoom_y -=0.1
  121.     end
  122.   end
  123.   #----------------------关闭图片方法----------------------
  124.   def dis_pic
  125.     @picture.bitmap.dispose
  126.     @switch_pic = true
  127.     @command_window.active = true
  128.   end
  129. end

  130. #==============================================================================
  131. # ** Window_CG
  132. #------------------------------------------------------------------------------
  133. #  为修改光标高度而定义
  134. #==============================================================================
  135. class Window_CG < Window_Command
  136.   
  137.   def initialize(width, commands, column_max = 1, row_max = 0, spacing = 32)
  138.     super(width, commands, column_max, row_max, spacing)
  139.   end
  140.   #--------------------------------------------------------------------------
  141.   # * 更新光标绘制
  142.   #--------------------------------------------------------------------------
  143.   def item_rect(index)
  144.     rect = Rect.new(0, 0, 0, 0)
  145.     rect.width = (contents.width + @spacing) / @column_max - @spacing
  146.     rect.height = $temp_height               #######
  147.     rect.x = index % @column_max * (rect.width + @spacing)
  148.     rect.y = index / @column_max * 416 / 2   #除行数
  149.     return rect
  150.   end
  151. end
复制代码
脚本2
  1. #==============================================================================
  2. # ** Scene_Read_CG
  3. #------------------------------------------------------------------------------
  4. #  这个类用来执行CG鉴赏的人物选择程式。
  5. #==============================================================================

  6. class Scene_Read_CG < Scene_Base
  7.   #--------------------------------------------------------------------------
  8.   # * 对象初始化
  9.   #     menu_index : 命令光标的起始位置["灵梦", "蕾米", "阿求"] #项目名
  10.   #--------------------------------------------------------------------------
  11.   def initialize(menu_index = 1)
  12.     @menu_index = menu_index
  13.     @card_size = 3                        #项目数
  14.     @card_name = ["情侣头像_女", "版本号1.0.0", "情侣头像_男"] #项目名
  15.     @card = []
  16.     @gow_x = []
  17.     @ji_shu_qi = 0      
  18.     @fu_hao = 1
  19.     @temp_y = 0
  20.   end
  21.   #--------------------------------------------------------------------------
  22.   # * 程式开始
  23.   #--------------------------------------------------------------------------
  24.   def start
  25.     super
  26.     create_menu_background
  27.     refresh
  28.   end
  29.   #--------------------------------------------------------------------------
  30.   # * 程式终止
  31.   #--------------------------------------------------------------------------
  32.   def terminate
  33.     super
  34.     dispose_menu_background
  35.     @command_window.dispose
  36.     @name_window.dispose
  37.     for i in 0...@card_size
  38.       @card[i].dispose
  39.     end
  40.   end
  41.   #--------------------------------------------------------------------------
  42.   # * 返回之前的画面
  43.   #--------------------------------------------------------------------------
  44.   def return_scene
  45.     $scene = Scene_Title.new
  46.   end
  47.   #--------------------------------------------------------------------------
  48.   # * 更新内容显示
  49.   #--------------------------------------------------------------------------
  50.   def refresh
  51.     #-------------------窗口初始化------------------------------------
  52.     @name_window = Window_Base.new(0, 0, 544, 416)
  53.     @name_window.opacity = 0
  54.     @command_window = Window_Command.new(544, @card_name, @card_size)
  55.     @command_window.x = 0
  56.     @command_window.y = 350   
  57.     @command_window.opacity = 0
  58.     @command_window.contents_opacity = 0
  59.     @command_window.index = @menu_index
  60.     #-------------------图片初始化---------------------------------------
  61.     for i in 0...@card_size
  62.       @card[i] = Sprite.new
  63.       @card[i].bitmap = Bitmap.new("Graphics/Pictures/card#{i}")#读取对应项目图片      
  64.       @card[i].ox = @card[i].bitmap.width / 2
  65.       @card[i].oy = @card[i].bitmap.height / 2
  66.       @gow_x[i]=544 / @card_size /2 * (2 * i + 1) #分配x
  67.       @card[i].x = @gow_x[i]
  68.       @card[i].y = 250
  69.       @card[i].z = 100
  70.       @card[i].zoom_x = 0.5
  71.       @card[i].zoom_y = 0.5   
  72.     end
  73.     #--------------------描绘选中项目名------------------------------
  74.     @name_window.contents.draw_text(0, 270, 500, 50, @card_name[@command_window.index],1)
  75.   end
  76.   #--------------------------------------------------------------------------
  77.   # * 更新帧
  78.   #--------------------------------------------------------------------------
  79.   def update   
  80.     super   
  81.     update_menu_background
  82.     @name_window.update
  83.     @command_window.update
  84.     #----------------描绘动态图片效果--------------------------------
  85.     @ji_shu_qi = @ji_shu_qi % 100 + 1
  86.     if(@ji_shu_qi <= 49)
  87.       @ji_shu_qi % 3 == 0 ? @fu_hao = 1 : @fu_hao = 0
  88.     elsif(@ji_shu_qi > 53)
  89.       @ji_shu_qi % 3 == 0 ? @fu_hao = -1 : @fu_hao = 0
  90.     end   
  91.     for i in 0...@card_size
  92.       pian_yi = (@card_size - @command_window.index + i +1) % @card_size #计算偏移量
  93.       if(i == @command_window.index)
  94.         @card[i].x = @gow_x[pian_yi]
  95.         @temp_y += @fu_hao
  96.         @card[i].y = 150 + @temp_y
  97.         @card[i].zoom_x = 1
  98.         @card[i].zoom_y = 1
  99.       else
  100.         @card[i].x = @gow_x[pian_yi]
  101.         @card[i].y = 250
  102.         @card[i].zoom_x = 0.5
  103.         @card[i].zoom_y = 0.5   
  104.       end
  105.     end  
  106.     #-----------------------update选中项目名------------------------
  107.     if Input.dir4 != 0
  108.       @name_window.contents.clear
  109.       @name_window.contents.draw_text(222, 270, 544, 50, @card_name[@command_window.index])
  110.     end
  111.     #----------------------按键判定---------------------------
  112.     if Input.trigger?(Input::B)
  113.       return_scene
  114.     elsif Input.trigger?(Input::C)
  115.       Sound.play_decision
  116.       $scene = Scene_CG.new(@command_window.index)
  117.     end
  118.   end
  119. end
复制代码
标题界面的改造
  1. #==========================================================
  2. #用语重定义 无关紧要
  3. #==========================================================
  4. module Vocab  
  5.   # 新的剧情
  6.   def self.new_game
  7.     return "新的旅程"#$data_system.terms.new_game
  8.   end

  9.   # 读取存档
  10.   def self.continue
  11.     return '旧的回忆'#$data_system.terms.continue
  12.   end

  13.   # 退出游戏
  14.   def self.shutdown
  15.     return "退出游戏"#$data_system.terms.shutdown
  16.   end
  17. end
  18. #========================================================
  19. #增加选单
  20. #========================================================

  21. class Scene_Title < Scene_Base
  22.   def create_command_window
  23.     s1 = Vocab::new_game
  24.     s2 = Vocab::continue
  25.     s4 = Vocab::shutdown
  26.     @command_window = Window_Command.new(172, [s1, s2, "CG鉴赏", s4])
  27.     @command_window.x = (544 - @command_window.width) / 2
  28.     @command_window.y = 288
  29.     if @continue_enabled                    # 如果[读取存档]可用
  30.       @command_window.index = 1             # 移动光标至该命令项目上
  31.     else                                    # 如果[读取存档]不可用
  32.       @command_window.draw_item(1, false)   # 半透明显示该命令项目
  33.     end
  34.     @command_window.openness = 0
  35.     @command_window.open
  36.   end

  37.   def update
  38.     super
  39.     @command_window.update
  40.     if Input.trigger?(Input::C)
  41.       case @command_window.index
  42.       when 0    #新的旅程≈
  43.         command_new_game
  44.       when 1    # 读取存档
  45.         command_continue
  46.       when 2    #人物鉴赏≈
  47.         command_Read_CG
  48.       when 3    #退出游戏≈
  49.         command_shutdown
  50.       end
  51.     end
  52.   end
  53. # ------------定义方法----------------
  54.   def command_Read_CG
  55.     Sound.play_decision
  56.     close_command_window
  57.     $scene = Scene_Read_CG.new
  58.   end
  59. end
复制代码
在\Graphics\Pictures。加入鉴赏图片总概括图(文件名)card 0\1\2 三张
然后确定后会显示八张鉴赏图片-这里需要添加CG_0_0~7  CG_1_0~7  CG_2_0~7
的文件名图片。card0对应的是CG_0_0到7的图片,其余一样。

还有别大神大神的叫= =,怪怪的……
在Main前植入这三个脚本开始游戏时就可以发现新的标题选项了,别忘了添加card0到2和CG_0(到2)_0(到7)
就是这样。喵。

附加效果图:

作者: ddx0122012    时间: 2012-8-28 15:17
delv25 发表于 2012-8-28 15:12
CG鉴赏菜单-脚本1脚本2标题界面的改造在GraphicsPictures。加入鉴赏图片总概括图(文件名)card 012 三 ...

我是想在图片标题里加入这个脚本,但是不知道在哪里改,但还是谢谢你


‘‘──ddx0122012于2012-8-28 15:17补充以下内容:

我是想在图片标题里加入这个脚本,但是不知道在哪里改,但还是谢谢你
’’
作者: 咕噜    时间: 2012-8-28 15:21
ddx0122012 发表于 2012-8-28 15:17
我是想在图片标题里加入这个脚本,但是不知道在哪里改,但还是谢谢你

如果你要的是在菜单中、退出游戏显示图片的话那种类型的图片不叫“CG鉴赏"
作者: ddx0122012    时间: 2012-8-28 15:31
C:UsersAdministratorDesktop未命名_converted_to_格式_png.png
我想在这中间加一个“cg鉴赏”


‘‘──ddx0122012于2012-8-28 15:32补充以下内容:

C:\Users\Administrator\Desktop\未命名_converted_to_格式_png.png

’’
作者: 咕噜    时间: 2012-8-28 20:44
本帖最后由 delv25 于 2012-8-28 21:22 编辑
  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. new_command
  28. play_title_music # タイトル画面の音楽を演奏
  29. end
  30. #--------------------------------------------------------------------------
  31. # ● トランジション実行
  32. #--------------------------------------------------------------------------
  33. def perform_transition
  34. Graphics.transition(20)
  35. end
  36. #--------------------------------------------------------------------------
  37. # ● 開始後処理
  38. #--------------------------------------------------------------------------
  39. def post_start
  40. super
  41. #open_command_window
  42. end
  43. #--------------------------------------------------------------------------
  44. # ● 終了前処理
  45. #--------------------------------------------------------------------------
  46. def pre_terminate
  47. super
  48. #close_command_window
  49. end
  50. #--------------------------------------------------------------------------
  51. # ● 終了処理
  52. #--------------------------------------------------------------------------
  53. def terminate
  54. super
  55. #dispose_command_window
  56. snapshot_for_background
  57. dispose_title_graphic
  58. end
  59. #--------------------------------------------------------------------------
  60. # ● フレーム更新
  61. #--------------------------------------------------------------------------
  62. def update
  63. super
  64. #@command_window.update
  65. new_inputupdate
  66. if Input.trigger?(Input::C)
  67. case @command_index
  68. when 0 # 新的游戏
  69. command_new_game
  70. when 1 # 旧的游戏
  71. command_continue
  72. when 2 # 鉴赏
  73. command_Read_CG
  74. when 3 #退出游戏
  75. command_shutdown
  76. end
  77. end
  78. end
  79. #--------------------------------------------------------------------------
  80. # ● データベースのロード
  81. #--------------------------------------------------------------------------
  82. def load_database
  83. $data_actors = load_data("Data/Actors.rvdata")
  84. $data_classes = load_data("Data/Classes.rvdata")
  85. $data_skills = load_data("Data/Skills.rvdata")
  86. $data_items = load_data("Data/Items.rvdata")
  87. $data_weapons = load_data("Data/Weapons.rvdata")
  88. $data_armors = load_data("Data/Armors.rvdata")
  89. $data_enemies = load_data("Data/Enemies.rvdata")
  90. $data_troops = load_data("Data/Troops.rvdata")
  91. $data_states = load_data("Data/States.rvdata")
  92. $data_animations = load_data("Data/Animations.rvdata")
  93. $data_common_events = load_data("Data/CommonEvents.rvdata")
  94. $data_system = load_data("Data/System.rvdata")
  95. $data_areas = load_data("Data/Areas.rvdata")
  96. end
  97. #--------------------------------------------------------------------------
  98. # ● 戦闘テスト用データベースのロード
  99. #--------------------------------------------------------------------------
  100. def load_bt_database
  101. $data_actors = load_data("Data/BT_Actors.rvdata")
  102. $data_classes = load_data("Data/BT_Classes.rvdata")
  103. $data_skills = load_data("Data/BT_Skills.rvdata")
  104. $data_items = load_data("Data/BT_Items.rvdata")
  105. $data_weapons = load_data("Data/BT_Weapons.rvdata")
  106. $data_armors = load_data("Data/BT_Armors.rvdata")
  107. $data_enemies = load_data("Data/BT_Enemies.rvdata")
  108. $data_troops = load_data("Data/BT_Troops.rvdata")
  109. $data_states = load_data("Data/BT_States.rvdata")
  110. $data_animations = load_data("Data/BT_Animations.rvdata")
  111. $data_common_events = load_data("Data/BT_CommonEvents.rvdata")
  112. $data_system = load_data("Data/BT_System.rvdata")
  113. end
  114. #--------------------------------------------------------------------------
  115. # ● 各種ゲームオブジェクトの生成
  116. #--------------------------------------------------------------------------
  117. def create_game_objects
  118. $game_temp = Game_Temp.new
  119. $game_message = Game_Message.new
  120. $game_system = Game_System.new
  121. $game_switches = Game_Switches.new
  122. $game_variables = Game_Variables.new
  123. $game_self_switches = Game_SelfSwitches.new
  124. $game_actors = Game_Actors.new
  125. $game_party = Game_Party.new
  126. $game_troop = Game_Troop.new
  127. $game_map = Game_Map.new
  128. $game_player = Game_Player.new
  129. end
  130. #--------------------------------------------------------------------------
  131. # ● コンティニュー有効判定
  132. #--------------------------------------------------------------------------
  133. def check_continue
  134. @continue_enabled = (Dir.glob('Save*.rvdata').size > 0)
  135. end
  136. #--------------------------------------------------------------------------
  137. # ● タイトルグラフィックの作成
  138. #--------------------------------------------------------------------------
  139. def create_title_graphic
  140. @sprite_1 = Sprite.new
  141. @sprite_1.bitmap = Cache.system("Title")
  142. end
  143. #--------------------------------------------------------------------------
  144. # ● タイトルグラフィックの解放
  145. #--------------------------------------------------------------------------
  146. def dispose_title_graphic
  147. @sprite_1.bitmap.dispose
  148. @sprite_1.dispose
  149. for i in 0..7
  150. @sprite[i].bitmap.dispose
  151. @sprite[i].dispose
  152. end
  153. end
  154. #--------------------------------------------------------------------------
  155. # ● タイトル画面の音楽演奏
  156. #--------------------------------------------------------------------------
  157. def play_title_music
  158. $data_system.title_bgm.play
  159. RPG::BGS.stop
  160. RPG::ME.stop
  161. end
  162. #--------------------------------------------------------------------------
  163. # ● プレイヤーの初期位置存在チェック
  164. #--------------------------------------------------------------------------
  165. def confirm_player_location
  166. if $data_system.start_map_id == 0
  167. print "没有找到角色的初始位置!"
  168. exit
  169. end
  170. end
  171. #--------------------------------------------------------------------------
  172. # ● コマンド : ニューゲーム
  173. #--------------------------------------------------------------------------
  174. def command_new_game
  175. confirm_player_location
  176. Sound.play_decision
  177. $game_party.setup_starting_members # 初期パーティ
  178. $game_map.setup($data_system.start_map_id) # 初期位置のマップ
  179. $game_player.moveto($data_system.start_x, $data_system.start_y)
  180. $game_player.refresh
  181. $scene = Scene_Map.new
  182. RPG::BGM.fade(1500)
  183. #close_command_window
  184. Graphics.fadeout(60)
  185. Graphics.wait(40)
  186. Graphics.frame_count = 0
  187. RPG::BGM.stop
  188. $game_map.autoplay
  189. end
  190. #--------------------------------------------------------------------------
  191. # ● 旧的剧情
  192. #--------------------------------------------------------------------------
  193. def command_continue
  194. if @continue_enabled
  195. Sound.play_decision
  196. $scene = Scene_File.new(false, true, false)
  197. else
  198. Sound.play_buzzer
  199. end
  200. end
  201. #--------------------------------------------------------------------------
  202. # ● コマンド : CG鉴赏
  203. #--------------------------------------------------------------------------
  204. def command_Read_CG
  205. Sound.play_decision
  206. $scene = Scene_Read_CG.new
  207. end
  208. #--------------------------------------------------------------------------
  209. # ● 退出
  210. #--------------------------------------------------------------------------
  211. def command_shutdown
  212. Sound.play_decision
  213. RPG::BGM.fade(800)
  214. RPG::BGS.fade(800)
  215. RPG::ME.fade(800)
  216. $scene = nil
  217. end
  218. #--------------------------------------------------------------------------
  219. # ● 戦闘テスト
  220. #--------------------------------------------------------------------------
  221. def battle_test
  222. load_bt_database # 戦闘テスト用データベースをロード
  223. create_game_objects # ゲームオブジェクトを作成
  224. Graphics.frame_count = 0 # プレイ時間を初期化
  225. $game_party.setup_battle_test_members
  226. $game_troop.setup($data_system.test_troop_id)
  227. $game_troop.can_escape = true
  228. $game_system.battle_bgm.play
  229. snapshot_for_background
  230. $scene = Scene_Battle.new
  231. end
  232. #=========================================================================
  233. #★定义新的标题选择菜单
  234. #=========================================================================
  235. def new_command
  236. @sprite = [Sprite.new]
  237. for i in 0..7
  238. @sprite[i]= Sprite.new
  239. @sprite[i].opacity = 0
  240. @sprite[i].x = 225
  241. @sprite[i].y = 230+i/2*45-(i)%2*10
  242. end
  243. @sprite[0].bitmap = Bitmap.new("Graphics/Pictures/start_1")
  244. @sprite[1].bitmap = Bitmap.new("Graphics/Pictures/start_2")
  245. @sprite[2].bitmap = Bitmap.new("Graphics/Pictures/continue_1")
  246. @sprite[3].bitmap = Bitmap.new("Graphics/Pictures/continue_2")
  247. @sprite[4].bitmap = Bitmap.new("Graphics/Pictures/CG_1")
  248. @sprite[5].bitmap = Bitmap.new("Graphics/Pictures/CG_2")
  249. @sprite[6].bitmap = Bitmap.new("Graphics/Pictures/exit_2")
  250. @sprite[7].bitmap = Bitmap.new("Graphics/Pictures/exit_2")
  251. @command_index = 0
  252. if @continue_enabled
  253. @command_index=1
  254. else
  255. @sprite[2].tone = Tone.new(0,0,0,255)
  256. @sprite[3].tone = Tone.new(0,0,0,255)
  257. @sprite[4].tone = Tone.new(0,0,0,255)
  258. end
  259. end
  260. #==========================================================================
  261. #★new_iputupdate
  262. #==========================================================================
  263. def new_inputupdate
  264. if Input.trigger?(Input::UP)
  265. @command_index -= 1
  266. if @command_index < 0
  267. @command_index = 3
  268. end
  269. $data_system.sounds[0].play
  270. end
  271. if Input.trigger?(Input::DOWN)
  272. @command_index += 1
  273. if @command_index > 3
  274. @command_index = 0
  275. end
  276. $data_system.sounds[0].play
  277. end
  278. case @command_index
  279. when 0
  280. if @sprite[0].opacity >= 0
  281. @sprite[0].opacity -= 30
  282. end
  283. if @sprite[1].opacity <= 240
  284. @sprite[1].opacity += 30
  285. end
  286. if @sprite[2].opacity <= 210
  287. @sprite[2].opacity += 30
  288. end
  289. if @sprite[3].opacity >= 0
  290. @sprite[3].opacity -= 30
  291. end
  292. if @sprite[4].opacity <= 210
  293. @sprite[4].opacity += 30
  294. end
  295. if @sprite[5].opacity >= 0
  296. @sprite[5].opacity -= 30
  297. end
  298. when 1
  299. if @sprite[0].opacity <= 210
  300. @sprite[0].opacity += 30
  301. end
  302. if @sprite[1].opacity >= 0
  303. @sprite[1].opacity -= 30
  304. end
  305. if @sprite[2].opacity >= 0
  306. @sprite[2].opacity -= 30
  307. end
  308. if @sprite[3].opacity <= 240
  309. @sprite[3].opacity += 30
  310. end
  311. if @sprite[4].opacity <= 210
  312. @sprite[4].opacity += 30
  313. end
  314. if @sprite[5].opacity >= 0
  315. @sprite[5].opacity -= 30
  316. end
  317. when 2
  318. if @sprite[0].opacity <= 210
  319. @sprite[0].opacity += 30
  320. end
  321. if @sprite[1].opacity >= 0
  322. @sprite[1].opacity -= 30
  323. end
  324. if @sprite[2].opacity <= 210
  325. @sprite[2].opacity += 30
  326. end
  327. if @sprite[3].opacity >= 0
  328. @sprite[3].opacity -= 30
  329. end
  330. if @sprite[4].opacity >= 0
  331. @sprite[4].opacity -= 30
  332. end
  333. if @sprite[5].opacity <= 240
  334. @sprite[5].opacity += 30
  335. end
  336. when 3
  337. if @sprite[0].opacity <= 210
  338. @sprite[0].opacity += 30
  339. end
  340. if @sprite[1].opacity >= 0
  341. @sprite[1].opacity -= 30
  342. end
  343. if @sprite[2].opacity <= 210
  344. @sprite[2].opacity += 30
  345. end
  346. if @sprite[3].opacity >= 0
  347. @sprite[3].opacity -= 30
  348. end
  349. if @sprite[4].opacity >= 0
  350. @sprite[4].opacity -= 30
  351. end
  352. if @sprite[5].opacity <= 240
  353. @sprite[5].opacity += 30
  354. end
  355. end
  356. end
  357. end
复制代码
我改的脚本不知道对不对,把CG_1 CG_2的图片加入文件夹即可。
要带上CG鉴赏的脚本……我现在开始测试!(喂!你先测试再搬出来好不好)

测试发现的问题:显示不出退出按钮……虽然鉴赏按下时……跳到一个空空的地方(确定后就退出了)

可以用了!(但是有测试发现的问题……)
作者: ddx0122012    时间: 2012-8-28 21:21
delv25 发表于 2012-8-28 20:44
我改的脚本不知道对不对,把CG_1 CG_2的图片加入文件夹即可。
要带上CG鉴赏的脚本……我现在开始测试!(喂 ...

谢谢,不过看不到退出窗口
作者: 咕噜    时间: 2012-8-28 21:37
@protosssonny

P叔可以再帮他改改么,我是脚本新手,没办法改成最好。
这个脚本改了后显示不出“退出游戏”的图片,但是依旧可以通过上下移动到那个模版,确定后依旧可以退出。
作者: 怪蜀黍    时间: 2012-8-28 21:57
delv25 发表于 2012-8-28 21:37
@protosssonny

P叔可以再帮他改改么,我是脚本新手,没办法改成最好。

这是什么
有工程吗
作者: 咕噜    时间: 2012-8-28 22:09
protosssonny 发表于 2012-8-28 21:57
这是什么
有工程吗

Project2.rar (317.77 KB, 下载次数: 86)
谢谢。

少显示了一个“退出游戏”
问题在“标题图片”
作者: 怪蜀黍    时间: 2012-8-28 22:26
delv25 发表于 2012-8-28 22:09
谢谢。

少显示了一个“退出游戏”

每一个when 的情况都少了对@sprite[6].opacity和@sprite[7].opacity的处理。
只要相应地加上,问题就解决了。
比如第1个when 0的下面加 @sprite[6].opacity = 255 @sprite[7].opacity = 255,那个图片就可以看见了。
我是打个比方,具体opacity调整为多少,按你自己的设定来调,每一个when都要调。
作者: ddx0122012    时间: 2012-8-28 22:47
protosssonny 发表于 2012-8-28 22:26
每一个when 的情况都少了对@sprite[6].opacity和@sprite[7].opacity的处理。
只要相应地加上,问题就解决 ...

对不起,能给个范例吗?我真的是脚本盲,看不懂
作者: 咕噜    时间: 2012-8-29 10:33
{:2_273:}@LucifferP叔没有什么奖励咩
@protosssonny谢谢P叔了,我漏了……


作者: 咕噜    时间: 2012-8-29 10:44
本帖最后由 delv25 于 2012-8-29 10:45 编辑
ddx0122012 发表于 2012-8-28 22:47
对不起,能给个范例吗?我真的是脚本盲,看不懂
  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. new_command
  28. play_title_music # タイトル画面の音楽を演奏
  29. end
  30. #--------------------------------------------------------------------------
  31. # ● トランジション実行
  32. #--------------------------------------------------------------------------
  33. def perform_transition
  34. Graphics.transition(20)
  35. end
  36. #--------------------------------------------------------------------------
  37. # ● 開始後処理
  38. #--------------------------------------------------------------------------
  39. def post_start
  40. super
  41. #open_command_window
  42. end
  43. #--------------------------------------------------------------------------
  44. # ● 終了前処理
  45. #--------------------------------------------------------------------------
  46. def pre_terminate
  47. super
  48. #close_command_window
  49. end
  50. #--------------------------------------------------------------------------
  51. # ● 終了処理
  52. #--------------------------------------------------------------------------
  53. def terminate
  54. super
  55. #dispose_command_window
  56. snapshot_for_background
  57. dispose_title_graphic
  58. end
  59. #--------------------------------------------------------------------------
  60. # ● フレーム更新
  61. #--------------------------------------------------------------------------
  62. def update
  63. super
  64. #@command_window.update
  65. new_inputupdate
  66. if Input.trigger?(Input::C)
  67. case @command_index
  68. when 0 # 新的游戏
  69. command_new_game
  70. when 1 # 旧的游戏
  71. command_continue
  72. when 2 # 鉴赏
  73. command_Read_CG
  74. when 3 #退出游戏
  75. command_shutdown
  76. end
  77. end
  78. end
  79. #--------------------------------------------------------------------------
  80. # ● データベースのロード
  81. #--------------------------------------------------------------------------
  82. def load_database
  83. $data_actors = load_data("Data/Actors.rvdata")
  84. $data_classes = load_data("Data/Classes.rvdata")
  85. $data_skills = load_data("Data/Skills.rvdata")
  86. $data_items = load_data("Data/Items.rvdata")
  87. $data_weapons = load_data("Data/Weapons.rvdata")
  88. $data_armors = load_data("Data/Armors.rvdata")
  89. $data_enemies = load_data("Data/Enemies.rvdata")
  90. $data_troops = load_data("Data/Troops.rvdata")
  91. $data_states = load_data("Data/States.rvdata")
  92. $data_animations = load_data("Data/Animations.rvdata")
  93. $data_common_events = load_data("Data/CommonEvents.rvdata")
  94. $data_system = load_data("Data/System.rvdata")
  95. $data_areas = load_data("Data/Areas.rvdata")
  96. end
  97. #--------------------------------------------------------------------------
  98. # ● 戦闘テスト用データベースのロード
  99. #--------------------------------------------------------------------------
  100. def load_bt_database
  101. $data_actors = load_data("Data/BT_Actors.rvdata")
  102. $data_classes = load_data("Data/BT_Classes.rvdata")
  103. $data_skills = load_data("Data/BT_Skills.rvdata")
  104. $data_items = load_data("Data/BT_Items.rvdata")
  105. $data_weapons = load_data("Data/BT_Weapons.rvdata")
  106. $data_armors = load_data("Data/BT_Armors.rvdata")
  107. $data_enemies = load_data("Data/BT_Enemies.rvdata")
  108. $data_troops = load_data("Data/BT_Troops.rvdata")
  109. $data_states = load_data("Data/BT_States.rvdata")
  110. $data_animations = load_data("Data/BT_Animations.rvdata")
  111. $data_common_events = load_data("Data/BT_CommonEvents.rvdata")
  112. $data_system = load_data("Data/BT_System.rvdata")
  113. end
  114. #--------------------------------------------------------------------------
  115. # ● 各種ゲームオブジェクトの生成
  116. #--------------------------------------------------------------------------
  117. def create_game_objects
  118. $game_temp = Game_Temp.new
  119. $game_message = Game_Message.new
  120. $game_system = Game_System.new
  121. $game_switches = Game_Switches.new
  122. $game_variables = Game_Variables.new
  123. $game_self_switches = Game_SelfSwitches.new
  124. $game_actors = Game_Actors.new
  125. $game_party = Game_Party.new
  126. $game_troop = Game_Troop.new
  127. $game_map = Game_Map.new
  128. $game_player = Game_Player.new
  129. end
  130. #--------------------------------------------------------------------------
  131. # ● コンティニュー有効判定
  132. #--------------------------------------------------------------------------
  133. def check_continue
  134. @continue_enabled = (Dir.glob('Save*.rvdata').size > 0)
  135. end
  136. #--------------------------------------------------------------------------
  137. # ● タイトルグラフィックの作成
  138. #--------------------------------------------------------------------------
  139. def create_title_graphic
  140. @sprite_1 = Sprite.new
  141. @sprite_1.bitmap = Cache.system("Title")
  142. end
  143. #--------------------------------------------------------------------------
  144. # ● タイトルグラフィックの解放
  145. #--------------------------------------------------------------------------
  146. def dispose_title_graphic
  147. @sprite_1.bitmap.dispose
  148. @sprite_1.dispose
  149. for i in 0..7
  150. @sprite[i].bitmap.dispose
  151. @sprite[i].dispose
  152. end
  153. end
  154. #--------------------------------------------------------------------------
  155. # ● タイトル画面の音楽演奏
  156. #--------------------------------------------------------------------------
  157. def play_title_music
  158. $data_system.title_bgm.play
  159. RPG::BGS.stop
  160. RPG::ME.stop
  161. end
  162. #--------------------------------------------------------------------------
  163. # ● プレイヤーの初期位置存在チェック
  164. #--------------------------------------------------------------------------
  165. def confirm_player_location
  166. if $data_system.start_map_id == 0
  167. print "没有找到角色的初始位置!"
  168. exit
  169. end
  170. end
  171. #--------------------------------------------------------------------------
  172. # ● コマンド : ニューゲーム
  173. #--------------------------------------------------------------------------
  174. def command_new_game
  175. confirm_player_location
  176. Sound.play_decision
  177. $game_party.setup_starting_members # 初期パーティ
  178. $game_map.setup($data_system.start_map_id) # 初期位置のマップ
  179. $game_player.moveto($data_system.start_x, $data_system.start_y)
  180. $game_player.refresh
  181. $scene = Scene_Map.new
  182. RPG::BGM.fade(1500)
  183. #close_command_window
  184. Graphics.fadeout(60)
  185. Graphics.wait(40)
  186. Graphics.frame_count = 0
  187. RPG::BGM.stop
  188. $game_map.autoplay
  189. end
  190. #--------------------------------------------------------------------------
  191. # ● 旧的剧情
  192. #--------------------------------------------------------------------------
  193. def command_continue
  194. if @continue_enabled
  195. Sound.play_decision
  196. $scene = Scene_File.new(false, true, false)
  197. else
  198. Sound.play_buzzer
  199. end
  200. end
  201. #--------------------------------------------------------------------------
  202. # ● CG鉴赏
  203. #--------------------------------------------------------------------------
  204. def command_Read_CG
  205. Sound.play_decision
  206. $scene = Scene_Read_CG.new
  207. end
  208. #--------------------------------------------------------------------------
  209. # ● 退出
  210. #--------------------------------------------------------------------------
  211. def command_shutdown
  212. Sound.play_decision
  213. RPG::BGM.fade(800)
  214. RPG::BGS.fade(800)
  215. RPG::ME.fade(800)
  216. $scene = nil
  217. end
  218. #--------------------------------------------------------------------------
  219. # ● 戦闘テスト
  220. #--------------------------------------------------------------------------
  221. def battle_test
  222. load_bt_database # 戦闘テスト用データベースをロード
  223. create_game_objects # ゲームオブジェクトを作成
  224. Graphics.frame_count = 0 # プレイ時間を初期化
  225. $game_party.setup_battle_test_members
  226. $game_troop.setup($data_system.test_troop_id)
  227. $game_troop.can_escape = true
  228. $game_system.battle_bgm.play
  229. snapshot_for_background
  230. $scene = Scene_Battle.new
  231. end
  232. #=========================================================================
  233. #★定义新的标题选择菜单
  234. #=========================================================================
  235. def new_command
  236. @sprite = [Sprite.new]
  237. for i in 0..7
  238. @sprite[i]= Sprite.new
  239. @sprite[i].opacity = 0
  240. @sprite[i].x = 225
  241. @sprite[i].y = 220+i/2*45-(i)%2*10
  242. end
  243. @sprite[0].bitmap = Bitmap.new("Graphics/Pictures/start_1")
  244. @sprite[1].bitmap = Bitmap.new("Graphics/Pictures/start_2")
  245. @sprite[2].bitmap = Bitmap.new("Graphics/Pictures/continue_1")
  246. @sprite[3].bitmap = Bitmap.new("Graphics/Pictures/continue_2")
  247. @sprite[4].bitmap = Bitmap.new("Graphics/Pictures/CG_1")
  248. @sprite[5].bitmap = Bitmap.new("Graphics/Pictures/CG_2")
  249. @sprite[6].bitmap = Bitmap.new("Graphics/Pictures/exit_2")
  250. @sprite[7].bitmap = Bitmap.new("Graphics/Pictures/exit_2")
  251. @command_index = 0
  252. if @continue_enabled
  253. @command_index=1
  254. else
  255. @sprite[2].tone = Tone.new(0,0,0,255)
  256. @sprite[3].tone = Tone.new(0,0,0,255)
  257. @sprite[4].tone = Tone.new(0,0,0,255)
  258. end
  259. end
  260. #==========================================================================
  261. #★new_iputupdate
  262. #==========================================================================
  263. def new_inputupdate
  264. if Input.trigger?(Input::UP)
  265. @command_index -= 1
  266. if @command_index < 0
  267. @command_index = 3
  268. end
  269. $data_system.sounds[0].play
  270. end
  271. if Input.trigger?(Input::DOWN)
  272. @command_index += 1
  273. if @command_index > 3
  274. @command_index = 0
  275. end
  276. $data_system.sounds[0].play
  277. end
  278. case @command_index
  279. when 0
  280. if @sprite[0].opacity >= 0
  281. @sprite[0].opacity -= 30
  282. end
  283. if @sprite[1].opacity <= 240
  284. @sprite[1].opacity += 30
  285. end
  286. if @sprite[2].opacity <= 210
  287. @sprite[2].opacity += 30
  288. end
  289. if @sprite[3].opacity >= 0
  290. @sprite[3].opacity -= 30
  291. end
  292. if @sprite[4].opacity <= 210
  293. @sprite[4].opacity += 30
  294. end
  295. if @sprite[5].opacity >= 0
  296. @sprite[5].opacity -= 30
  297. end
  298. if @sprite[6].opacity >= 300
  299. @sprite[6].opacity -= 30
  300. end
  301. if @sprite[7].opacity >= 300
  302. @sprite[7].opacity -= 30
  303. end
  304. when 1
  305. if @sprite[0].opacity <= 210
  306. @sprite[0].opacity += 30
  307. end
  308. if @sprite[1].opacity >= 0
  309. @sprite[1].opacity -= 30
  310. end
  311. if @sprite[2].opacity >= 0
  312. @sprite[2].opacity -= 30
  313. end
  314. if @sprite[3].opacity <= 240
  315. @sprite[3].opacity += 30
  316. end
  317. if @sprite[4].opacity <= 210
  318. @sprite[4].opacity += 30
  319. end
  320. if @sprite[5].opacity >= 0
  321. @sprite[5].opacity -= 30
  322. end
  323. if @sprite[6].opacity >= 300
  324. @sprite[6].opacity -= 30
  325. end
  326. if @sprite[7].opacity >= 300
  327. @sprite[7].opacity -= 30
  328. end
  329. when 2
  330. if @sprite[0].opacity <= 210
  331. @sprite[0].opacity += 30
  332. end
  333. if @sprite[1].opacity >= 0
  334. @sprite[1].opacity -= 30
  335. end
  336. if @sprite[2].opacity <= 210
  337. @sprite[2].opacity += 30
  338. end
  339. if @sprite[3].opacity >= 0
  340. @sprite[3].opacity -= 30
  341. end
  342. if @sprite[4].opacity >= 0
  343. @sprite[4].opacity -= 30
  344. end
  345. if @sprite[5].opacity <= 240
  346. @sprite[5].opacity += 30
  347. end
  348. if @sprite[6].opacity >= 300
  349. @sprite[6].opacity -= 30
  350. end
  351. if @sprite[7].opacity >= 300
  352. @sprite[7].opacity -= 30
  353. end
  354. when 3
  355. if @sprite[0].opacity <= 210
  356. @sprite[0].opacity += 30
  357. end
  358. if @sprite[1].opacity >= 0
  359. @sprite[1].opacity -= 30
  360. end
  361. if @sprite[2].opacity <= 210
  362. @sprite[2].opacity += 30
  363. end
  364. if @sprite[3].opacity >= 0
  365. @sprite[3].opacity -= 30
  366. end
  367. if @sprite[4].opacity >= 0
  368. @sprite[4].opacity -= 30
  369. end
  370. if @sprite[5].opacity <= 240
  371. @sprite[5].opacity += 30
  372. end
  373. if @sprite[6].opacity >= 300
  374. @sprite[6].opacity -= 30
  375. end
  376. if @sprite[7].opacity >= 300
  377. @sprite[7].opacity -= 30
  378. end
  379. end
  380. end
  381. end
复制代码
其实我还是不懂调坐标什么的……一直调不出来

if @sprite[6].opacity >= 300

@sprite[6].opacity -= 30

end

if @sprite[7].opacity >= 300

@sprite[7].opacity -= 30

就这几个,最后每个when都要调,300可以调其他什么的 我调不出来




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1