Project1

标题: 脚本求简单地改下 [打印本页]

作者: yangjunyin2002    时间: 2013-6-10 14:52
标题: 脚本求简单地改下
没时间了...下面这个脚本是用于切换游戏的菜单背景图的,我想把它改成图片鉴赏那种。@protosssonny
脚本所需的素材:http://pan.baidu.com/share/link? ... 5&uk=1780376705
脚本:
  1. #============================================================================
  2. #    ◆ 菜单可更换壁纸Ver2.0              ◆ VX ◆
  3. #    ◇ 2010-07-22 By: Carolawyer or Linki Shy  ◇
  4. #    说明一:大幅缩减上一版的代码,更加成熟
  5. #    说明二:壁纸图片名称以1,2,3...自然数排列方式命名
  6. #============================================================================

  7. module Wallpaper
  8.   # 壁纸存放文件夹的路径
  9.   BG_DIR = "Graphics/Background/"
  10.   # 所有窗口的透明度
  11.   WINDOW_BACK_OPACITY = 100
  12.   # 壁纸的默认样式,等于零时为截图背景
  13.   WALLPAPER = 1
  14.   # 壁纸的数量
  15.   PAPERMAX = 10
  16. end

  17. #==============================================================================
  18. # ■ Cache
  19. #==============================================================================
  20. module Cache
  21.   #--------------------------------------------------------------------------
  22.   # * 获取背景图档
  23.   #     filename : 文件名
  24.   #--------------------------------------------------------------------------
  25.   def self.background(filename)
  26.     load_bitmap(Wallpaper::BG_DIR, filename)
  27.   end
  28. end

  29. #==============================================================================
  30. # ■ Game_Temp
  31. #==============================================================================

  32. class Game_Temp
  33.   #--------------------------------------------------------------------------
  34.   # ● 定义实例变量
  35.   #--------------------------------------------------------------------------
  36.   attr_accessor :background_bitmap_temp        # background bitmap temp
  37.   #--------------------------------------------------------------------------
  38.   # ● 初始化对像
  39.   #--------------------------------------------------------------------------
  40.   alias initialize_old initialize
  41.   def initialize
  42.     initialize_old
  43.     @background_bitmap_temp = Bitmap.new(1, 1)
  44.   end
  45. end
  46. #==============================================================================
  47. # ■ Game_System
  48. #==============================================================================

  49. class Game_System
  50.   #--------------------------------------------------------------------------
  51.   # ● 定义实例变量
  52.   #--------------------------------------------------------------------------
  53.   attr_accessor :wallpaper                # 壁纸
  54.   #--------------------------------------------------------------------------
  55.   # ● 初始化对像
  56.   #--------------------------------------------------------------------------
  57.   alias initialize_old initialize
  58.   def initialize
  59.     initialize_old
  60.     @wallpaper = Wallpaper::WALLPAPER
  61.   end
  62. end

  63. #==============================================================================
  64. # ■ Window_Base
  65. #------------------------------------------------------------------------------
  66. #  游戏中全部窗口的超级类。
  67. #==============================================================================

  68. class Window_Base < Window
  69.   alias initialize_old initialize
  70.   def initialize(x, y, width, height)
  71.     initialize_old(x, y, width, height)
  72.     self.back_opacity = Wallpaper::WINDOW_BACK_OPACITY
  73.   end
  74. end

  75. #==============================================================================
  76. # ■ Scene_Base
  77. #------------------------------------------------------------------------------
  78. #  游戏中全部画面的超级类。
  79. #==============================================================================

  80. class Scene_Base
  81.   #--------------------------------------------------------------------------
  82.   # ● 截图做下一个画面的背景
  83.   #--------------------------------------------------------------------------
  84.   def snapshot_for_background
  85.     $game_temp.background_bitmap.dispose
  86.     $game_temp.background_bitmap = Graphics.snap_to_bitmap
  87.     $game_temp.background_bitmap.blur
  88.     $game_temp.background_bitmap_temp = $game_temp.background_bitmap
  89.   end
  90.   #--------------------------------------------------------------------------
  91.   # ● 更换背景bitmap
  92.   #--------------------------------------------------------------------------
  93.   def change_wallpaper
  94.     if $game_system.wallpaper > 0
  95.       $game_temp.background_bitmap = Cache.background("#{$game_system.wallpaper}")
  96.     end
  97.   end
  98.   #--------------------------------------------------------------------------
  99.   # ● 生成菜单画面背景
  100.   #--------------------------------------------------------------------------
  101.   def create_menu_background
  102.     @menuback_sprite = Sprite.new
  103.     @menuback_sprite.bitmap = $game_temp.background_bitmap
  104.     if $game_system.wallpaper == 0
  105.       @menuback_sprite.bitmap = $game_temp.background_bitmap_temp
  106.       @menuback_sprite.color.set(16, 16, 16, 128)
  107.     end
  108.     update_menu_background
  109.   end
  110. end

  111. #==============================================================================
  112. # ■ Scene_Menu
  113. #------------------------------------------------------------------------------
  114. #  处理菜单画面的类。
  115. #==============================================================================

  116. class Scene_Menu < Scene_Base
  117.   #--------------------------------------------------------------------------
  118.   # ● 开始处理
  119.   #--------------------------------------------------------------------------
  120.   def start
  121.     super
  122.     change_wallpaper
  123.     create_menu_background
  124.     create_command_window
  125.     @gold_window = Window_Gold.new(0, 360)
  126.     @status_window = Window_MenuStatus.new(160, 0)
  127.   end
  128. end

  129. #==============================================================================
  130. # ■ Scene_End
  131. #------------------------------------------------------------------------------
  132. #  处理游戏结束画面的类。
  133. #==============================================================================

  134. class Scene_End < Scene_Base
  135.   #--------------------------------------------------------------------------
  136.   # ● 更新画面
  137.   #--------------------------------------------------------------------------
  138.   def update
  139.     super
  140.     update_menu_background
  141.     @command_window.update
  142.     if Input.trigger?(Input::B)
  143.       Sound.play_cancel
  144.       return_scene
  145.     elsif Input.trigger?(Input::C)
  146.       case @command_window.index
  147.       when 0  # 更换壁纸画面
  148.         command_wallpaper
  149.       when 1  # 回到标题画面
  150.         command_to_title
  151.       when 2  # 离开游戏
  152.         command_shutdown
  153.       when 3  # 取消
  154.         command_cancel
  155.       end
  156.     end
  157.   end
  158.   #--------------------------------------------------------------------------
  159.   # ● 更新菜单画面背景
  160.   #--------------------------------------------------------------------------
  161.   def update_menu_background
  162.     super
  163.     @menuback_sprite.tone.set(0, 0, 0, 128) if $game_system.wallpaper == 0
  164.   end
  165.   #--------------------------------------------------------------------------
  166.   # ● 生成命令窗口
  167.   #--------------------------------------------------------------------------
  168.   def create_command_window
  169.     s1 = "更换壁纸"
  170.     s2 = Vocab::to_title
  171.     s3 = Vocab::shutdown
  172.     s4 = Vocab::cancel
  173.     @command_window = Window_Command.new(172, [s1, s2, s3, s4])
  174.     @command_window.x = (544 - @command_window.width) / 2
  175.     @command_window.y = (416 - @command_window.height) / 2
  176.     @command_window.openness = 0
  177.   end
  178.   #--------------------------------------------------------------------------
  179.   # ● 进入壁纸更换画面
  180.   #--------------------------------------------------------------------------
  181.   def command_wallpaper
  182.     Sound.play_decision
  183.     @command_window.close
  184.     $scene = Scene_Wallpaper.new
  185.   end
  186. end
  187.   
  188. #============================================================================
  189. # ■ Window_Wallpaper
  190. #----------------------------------------------------------------------------
  191. #  预览壁纸的界面(朴素版)
  192. #============================================================================

  193. class Scene_Wallpaper < Scene_Base
  194.   #--------------------------------------------------------------------------
  195.   # ● 初始化对象
  196.   #--------------------------------------------------------------------------
  197.   def initialize(paperstyle = $game_system.wallpaper)
  198.     @paperstyle = paperstyle
  199.   end
  200.   #--------------------------------------------------------------------------
  201.   # ● 开始处理
  202.   #--------------------------------------------------------------------------
  203.   def start
  204.     super
  205.     paper_show
  206.     create_keys_help
  207.   end
  208.   #--------------------------------------------------------------------------
  209.   # ● 结束处理
  210.   #--------------------------------------------------------------------------
  211.   def terminate
  212.     super
  213.     @keys_help_sprite.dispose
  214.     @papersprite.dispose
  215.   end
  216.   #--------------------------------------------------------------------------
  217.   # ● 返回上级画面
  218.   #--------------------------------------------------------------------------
  219.   def return_scene
  220.     $scene = Scene_Menu.new(5)
  221.   end
  222.   #--------------------------------------------------------------------------
  223.   # ● 下一张预览
  224.   #--------------------------------------------------------------------------
  225.   def nextpic
  226.     @paperstyle += 1
  227.     if @paperstyle  == Wallpaper::PAPERMAX + 1
  228.       @paperstyle  = 0                    
  229.     end
  230.     $scene = Scene_Wallpaper.new(@paperstyle)
  231.   end
  232.   #--------------------------------------------------------------------------
  233.   # ● 上一张预览
  234.   #--------------------------------------------------------------------------
  235.   def prevpic
  236.     @paperstyle -= 1
  237.     if @paperstyle  == -1  
  238.       @paperstyle  = Wallpaper::PAPERMAX                    
  239.     end
  240.     $scene = Scene_Wallpaper.new(@paperstyle)
  241.   end
  242.   #--------------------------------------------------------------------------
  243.   # ● 更新画面
  244.   #--------------------------------------------------------------------------
  245.   def update
  246.     super
  247.     if Input.trigger?(Input::B)
  248.       Sound.play_cancel
  249.       return_scene      
  250.     elsif Input.trigger?(Input::C)
  251.       $game_system.wallpaper = @paperstyle
  252.       Sound.play_decision
  253.       return_scene
  254.     end
  255.     if Input.trigger?(Input::UP) || Input.trigger?(Input::LEFT)
  256.       prevpic
  257.     elsif Input.trigger?(Input::DOWN) || Input.trigger?(Input::RIGHT)
  258.       nextpic
  259.     end
  260.   end
  261.   #--------------------------------------------------------------------------
  262.   # ● 生成按键帮助
  263.   #--------------------------------------------------------------------------
  264.   def create_keys_help
  265.     bitmap = Cache.background("crosskey")
  266.     @keys_help_sprite = Sprite.new
  267.     @keys_help_sprite.bitmap = Bitmap.new(Graphics.width, 32)
  268.     @keys_help_sprite.x = 170
  269.     @keys_help_sprite.y = Graphics.height - 32
  270.     @keys_help_sprite.bitmap.blt(240, 2, bitmap,bitmap.rect)
  271.     @keys_help_sprite.bitmap.draw_text(290, 0 ,128, 24, "切换预览")
  272.   end
  273.   #--------------------------------------------------------------------------
  274.   # ● 预览壁纸
  275.   #--------------------------------------------------------------------------
  276.   def paper_show
  277.     if @paperstyle == 0
  278.       bitmap = $game_temp.background_bitmap_temp
  279.     else
  280.       bitmap = Cache.background("#{@paperstyle}")
  281.     end
  282.     @papersprite = Sprite.new
  283.     @papersprite.bitmap = Bitmap.new(Graphics.width, Graphics.height)
  284.     @papersprite.bitmap.blt(0, 0, bitmap, bitmap.rect)
  285.   end
  286. end
复制代码





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