Project1

标题: 在Windows_menustastus中插入背景图无法dispose [打印本页]

作者: alonescud    时间: 2013-7-28 01:47
标题: 在Windows_menustastus中插入背景图无法dispose
在Windows_menustastus中窗口初化时插入了张背景图

@back_sprite = Sprite.new
   @back_sprite.bitmap = Cache.picture("BK_Mainmenu.png")

同时在end后面做了dispose


def dispose
    super
  @back_sprite.bitmap.dispose
end

然后切换到其它界面时,Windows_menustastus的背景图都会显示,唯独物品和技能界面图片消失。
求解


作者: yangjunyin2002    时间: 2013-7-28 09:38
为什么要从这,,,我是从Scene_Menu入手的。另外,这是一个窗口,非场景。。。

插入此段吧。不过其实上面的设定部分不需要的。。。我去改下啊。
  1. module XRXSV10
  2.   BG_NAME    = "MenuBack"
  3.   BG_OPACITY = 240#224
  4. end
  5. class Scene_Base
  6.   def snapshot_for_background
  7.     $game_temp.background_bitmap.dispose
  8.     $game_temp.background_bitmap = Graphics.snap_to_bitmap
  9.   end
  10.   alias xrxsv10_create_menu_background create_menu_background
  11.   def create_menu_background
  12.     xrxsv10_create_menu_background
  13.     if XRXSV10::BG_NAME.size >= 1
  14.       @menuback_sprite.color.alpha = 0
  15.       @menuback2_sprite = Sprite.new
  16.       @menuback2_sprite.bitmap = Bitmap.new(Graphics.width, Graphics.height)
  17.       begin
  18.         skin = Cache.system(XRXSV10::BG_NAME)
  19.         @menuback2_sprite.bitmap.stretch_blt(@menuback2_sprite.bitmap.rect, skin, skin.rect, XRXSV10::BG_OPACITY)
  20.       rescue
  21.         nil
  22.       end
  23.     end
  24.   end
  25.   alias xrxsv10_dispose_menu_background dispose_menu_background
  26.   def dispose_menu_background
  27.     xrxsv10_dispose_menu_background
  28.     @menuback2_sprite.dispose if @menuback2_sprite != nil
  29.   end
  30. end
复制代码
这个上面的设定部分只是方面那些不太懂脚本的使用者的。。。
改好了:
  1. class Scene_Base
  2.   def snapshot_for_background
  3.     $game_temp.background_bitmap.dispose
  4.     $game_temp.background_bitmap = Graphics.snap_to_bitmap
  5.   end
  6.   alias xrxsv10_create_menu_background create_menu_background
  7.   def create_menu_background
  8.     xrxsv10_create_menu_background
  9.     if XRXSV10::BG_NAME.size >= 1
  10.       @menuback_sprite.color.alpha = 0
  11.       @menuback2_sprite = Sprite.new
  12.       @menuback2_sprite.bitmap = Bitmap.new(Graphics.width, Graphics.height)
  13.       begin
  14.         skin = Cache.system("MenuBack")
  15.         @menuback2_sprite.bitmap.stretch_blt(@menuback2_sprite.bitmap.rect, skin, skin.rect, 240)
  16.       rescue
  17.         nil
  18.       end
  19.     end
  20.   end
  21.   alias xrxsv10_dispose_menu_background dispose_menu_background
  22.   def dispose_menu_background
  23.     xrxsv10_dispose_menu_background
  24.     @menuback2_sprite.dispose if @menuback2_sprite != nil
  25.   end
  26. end
复制代码

作者: 945127391    时间: 2013-8-3 04:41
看不太懂你的问题……不过……为何要将@back_spritebitmap释放掉而不是将@back_sprite本身释放掉呢?




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