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

Project1

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

脚本兼容问题

 关闭 [复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
0 小时
注册时间
2007-5-14
帖子
82
跳转到指定楼层
1
发表于 2007-7-9 20:27:14 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
如何把流星雨标题于图片标题名共用?
我使用了流星雨标题就禁用了图片标题名,
有没有办法既使用流星雨标题又使用图片标题名?
版务信息:本贴由楼主自主结贴~

Lv1.梦旅人

梦石
0
星屑
50
在线时间
0 小时
注册时间
2007-5-14
帖子
82
2
 楼主| 发表于 2007-7-9 20:27:14 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
如何把流星雨标题于图片标题名共用?
我使用了流星雨标题就禁用了图片标题名,
有没有办法既使用流星雨标题又使用图片标题名?
版务信息:本贴由楼主自主结贴~

Lv1.梦旅人

查无此人

梦石
0
星屑
50
在线时间
9 小时
注册时间
2006-5-8
帖子
1399
3
发表于 2007-7-9 20:45:58 | 只看该作者
有, 把相关句子拉进去(一般是把流星雨脚本拉进图片标题, 改都不用改.)

下面是用日文原版图片标题+ 流星雨脚本, 谁叫你不给脚本的我只好拿人家日本原版了{/tp}
图片名字请在说明中找. 反正对应一下应该能理解.
  1. =========================================
  2. Title menu picture
  3. =========================================
  4. =end
  5. module PARA_TITLE_CUSTOM

  6. # Menu command picture, (true/false)
  7. IMG_MENU = true

  8. #↓---Menu command picture Setting---
  9. #Character string of menu command
  10. #MENU_NEWGAME = “new game” # new game
  11. MENU_NEWGAME = "ニューゲーム" # ニューゲーム
  12. #MENU_LOAD = “continuing” # continuing
  13. MENU_LOAD = "コンティニュー" # コンティニュー
  14. #MENU_END = “shutdown” # shutdown
  15. MENU_END = "シャットダウン" # シャットダウン

  16. # window frame (true/false)
  17. WINDOW_TRANS = false
  18. #Transparency of the window frame
  19. WINDOW_OPACITY = 160

  20. #Side size (horizontal?) of # window
  21. WINDOW_WIDTH = 192
  22. #Vertical position of window (0: Coordinate appointment/
  23. #1: The left edge/2: Center/3: Right hand edge)
  24. WINDOW_ALIGN = 2
  25. #When # “coordinate appointment” being, abscissa of the window
  26. WINDOW_POS_X = 0
  27. #Vertical position of # window (0: Coordinate appointment/
  28. #1: Top/2: Center/3: Bottom)
  29. WINDOW_VALIGN = 0
  30. #When “coordinate appointment” being, ordinate of the window
  31. WINDOW_POS_Y = 288


  32. #==========================================
  33. =begin
  34. Sonicia
  35. Customize the location and the graphics make sure you change
  36. only the numbers, 250 is approxamtely the center of
  37. the vertical screen.
  38. Make sure that the command pictures are in the “Graphics/Titles” folder
  39. =end
  40. #==========================================
  41. =begin
  42. #New Game Graphic
  43. IMG_NEWGAME = ["newgame","newgame_active"]
  44. IMG_NEWGAME_X = 100 # Horizontal position
  45. IMG_NEWGAME_Y = 160 # Vertical position
  46. #Continue Graphic
  47. IMG_LOAD = ["continue","continue_active"]
  48. IMG_LOAD_X = 250 # Horizontal position
  49. IMG_LOAD_Y = 160 # Vertical position
  50. #Shut Down Graphic
  51. IMG_END = ["shutdown","shutdown_active"]
  52. IMG_END_X = 400 # Horizontal position
  53. IMG_END_Y = 160 # Vertical position
  54. =end
  55. #My orginal settings for reference Copy and paste if you need to
  56. #New Game Graphic
  57. IMG_NEWGAME = ["newgame","newgame_active"]
  58. IMG_NEWGAME_X = 250 # Horizontal position
  59. IMG_NEWGAME_Y = 260 # Vertical position
  60. #Continue Graphic
  61. IMG_LOAD = ["continue","continue_active"]
  62. IMG_LOAD_X = 250 # Horizontal position
  63. IMG_LOAD_Y = 300 # Vertical position
  64. #Shut Down Graphic
  65. IMG_END = ["shutdown","shutdown_active"]
  66. IMG_END_X = 250 # Horizontal position
  67. IMG_END_Y = 340 # Vertical position


  68. #END CUSTOMIZABLE AREA
  69. #============================================
  70. #Synthetic method of picture (0: Usually/1: Addition/2: Subtraction)
  71. BLEND_TYPE = 0
  72. end


  73. #------------------------------------------------------------------------------

  74. #======================================
  75. # ■ Scene_Title
  76. #======================================
  77. class Scene_Title
  78.   WEATHER = 4     # 使用自定义效果(0:无,1:雨,2:暴风雨,3:雪,4:自定义)
  79.   MAXNUMBER = 20  # 天气图片数量
  80.   
  81.   WEATHER_FILE = "Graphics/Pictures/Title_starlong.png"
  82.   # 自定义图片路径,这个文件可以从黑暗圣剑DEMO获得,是流星雨
  83.   
  84.   BLEND_TYPE = 1 # 合成方式(0:普通,1:加法,2:减法)
  85.   WEATHER_X = 5 # X方向每回合减少象素
  86.   WEATHER_Y = 5 # Y方向每回合减少象素
  87.   WEATHER_OPACITY = 2 #每回合减低透明度
  88.   START_OPACITY = 200 #出现时的透明度
  89.   RAND_X = 1200 # 随机X范围
  90.   RAND_Y = 600 # 随机Y范围
  91.   HEIGHT = -300 # 出现时候的屏幕Y
  92.   WIDTH = 100 # 出现时候的屏幕X

  93. #--------------------------------------------------------------------------
  94. # - Main processing
  95. #--------------------------------------------------------------------------
  96. def main
  97. #If battle test
  98. if $BTEST
  99. battle_test
  100. return
  101. end
  102. # Load database
  103. $data_actors = load_data("Data/Actors.rxdata")
  104. $data_classes = load_data("Data/Classes.rxdata")
  105. $data_skills = load_data("Data/Skills.rxdata")
  106. $data_items = load_data("Data/Items.rxdata")
  107. $data_weapons = load_data("Data/Weapons.rxdata")
  108. $data_armors = load_data("Data/Armors.rxdata")
  109. $data_enemies = load_data("Data/Enemies.rxdata")
  110. $data_troops = load_data("Data/Troops.rxdata")
  111. $data_states = load_data("Data/States.rxdata")
  112. $data_animations = load_data("Data/Animations.rxdata")
  113. $data_tilesets = load_data("Data/Tilesets.rxdata")
  114. $data_common_events = load_data("Data/CommonEvents.rxdata")
  115. $data_system = load_data("Data/System.rxdata")
  116. # Make system object
  117. $game_system = Game_System.new
  118. # Make title graphic
  119. @sprite = Sprite.new
  120. @sprite.bitmap = RPG::Cache.title($data_system.title_name)
  121. @ox = 0
  122.     @oy = 0
  123.     color1 = Color.new(255, 255, 255, 255)
  124.     color2 = Color.new(255, 255, 255, 128)
  125.     @rain_bitmap = Bitmap.new(7, 56)
  126.     for i in 0..6
  127.       @rain_bitmap.fill_rect(6-i, i*8, 1, 8, color1)
  128.     end
  129.     @storm_bitmap = Bitmap.new(34, 64)
  130.     for i in 0..31
  131.       @storm_bitmap.fill_rect(33-i, i*2, 1, 2, color2)
  132.       @storm_bitmap.fill_rect(32-i, i*2, 1, 2, color1)
  133.       @storm_bitmap.fill_rect(31-i, i*2, 1, 2, color2)
  134.     end
  135.       @snow_bitmap = Bitmap.new(6, 6)
  136.     @snow_bitmap.fill_rect(0, 1, 6, 4, color2)
  137.     @snow_bitmap.fill_rect(1, 0, 4, 6, color2)
  138.     @snow_bitmap.fill_rect(1, 2, 4, 2, color1)
  139.     @snow_bitmap.fill_rect(2, 1, 2, 4, color1)
  140.     @sprites = []
  141.     for i in 1..40
  142.       sprite = Sprite.new
  143.       case WEATHER
  144.       when 1
  145.         sprite.bitmap = @rain_bitmap
  146.       when 2
  147.         sprite.bitmap = @storm_bitmap
  148.       when 3
  149.         sprite.bitmap = @snow_bitmap
  150.       when 4
  151.         sprite.bitmap = Bitmap.new(WEATHER_FILE)
  152.       end
  153.       sprite.z = 1000
  154.       sprite.x = -1000
  155.       sprite.y = -1000
  156.       sprite.visible = (i <= MAXNUMBER)
  157.       sprite.blend_type = BLEND_TYPE
  158.       sprite.opacity = START_OPACITY
  159.       @sprites.push(sprite)
  160.     end
  161.         weather_update

  162. # Make command window
  163. s1 = PARA_TITLE_CUSTOM::MENU_NEWGAME
  164. s2 = PARA_TITLE_CUSTOM::MENU_LOAD
  165. s3 = PARA_TITLE_CUSTOM::MENU_END
  166. w = PARA_TITLE_CUSTOM::WINDOW_WIDTH
  167. @command_window = Window_Command.new(w, [s1, s2, s3])
  168. if PARA_TITLE_CUSTOM::WINDOW_TRANS
  169. @command_window.opacity = 0
  170. else
  171. @command_window.back_opacity = PARA_TITLE_CUSTOM::WINDOW_OPACITY
  172. end
  173. # Position of the window
  174. case PARA_TITLE_CUSTOM::WINDOW_ALIGN
  175. when 0
  176. @command_window.x = PARA_TITLE_CUSTOM::WINDOW_POS_X
  177. when 1
  178. @command_window.x = 0
  179. when 2
  180. @command_window.x = ( 640 - @command_window.width ) / 2
  181. when 3
  182. @command_window.x = 640 - @command_window.width
  183. end
  184. case PARA_TITLE_CUSTOM::WINDOW_VALIGN
  185. when 0
  186. @command_window.y = PARA_TITLE_CUSTOM::WINDOW_POS_Y
  187. when 1
  188. @command_window.y = 0
  189. when 2
  190. @command_window.y = ( 480 - @command_window.height ) / 2
  191. when 3
  192. @command_window.y = 480 - @command_window.height
  193. end
  194. # Continue enabled determinant
  195. # Check if at least one save file exists
  196. # If enabled, make @continue_enabled true; if disabled, make it false
  197. @continue_enabled = true
  198. for i in 0..3
  199. if FileTest.exist?("Save#{i+1}.rxdata")
  200. @continue_enabled = true
  201. end
  202. end
  203. # If continue is enabled, move cursor to "Continue"
  204. # If disabled, display "Continue" text in gray
  205. if @continue_enabled
  206. @command_window.index = 1
  207. else
  208. @command_window.disable_item(1)
  209. end
  210. # Command Picture
  211. if PARA_TITLE_CUSTOM::IMG_MENU
  212. @command_window.visible = false
  213. @command_img1 = Sprite.new
  214. @command_img1.blend_type = PARA_TITLE_CUSTOM::BLEND_TYPE
  215. @command_img1.bitmap = RPG::Cache.title(PARA_TITLE_CUSTOM::IMG_NEWGAME[0])
  216. @command_img1.x = PARA_TITLE_CUSTOM::IMG_NEWGAME_X
  217. @command_img1.y = PARA_TITLE_CUSTOM::IMG_NEWGAME_Y
  218. @command_img2 = Sprite.new
  219. @command_img2.blend_type = PARA_TITLE_CUSTOM::BLEND_TYPE
  220. @command_img2.bitmap = RPG::Cache.title(PARA_TITLE_CUSTOM::IMG_LOAD[0])
  221. @command_img2.x = PARA_TITLE_CUSTOM::IMG_LOAD_X
  222. @command_img2.y = PARA_TITLE_CUSTOM::IMG_LOAD_Y
  223. @command_img3 = Sprite.new
  224. @command_img3.blend_type = PARA_TITLE_CUSTOM::BLEND_TYPE
  225. @command_img3.bitmap = RPG::Cache.title(PARA_TITLE_CUSTOM::IMG_END[0])
  226. @command_img3.x = PARA_TITLE_CUSTOM::IMG_END_X
  227. @command_img3.y = PARA_TITLE_CUSTOM::IMG_END_Y
  228. # If continue is enabled, move cursor to "Continue"
  229. # If disabled, display "Continue" text in gray
  230. if @continue_enabled
  231. @command_img1.bitmap = RPG::Cache.title(PARA_TITLE_CUSTOM::IMG_NEWGAME[0])
  232. @command_img2.bitmap = RPG::Cache.title(PARA_TITLE_CUSTOM::IMG_LOAD[1])
  233. else
  234. @command_img2.opacity = 160
  235. @command_img1.bitmap = RPG::Cache.title(PARA_TITLE_CUSTOM::IMG_NEWGAME[1])
  236. @command_img2.bitmap = RPG::Cache.title(PARA_TITLE_CUSTOM::IMG_LOAD[0])
  237. end
  238. end
  239. # Play title BGM
  240. $game_system.bgm_play($data_system.title_bgm)
  241. # Stop playing ME and BGS
  242. Audio.me_stop
  243. Audio.bgs_stop
  244. # Execute transition
  245. Graphics.transition
  246. # Main loop
  247. loop do
  248. # Update game screen
  249. Graphics.update
  250. # Update input information
  251. Input.update
  252. # Frame update
  253. update
  254. # Abort loop if screen is changed
  255. if $scene != self
  256. break
  257. end
  258. end
  259. # Prepare for transition
  260. Graphics.freeze
  261. # Dispose of command window
  262. @command_window.dispose
  263. if PARA_TITLE_CUSTOM::IMG_MENU
  264. @command_img1.dispose
  265. @command_img2.dispose
  266. @command_img3.dispose
  267. end
  268.     # 释放标题图形
  269.     @sprite.bitmap.dispose
  270.     @sprite.dispose
  271.     for sprite in @sprites
  272.       sprite.dispose
  273.     end
  274.     @rain_bitmap.dispose
  275.     @storm_bitmap.dispose
  276.     @snow_bitmap.dispose
  277. end

  278. #--------------------------------------------------------------------------
  279.   # ● 刷新天气
  280.   #--------------------------------------------------------------------------
  281.   def weather_update
  282.     return if WEATHER == 0
  283.     for i in 1..MAXNUMBER
  284.       sprite = @sprites[i]
  285.       if sprite == nil
  286.         break
  287.       end
  288.       if WEATHER == 1
  289.         sprite.x -= 2
  290.         sprite.y += 16
  291.         sprite.opacity -= 8
  292.       end
  293.       if WEATHER == 2
  294.         sprite.x -= 8
  295.         sprite.y += 16
  296.         sprite.opacity -= 12
  297.       end
  298.       if WEATHER == 3
  299.         sprite.x -= 2
  300.         sprite.y += 8
  301.         sprite.opacity -= 8
  302.       end
  303.       if WEATHER == 4
  304.         sprite.x -= WEATHER_X
  305.         sprite.y += WEATHER_Y
  306.         sprite.opacity -= WEATHER_OPACITY
  307.       end
  308.       x = sprite.x - @ox
  309.       y = sprite.y - @oy
  310.       if sprite.opacity < 32 or x < -100 or x > 750 or y < -1000 or y > 500
  311.         sprite.x = rand(RAND_X) + WIDTH + @ox
  312.         sprite.y = rand(RAND_Y) + HEIGHT + @oy
  313.         sprite.opacity = START_OPACITY
  314.       end
  315.     end
  316.   end
  317. #--------------------------------------------------------------------------
  318. # * Frame Update
  319. #--------------------------------------------------------------------------
  320. def update
  321. # Update command window
  322. @command_window.update
  323. # If C button was pressed
  324. if Input.trigger?(Input::C)
  325. # Branch by command window cursor position
  326. case @command_window.index
  327. when 0 # New game
  328. command_new_game
  329. when 1 # Continue
  330. command_continue
  331. when 2 # Shutdown
  332. command_shutdown
  333. end
  334. end   
  335. weather_update

  336. if PARA_TITLE_CUSTOM::IMG_MENU
  337. if Input.repeat?(Input::UP) or Input.repeat?(Input::DOWN)
  338. case @command_window.index
  339. when 0 # New Game
  340. @command_img1.bitmap = RPG::Cache.title(PARA_TITLE_CUSTOM::IMG_NEWGAME[1])
  341. @command_img2.bitmap = RPG::Cache.title(PARA_TITLE_CUSTOM::IMG_LOAD[0])
  342. @command_img3.bitmap = RPG::Cache.title(PARA_TITLE_CUSTOM::IMG_END[0])
  343. when 1 # Continue Game
  344. @command_img1.bitmap = RPG::Cache.title(PARA_TITLE_CUSTOM::IMG_NEWGAME[0])
  345. @command_img2.bitmap = RPG::Cache.title(PARA_TITLE_CUSTOM::IMG_LOAD[1])
  346. @command_img3.bitmap = RPG::Cache.title(PARA_TITLE_CUSTOM::IMG_END[0])
  347. when 2 # End Game
  348. @command_img1.bitmap = RPG::Cache.title(PARA_TITLE_CUSTOM::IMG_NEWGAME[0])
  349. @command_img2.bitmap = RPG::Cache.title(PARA_TITLE_CUSTOM::IMG_LOAD[0])
  350. @command_img3.bitmap = RPG::Cache.title(PARA_TITLE_CUSTOM::IMG_END[1])
  351. end
  352. end
  353. end
  354. end

  355. #---------------------------------------------
  356. def command_new_game
  357. # Play decision SE
  358. $game_system.se_play($data_system.decision_se)
  359. # Stop BGM
  360. Audio.bgm_stop
  361. # Reset frame count for measuring play time
  362. Graphics.frame_count = 0
  363. # Make each type of game object
  364. $game_temp = Game_Temp.new
  365. $game_system = Game_System.new
  366. $game_switches = Game_Switches.new
  367. $game_variables = Game_Variables.new
  368. $game_self_switches = Game_SelfSwitches.new
  369. $game_screen = Game_Screen.new
  370. $game_actors = Game_Actors.new
  371. $game_party = Game_Party.new
  372. $game_troop = Game_Troop.new
  373. $game_map = Game_Map.new
  374. $game_player = Game_Player.new
  375. # Set up initial party
  376. $game_party.setup_starting_members
  377. # Set up initial map position
  378. $game_map.setup($data_system.start_map_id)
  379. # Move player to initial position
  380. $game_player.moveto($data_system.start_x, $data_system.start_y)
  381. # Refresh player
  382. $game_player.refresh
  383. # Run automatic change for BGM and BGS set with map
  384. $game_map.autoplay
  385. # Update map (run parallel process event)
  386. $game_map.update
  387. # Switch to map screen
  388. $scene = Scene_Map.new
  389. end
  390. #--------------------------------------------------------------------------
  391. # * Command: Continue
  392. #--------------------------------------------------------------------------
  393. def command_continue
  394. # If continue is disabled
  395. unless @continue_enabled
  396. # Play buzzer SE
  397. $game_system.se_play($data_system.buzzer_se)
  398. return
  399. end
  400. # Play decision SE
  401. $game_system.se_play($data_system.decision_se)
  402. # Switch to load screen
  403. $scene = Scene_Load.new
  404. end
  405. #--------------------------------------------------------------------------
  406. # * Command: Shutdown
  407. #--------------------------------------------------------------------------
  408. def command_shutdown
  409. # Play decision SE
  410. $game_system.se_play($data_system.decision_se)
  411. # Fade out BGM, BGS, and ME
  412. Audio.bgm_fade(800)
  413. Audio.bgs_fade(800)
  414. Audio.me_fade(800)
  415. # Shutdown
  416. $scene = nil
  417. end
  418. #--------------------------------------------------------------------------
  419. # * Battle Test
  420. #--------------------------------------------------------------------------
  421. def battle_test
  422. # Load database (for battle test)
  423. $data_actors = load_data("Data/BT_Actors.rxdata")
  424. $data_classes = load_data("Data/BT_Classes.rxdata")
  425. $data_skills = load_data("Data/BT_Skills.rxdata")
  426. $data_items = load_data("Data/BT_Items.rxdata")
  427. $data_weapons = load_data("Data/BT_Weapons.rxdata")
  428. $data_armors = load_data("Data/BT_Armors.rxdata")
  429. $data_enemies = load_data("Data/BT_Enemies.rxdata")
  430. $data_troops = load_data("Data/BT_Troops.rxdata")
  431. $data_states = load_data("Data/BT_States.rxdata")
  432. $data_animations = load_data("Data/BT_Animations.rxdata")
  433. $data_tilesets = load_data("Data/BT_Tilesets.rxdata")
  434. $data_common_events = load_data("Data/BT_CommonEvents.rxdata")
  435. $data_system = load_data("Data/BT_System.rxdata")
  436. # Reset frame count for measuring play time
  437. Graphics.frame_count = 0
  438. # Make each game object
  439. $game_temp = Game_Temp.new
  440. $game_system = Game_System.new
  441. $game_switches = Game_Switches.new
  442. $game_variables = Game_Variables.new
  443. $game_self_switches = Game_SelfSwitches.new
  444. $game_screen = Game_Screen.new
  445. $game_actors = Game_Actors.new
  446. $game_party = Game_Party.new
  447. $game_troop = Game_Troop.new
  448. $game_map = Game_Map.new
  449. $game_player = Game_Player.new
  450. # Set up party for battle test
  451. $game_party.setup_battle_test_members
  452. # Set troop ID, can escape flag, and battleback
  453. $game_temp.battle_troop_id = $data_system.test_troop_id
  454. $game_temp.battle_can_escape = true
  455. $game_map.battleback_name = $data_system.battleback_name
  456. # Play battle start SE
  457. $game_system.se_play($data_system.battle_start_se)
  458. # Play battle BGM
  459. $game_system.bgm_play($game_system.battle_bgm)
  460. # Switch to battle screen
  461. $scene = Scene_Battle.new
  462. end
  463. end
复制代码
KRKR + NS 学习中..........
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
0 小时
注册时间
2007-5-14
帖子
82
4
 楼主| 发表于 2007-7-9 21:01:02 | 只看该作者
不行啊 ......
你要代码我给你


  1. #==============================================================================
  2. # ■ 图片标题菜单1.0
  3. # Scene_Title
  4. #------------------------------------------------------------------------------
  5. # 作者:chaochao
  6. # http://zhuchao.go1.icpcn.com
  7. #==============================================================================
  8. class Scene_Title
  9.   def main
  10.     if $BTEST
  11.       battle_test
  12.       return
  13.     end
  14.     $data_actors = load_data("Data/Actors.rxdata")
  15.     $data_classes = load_data("Data/Classes.rxdata")
  16.     $data_skills = load_data("Data/Skills.rxdata")
  17.     $data_items = load_data("Data/Items.rxdata")
  18.     $data_weapons = load_data("Data/Weapons.rxdata")
  19.     $data_armors = load_data("Data/Armors.rxdata")
  20.     $data_enemies = load_data("Data/Enemies.rxdata")
  21.     $data_troops = load_data("Data/Troops.rxdata")
  22.     $data_states = load_data("Data/States.rxdata")
  23.     $data_animations = load_data("Data/Animations.rxdata")
  24.     $data_tilesets = load_data("Data/Tilesets.rxdata")
  25.     $data_common_events = load_data("Data/CommonEvents.rxdata")
  26.     $data_system = load_data("Data/System.rxdata")
  27.     $game_system = Game_System.new
  28.     # 生成标题图形
  29.     @sprite = [Sprite.new]
  30.     for i in 0..6
  31.       @sprite[i] = Sprite.new
  32.       @sprite[i].opacity = 0
  33.     end
  34.     @sprite[0].bitmap = RPG::Cache.title($data_system.title_name)
  35.     @sprite[0].opacity = 0
  36.     #开始游戏的图片
  37.     @sprite[1].bitmap = Bitmap.new("Graphics/Pictures/start-1.png")
  38.     @sprite[2].bitmap = Bitmap.new("Graphics/Pictures/start-2.png")
  39.     #继续游戏的图片
  40.     @sprite[3].bitmap = Bitmap.new("Graphics/Pictures/continue-1.png")
  41.     @sprite[4].bitmap = Bitmap.new("Graphics/Pictures/continue-2.png")
  42.     #结束游戏的图片
  43.     @sprite[5].bitmap = Bitmap.new("Graphics/Pictures/exit-1.png")
  44.     @sprite[6].bitmap = Bitmap.new("Graphics/Pictures/exit-2.png")
  45.     #图片位置
  46.     for i in 1..6
  47.       x=110
  48.       y=(i+1)/2*35+240
  49.       @sprite[i].x =x
  50.       @sprite[i].y =y
  51.     end
  52.     @continue_enabled = false
  53.     for i in 0..3
  54.       if FileTest.exist?("Save#{i+1}.rxdata")
  55.         @continue_enabled = true
  56.       end
  57.     end
  58.     if @continue_enabled
  59.       @command_index = 1
  60.     else
  61.       @command_index = 0
  62.       @sprite[3].tone = Tone.new(0, 0, 0, 255)
  63.       @sprite[4].tone = Tone.new(0, 0, 0, 255)
  64.     end
  65.     $game_system.bgm_play($data_system.title_bgm)
  66.     Audio.me_stop
  67.     Audio.bgs_stop
  68.     Graphics.transition
  69.     loop do
  70.       Graphics.update
  71.       #淡出背景圖形
  72.       if @sprite[0].opacity <= 255
  73.         @sprite[0].opacity += 15
  74.       end
  75.       Input.update
  76.       update
  77.       if $scene != self
  78.         break
  79.       end
  80.     end
  81.     Graphics.freeze
  82.     # 釋放圖形
  83.     for i in 0..6
  84.       @sprite[i].bitmap.dispose
  85.       @sprite[i].dispose
  86.     end
  87.   end
  88.   def update
  89.   chaochaocommandchaochao
  90.   if Input.trigger?(Input::C)
  91.     case @command_index
  92.       when 0
  93.         command_new_game
  94.       when 1
  95.         command_continue
  96.       when 2
  97.         command_shutdown
  98.       end
  99.     end
  100.   end
  101.   def chaochaocommandchaochao
  102.     if Input.trigger?(Input::UP)
  103.       @command_index -= 1
  104.       if @command_index < 0
  105.         @command_index = 2
  106.       end
  107.       $game_system.se_play($data_system.cursor_se)
  108.     end
  109.     if Input.trigger?(Input::DOWN)
  110.       @command_index += 1
  111.       if @command_index > 2
  112.         @command_index = 0
  113.       end
  114.       $game_system.se_play($data_system.cursor_se)
  115.     end
  116.     case @command_index
  117.     when 0
  118.       if @sprite[1].opacity >= 0
  119.         @sprite[1].opacity -= 30
  120.       end
  121.       if @sprite[2].opacity <= 240
  122.         @sprite[2].opacity += 30
  123.       end
  124.       if @sprite[3].opacity <= 210
  125.         @sprite[3].opacity += 30
  126.       end
  127.       if @sprite[4].opacity >= 0
  128.         @sprite[4].opacity -= 30
  129.       end
  130.       if @sprite[5].opacity <= 210
  131.         @sprite[5].opacity += 30
  132.       end
  133.       if @sprite[6].opacity >= 0
  134.         @sprite[6].opacity -= 30
  135.       end
  136.     when 1
  137.       if @sprite[1].opacity <= 210
  138.         @sprite[1].opacity += 30
  139.       end
  140.       if @sprite[2].opacity >= 0
  141.         @sprite[2].opacity -= 30
  142.       end
  143.       if @sprite[3].opacity >= 0
  144.         @sprite[3].opacity -= 30
  145.       end
  146.       if @sprite[4].opacity <= 240
  147.         @sprite[4].opacity += 30
  148.       end
  149.       if @sprite[5].opacity <= 210
  150.         @sprite[5].opacity += 30
  151.       end
  152.       if @sprite[6].opacity >= 0
  153.         @sprite[6].opacity -= 30
  154.       end
  155.     when 2
  156.       if @sprite[1].opacity <= 210
  157.         @sprite[1].opacity += 30
  158.       end
  159.       if @sprite[2].opacity >= 0
  160.         @sprite[2].opacity -= 30
  161.       end
  162.       if @sprite[3].opacity <= 210
  163.         @sprite[3].opacity += 30
  164.       end
  165.       if @sprite[4].opacity >= 0
  166.         @sprite[4].opacity -= 30
  167.       end
  168.       if @sprite[5].opacity >= 0
  169.         @sprite[5].opacity -= 30
  170.       end
  171.       if @sprite[6].opacity <= 240
  172.         @sprite[6].opacity += 30
  173.       end
  174.     end
  175.   end
  176. end
复制代码
  1. #==============================================================================
  2. # ■ Scene_Title
  3. #------------------------------------------------------------------------------
  4. #  处理标题画面的类。
  5. #==============================================================================

  6. class Scene_Title
  7.   WEATHER = 4     # 使用自定义效果(0:无,1:雨,2:暴风雨,3:雪,4:自定义)
  8.   MAXNUMBER = 20  # 天气图片数量
  9.   
  10.   WEATHER_FILE = "Graphics/Pictures/Title_starlong.png"
  11.   # 自定义图片路径,这个文件可以从黑暗圣剑DEMO获得,是流星雨
  12.   
  13.   BLEND_TYPE = 1 # 合成方式(0:普通,1:加法,2:减法)
  14.   WEATHER_X = 5 # X方向每回合减少象素
  15.   WEATHER_Y = 5 # Y方向每回合减少象素
  16.   WEATHER_OPACITY = 2 #每回合减低透明度
  17.   START_OPACITY = 200 #出现时的透明度
  18.   RAND_X = 1200 # 随机X范围
  19.   RAND_Y = 600 # 随机Y范围
  20.   HEIGHT = -300 # 出现时候的屏幕Y
  21.   WIDTH = 100 # 出现时候的屏幕X
  22.   #--------------------------------------------------------------------------
  23.   # ● 住处理
  24.   #--------------------------------------------------------------------------
  25.   def main
  26.     # 战斗测试的情况下
  27.     if $BTEST
  28.       battle_test
  29.       return
  30.     end
  31.     # 载入数据库
  32.     $data_actors        = load_data("Data/Actors.rxdata")
  33.     $data_classes       = load_data("Data/Classes.rxdata")
  34.     $data_skills        = load_data("Data/Skills.rxdata")
  35.     $data_items         = load_data("Data/Items.rxdata")
  36.     $data_weapons       = load_data("Data/Weapons.rxdata")
  37.     $data_armors        = load_data("Data/Armors.rxdata")
  38.     $data_enemies       = load_data("Data/Enemies.rxdata")
  39.     $data_troops        = load_data("Data/Troops.rxdata")
  40.     $data_states        = load_data("Data/States.rxdata")
  41.     $data_animations    = load_data("Data/Animations.rxdata")
  42.     $data_tilesets      = load_data("Data/Tilesets.rxdata")
  43.     $data_common_events = load_data("Data/CommonEvents.rxdata")
  44.     $data_system        = load_data("Data/System.rxdata")
  45.     # 生成系统对像
  46.     $game_system = Game_System.new
  47.     # 生成标题图形
  48.     @sprite = Sprite.new
  49.     @sprite.bitmap = RPG::Cache.title($data_system.title_name)
  50.     @ox = 0
  51.     @oy = 0
  52.     color1 = Color.new(255, 255, 255, 255)
  53.     color2 = Color.new(255, 255, 255, 128)
  54.     @rain_bitmap = Bitmap.new(7, 56)
  55.     for i in 0..6
  56.       @rain_bitmap.fill_rect(6-i, i*8, 1, 8, color1)
  57.     end
  58.     @storm_bitmap = Bitmap.new(34, 64)
  59.     for i in 0..31
  60.       @storm_bitmap.fill_rect(33-i, i*2, 1, 2, color2)
  61.       @storm_bitmap.fill_rect(32-i, i*2, 1, 2, color1)
  62.       @storm_bitmap.fill_rect(31-i, i*2, 1, 2, color2)
  63.     end
  64.     @snow_bitmap = Bitmap.new(6, 6)
  65.     @snow_bitmap.fill_rect(0, 1, 6, 4, color2)
  66.     @snow_bitmap.fill_rect(1, 0, 4, 6, color2)
  67.     @snow_bitmap.fill_rect(1, 2, 4, 2, color1)
  68.     @snow_bitmap.fill_rect(2, 1, 2, 4, color1)
  69.     @sprites = []
  70.     for i in 1..40
  71.       sprite = Sprite.new
  72.       case WEATHER
  73.       when 1
  74.         sprite.bitmap = @rain_bitmap
  75.       when 2
  76.         sprite.bitmap = @storm_bitmap
  77.       when 3
  78.         sprite.bitmap = @snow_bitmap
  79.       when 4
  80.         sprite.bitmap = Bitmap.new(WEATHER_FILE)
  81.       end
  82.       sprite.z = 1000
  83.       sprite.x = -1000
  84.       sprite.y = -1000
  85.       sprite.visible = (i <= MAXNUMBER)
  86.       sprite.blend_type = BLEND_TYPE
  87.       sprite.opacity = START_OPACITY
  88.       @sprites.push(sprite)
  89.     end
  90.     weather_update
  91.     # 生成命令窗口
  92.     s1 = "开始新的传说"
  93.     s2 = "  继续传说"
  94.     s3 = "  结束传说"
  95.     @command_window = Window_Command.new(192, [s1, s2, s3])
  96.     @command_window.back_opacity = 160
  97.     @command_window.x = 320 - @command_window.width / 2
  98.     @command_window.y = 288
  99.     # 判定继续的有效性
  100.     # 存档文件一个也不存在的时候也调查
  101.     # 有効为 @continue_enabled 为 true、無効为 false
  102.     @continue_enabled = false
  103.     for i in 0..6
  104.       if FileTest.exist?("Save/Save#{i}.rxdata")
  105.         @continue_enabled = true
  106.       end
  107.     end
  108.     # 继续为有效的情况下、光标停止在继续上
  109.     # 无效的情况下、继续的文字显示为灰色
  110.     if @continue_enabled
  111.       @command_window.index = 1
  112.     else
  113.       @command_window.disable_item(1)
  114.     end
  115.     # 演奏标题 BGM
  116.     $game_system.bgm_play($data_system.title_bgm)
  117.     # 停止演奏 ME、BGS
  118.     Audio.me_stop
  119.     Audio.bgs_stop
  120.     # 执行过渡
  121.     Graphics.transition(25, "Graphics/Transitions/" +$data_system.battle_transition)
  122.     # 主循环
  123.     loop do
  124.       # 刷新游戏画面
  125.       Graphics.update
  126.       # 刷新输入信息
  127.       Input.update
  128.       # 刷新画面
  129.       update
  130.       # 如果画面被切换就中断循环
  131.       if $scene != self
  132.         break
  133.       end
  134.     end
  135.     # 装备过渡
  136.     Graphics.freeze
  137.     # 释放命令窗口
  138.     @command_window.dispose
  139.     # 释放标题图形
  140.     @sprite.bitmap.dispose
  141.     @sprite.dispose
  142.     for sprite in @sprites
  143.       sprite.dispose
  144.     end
  145.     @rain_bitmap.dispose
  146.     @storm_bitmap.dispose
  147.     @snow_bitmap.dispose
  148.   end
  149.   #--------------------------------------------------------------------------
  150.   # ● 刷新天气
  151.   #--------------------------------------------------------------------------
  152.   def weather_update
  153.     return if WEATHER == 0
  154.     for i in 1..MAXNUMBER
  155.       sprite = @sprites[i]
  156.       if sprite == nil
  157.         break
  158.       end
  159.       if WEATHER == 1
  160.         sprite.x -= 2
  161.         sprite.y += 16
  162.         sprite.opacity -= 8
  163.       end
  164.       if WEATHER == 2
  165.         sprite.x -= 8
  166.         sprite.y += 16
  167.         sprite.opacity -= 12
  168.       end
  169.       if WEATHER == 3
  170.         sprite.x -= 2
  171.         sprite.y += 8
  172.         sprite.opacity -= 8
  173.       end
  174.       if WEATHER == 4
  175.         sprite.x -= WEATHER_X
  176.         sprite.y += WEATHER_Y
  177.         sprite.opacity -= WEATHER_OPACITY
  178.       end
  179.       x = sprite.x - @ox
  180.       y = sprite.y - @oy
  181.       if sprite.opacity < 32 or x < -100 or x > 750 or y < -1000 or y > 500
  182.         sprite.x = rand(RAND_X) + WIDTH + @ox
  183.         sprite.y = rand(RAND_Y) + HEIGHT + @oy
  184.         sprite.opacity = START_OPACITY
  185.       end
  186.     end
  187.   end
  188.   #--------------------------------------------------------------------------
  189.   # ● 刷新画面
  190.   #--------------------------------------------------------------------------
  191.   def update
  192.     # 刷新命令窗口
  193.     @command_window.update
  194.     # 按下 C 键的情况下
  195.     if Input.trigger?(Input::C)
  196.       # 命令窗口的光标位置的分支
  197.       case @command_window.index
  198.       when 0  # 新游戏
  199.         command_new_game
  200.       when 1  # 继续
  201.         command_continue
  202.       when 2  # 退出
  203.         command_shutdown
  204.       end
  205.     end   
  206.     weather_update
  207.   end
  208.   #--------------------------------------------------------------------------
  209.   # ● 命令 : 新游戏
  210.   #--------------------------------------------------------------------------
  211.   def command_new_game
  212.     # 演奏确定 SE
  213.     $game_system.se_play($data_system.decision_se)
  214.     # 停止 BGM
  215.     Audio.bgm_stop
  216.     # 重置测量游戏时间用的画面计数器
  217.     Graphics.frame_count = 0
  218.     # 生成各种游戏对像
  219.     $game_temp          = Game_Temp.new
  220.     $game_system        = Game_System.new
  221.     $game_switches      = Game_Switches.new
  222.     $game_variables     = Game_Variables.new
  223.     $game_self_switches = Game_SelfSwitches.new
  224.     $game_screen        = Game_Screen.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.     # 设置初期同伴位置
  231.     $game_party.setup_starting_members
  232.     # 设置初期位置的地图
  233.     $game_map.setup($data_system.start_map_id)
  234.     # 主角向初期位置移动
  235.     $game_player.moveto($data_system.start_x, $data_system.start_y)
  236.     # 刷新主角
  237.     $game_player.refresh
  238.     # 执行地图设置的 BGM 与 BGS 的自动切换
  239.     $game_map.autoplay
  240.     # 刷新地图 (执行并行事件)
  241.     $game_map.update
  242.     # 切换地图画面
  243.     $scene = Scene_Map.new
  244.   end
  245.   #--------------------------------------------------------------------------
  246.   # ● 命令 : 继续
  247.   #--------------------------------------------------------------------------
  248.   def command_continue
  249.     # 继续无效的情况下
  250.     unless @continue_enabled
  251.       # 演奏无效 SE
  252.       $game_system.se_play($data_system.buzzer_se)
  253.       return
  254.     end
  255.     # 演奏确定 SE
  256.     $game_system.se_play($data_system.decision_se)
  257.     # 切换到读档画面
  258.     $scene = Scene_Load.new
  259.   end
  260.   #--------------------------------------------------------------------------
  261.   # ● 命令 : 退出
  262.   #--------------------------------------------------------------------------
  263.   def command_shutdown
  264.     # 演奏确定 SE
  265.     $game_system.se_play($data_system.decision_se)
  266.     # BGM、BGS、ME 的淡入淡出
  267.     Audio.bgm_fade(800)
  268.     Audio.bgs_fade(800)
  269.     Audio.me_fade(800)
  270.     # 退出
  271.     $scene = nil
  272.   end
  273.   #--------------------------------------------------------------------------
  274.   # ● 战斗测试
  275.   #--------------------------------------------------------------------------
  276.   def battle_test
  277.     # 载入数据库 (战斗测试用)
  278.     $data_actors        = load_data("Data/BT_Actors.rxdata")
  279.     $data_classes       = load_data("Data/BT_Classes.rxdata")
  280.     $data_skills        = load_data("Data/BT_Skills.rxdata")
  281.     $data_items         = load_data("Data/BT_Items.rxdata")
  282.     $data_weapons       = load_data("Data/BT_Weapons.rxdata")
  283.     $data_armors        = load_data("Data/BT_Armors.rxdata")
  284.     $data_enemies       = load_data("Data/BT_Enemies.rxdata")
  285.     $data_troops        = load_data("Data/BT_Troops.rxdata")
  286.     $data_states        = load_data("Data/BT_States.rxdata")
  287.     $data_animations    = load_data("Data/BT_Animations.rxdata")
  288.     $data_tilesets      = load_data("Data/BT_Tilesets.rxdata")
  289.     $data_common_events = load_data("Data/BT_CommonEvents.rxdata")
  290.     $data_system        = load_data("Data/BT_System.rxdata")
  291.     # 重置测量游戏时间用的画面计数器
  292.     Graphics.frame_count = 0
  293.     # 生成各种游戏对像
  294.     $game_temp          = Game_Temp.new
  295.     $game_system        = Game_System.new
  296.     $game_switches      = Game_Switches.new
  297.     $game_variables     = Game_Variables.new
  298.     $game_self_switches = Game_SelfSwitches.new
  299.     $game_screen        = Game_Screen.new
  300.     $game_actors        = Game_Actors.new
  301.     $game_party         = Game_Party.new
  302.     $game_troop         = Game_Troop.new
  303.     $game_map           = Game_Map.new
  304.     $game_player        = Game_Player.new
  305.     # 设置战斗测试用同伴
  306.     $game_party.setup_battle_test_members
  307.     # 设置队伍 ID、可以逃走标志、战斗背景
  308.     $game_temp.battle_troop_id = $data_system.test_troop_id
  309.     $game_temp.battle_can_escape = true
  310.     $game_map.battleback_name = $data_system.battleback_name
  311.     # 演奏战斗开始 BGM
  312.     $game_system.se_play($data_system.battle_start_se)
  313.     # 演奏战斗 BGM
  314.     $game_system.bgm_play($game_system.battle_bgm)
  315.     # 切换到战斗画面
  316.     $scene = Scene_Battle.new
  317.   end
  318. end
复制代码
回复 支持 反对

使用道具 举报

Lv1.梦旅人

查无此人

梦石
0
星屑
50
在线时间
9 小时
注册时间
2006-5-8
帖子
1399
5
发表于 2007-7-9 21:10:22 | 只看该作者
怎么会不行, 我都测试过了. 要不我把我工程给你吧, 你把图形换一下就可以用了。

http://rpg.blue/upload_program/f ... hic Menu System.rar
系统信息:本贴由楼主认可为正确答案,66RPG感谢您的热情解答~
KRKR + NS 学习中..........
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2025-9-22 00:17

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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