Project1

标题: GameOver美化(再次修正|||) [打印本页]

作者: serena718    时间: 2012-2-11 00:37
标题: GameOver美化(再次修正|||)
本帖最后由 serena718 于 2012-2-12 01:42 编辑

新人腦抽作,第一次嘗試三版本整合,寫法各種渣,還參考了下這裡各位強大高手的版本判斷方式……


※Sorry,發現有素材忘記補上,已經修正了m(_ _)m

上圖:



雖然畫面是XP的,但其實三版本的畫面都差不多

所需素材:

Continue:請命名為continue,XP使用者請放到Gameovers資料夾中,VX、VA使用者請放到System資料夾中



To Title:請命名為to_title,XP使用者請放到Gameovers資料夾中,VX、VA使用者請放到System資料夾中



Line:請命名為line,XP使用者請放到Gameovers資料夾中,VX、VA使用者請放到System資料夾中




腳本:請置於Main以上,Scene_Gameover下

  1. Ruby = Module.new
  2. Ruby::Edition = self ? RUBY_VERSION == '1.9.2' ? :va : :vx : :xp
  3. class Scene_Base
  4. end
  5. class Scene_Gameover < Scene_Base
  6. attr_reader :spriteset
  7. def start
  8.   super
  9.   play_gameover_music
  10.   perform_transition
  11.   create_background
  12.   if Ruby::Edition.equal?(:va)
  13.   loop do
  14.     update_basic
  15.     update
  16.     if scene_changing?
  17.       break
  18.     end
  19.    end
  20. end
  21.   Graphics.transition(40)
  22. end
  23. if Ruby::Edition.equal?(:xp)
  24. def main
  25.   play_gameover_music
  26.   create_background
  27.   perform_transition
  28.   loop do
  29.     Graphics.update
  30.     Input.update
  31.     update
  32.     if $scene != self
  33.       break
  34.     end
  35.   end
  36.   Graphics.freeze
  37.   dispose_background
  38.   Graphics.transition(40)
  39.   end
  40. end
  41.   def create_background
  42.     @spriteset = Spriteset_Map.new
  43.     @count = 0
  44.     @count_light = 0
  45.     @sprite = Sprite.new
  46.     @sprite.bitmap = Ruby::Edition.equal?(:xp) ? RPG::Cache.gameover($data_system.gameover_name): Cache.system("GameOver")
  47.     @sprite.opacity = 160
  48.     @line = Sprite.new
  49.     @line.bitmap = Ruby::Edition.equal?(:xp) ? RPG::Cache.gameover("line") : Cache.system("line")
  50.     @line.x = Ruby::Edition.equal?(:xp) ? 350 : Graphics.width - 290
  51.     @line.y = Ruby::Edition.equal?(:xp) ? 315 : Graphics.height - 165
  52.     @line.zoom_y = 0.75
  53.     @line.opacity = 192
  54.     @com1 = Sprite.new
  55.     @com1.bitmap = Ruby::Edition.equal?(:xp) ? RPG::Cache.gameover("continue") : Cache.system("continue")
  56.     @com1.x = Ruby::Edition.equal?(:xp) ? 360 : Graphics.width - 280
  57.     @com1.y = Ruby::Edition.equal?(:xp) ? 295 : Graphics.height - 185
  58.     @com1.opacity = 0
  59.     @com2 = Sprite.new
  60.     @com2.bitmap = Ruby::Edition.equal?(:xp) ? RPG::Cache.gameover("to_title") : Cache.system("to_title")
  61.     @com2.x = Ruby::Edition.equal?(:xp) ? 510 : Graphics.width - 130
  62.     @com2.y = Ruby::Edition.equal?(:xp) ? 295 : Graphics.height - 185
  63.     @com2.opacity = 0
  64.   end
  65.   def play_gameover_music
  66.     @bgm = Ruby::Edition.equal?(:xp) ? $game_system.bgm_play(nil) : RPG::BGM.stop
  67.     @bgs =Ruby::Edition.equal?(:xp) ? $game_system.bgs_play(nil) : RPG::BGS.stop
  68.     @me = Ruby::Edition.equal?(:xp) ? $game_system.me_play($data_system.gameover_me) : $data_system.gameover_me.play
  69.   end
  70.   def perform_transition
  71.     Graphics.transition(60)
  72.   end
  73.   def dispose_background
  74.     @spriteset.dispose
  75.     @sprite.bitmap.dispose
  76.     @sprite.dispose
  77.     @line.bitmap.dispose
  78.     @line.dispose
  79.     @com1.bitmap.dispose
  80.     @com1.dispose
  81.     @com2.bitmap.dispose
  82.     @com2.dispose
  83.   end
  84.   def dispose_gameover_graphic
  85.     @spriteset.dispose
  86.     @sprite.bitmap.dispose
  87.     @sprite.dispose
  88.     @line.bitmap.dispose
  89.     @line.dispose
  90.     @com1.bitmap.dispose
  91.     @com1.dispose
  92.     @com2.bitmap.dispose
  93.     @com2.dispose
  94.   end
  95.   def update
  96.     super if Ruby::Edition.equal?(:vx)
  97.     @screen_update = Ruby::Edition.equal?(:xp) ? $game_screen.update : $game_map.screen.update
  98.     @spriteset.update
  99.     $game_map.update
  100.     if @light_up
  101.       @count_light += 15
  102.       light = @count_light
  103.       light = 510 - @count_light unless @count_light < 255
  104.       @light_up.tone = Tone.new(light, light, light)
  105.       @count_light = 0 if @count_light == 510
  106.     end
  107.     @line.zoom_x += 0.2 unless @count > 50
  108.     @com1.opacity += 6 unless @count > 32
  109.     @com2.opacity += 6 unless @count > 32
  110.     @light_up = @com1 if @count == 33
  111.     @count += 1
  112.     if Input.trigger? Ruby::Edition.equal?(:va) ? (:RIGHT) : (Input::RIGHT) or Input.trigger? Ruby::Edition.equal?(:va) ? (:LEFT) : (Input::LEFT)
  113.       Ruby::Edition.equal?(:xp) ? $game_system.se_play($data_system.cursor_se) : Sound.play_cursor
  114.       @com1.tone = Tone.new(0, 0, 0)
  115.       @com2.tone = Tone.new(0, 0, 0)
  116.       @light_up = (@light_up == @com1) ? @com2 : @com1
  117.     end
  118.     if Input.trigger? Ruby::Edition.equal?(:va) ? (:C) : (Input::C)
  119.       Ruby::Edition.equal?(:xp) ? $game_system.se_play($data_system.decision_se) : Sound.play_cancel
  120.       case @light_up
  121.       when @com1
  122.         Graphics.transition(20)
  123.         Ruby::Edition.equal?(:xp) ? $scene = Scene_Load.new : Ruby::Edition.equal?(:va) ? SceneManager.goto(Scene_Load) : $scene = Scene_File.new(false, true, false)
  124.         Graphics.fadeout(120) if Ruby::Edition.equal?(:vx)
  125.       when @com2
  126.         Graphics.transition(40)
  127.         Ruby::Edition.equal?(:va) ? goto_title : $scene = Scene_Title.new
  128.         Graphics.fadeout(120) if Ruby::Edition.equal?(:vx)
  129.       end
  130.     end
  131.   end
  132. end
复制代码

作者: dbshy    时间: 2012-2-11 23:17
本帖最后由 dbshy 于 2012-2-11 23:32 编辑

@serena718XP真的能用吗
那段判断版本看不懂,解释下
脚本技术退化的太厉害
作者: serena718    时间: 2012-2-12 01:45
dbshy 发表于 2012-2-11 23:17
@serena718XP真的能用吗
那段判断版本看不懂,解释下
脚本技术退化的太厉害 ...

抱歉,已經修正了
版本判斷那裡我原是參考忧雪の伤大大的判斷方式
原本我試三個版本都沒問題了,但有次放到VA後手賤改了下,然後又忘了這回事
之後貼上來時就直接複製了VA裡那個改過的版本,造成您的不便,見諒(u_u|||)
作者: Mr丶木头    时间: 2012-4-7 20:22
这个脚本碰到问题了……  求教,就是按下continue后出来读档界面,再按下取消……  发生了神马……?!@@#%&¥%  怎么没死掉……
作者: serena718    时间: 2012-4-10 23:38
Mr丶木头 发表于 2012-4-7 20:22
这个脚本碰到问题了……  求教,就是按下continue后出来读档界面,再按下取消……  发生了神马……?!@@# ...

是VA的版本嗎??
基本上XP和VX版本的,在按下continue後的讀檔畫面返回的話,正常是會回到標題畫面
VA的話因為內建腳本的返回寫法是為「返回上一場景」,所以在按下返回後應該是會回到遊戲結束畫面
因為要改動太麻煩了,牽扯太多,所以我就沒動這部分
基本上是不會影響遊戲進行才是




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