Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
 How to remove an image from a window?
#1
I am making a simple map system where the player opens a window which shows the player a picture of a world map for the game, however when i dispose of the window the image won't go away, it waits until rmxp clears it from the screen.

how can i fix this to dispose of the window of soon as the window is disposed of?

here is the script:

Code:
class Window_Map < Window_Base
  def initialize
    super(0,0,640,480)
    self.contents = Bitmap.new(width-32,height-32)
    self.contents.font.name = "Arial"
    self.contents.font.size = 24
    refresh
  end
    
  def refresh
    self.contents.clear
    @Map_Image = Sprite.new
    @Map_Image.bitmap = RPG::Cache.picture("Map_Color.png")
    @Map_Image.z = 100
  end
end

Code:
class Map_Scene
  
  def main
    @Map = Window_Map.new
    
    Graphics.transition
    loop do
      Graphics.update
      Input.update
      update
      if $scene != self
        then break
      end
    end
    
    Graphics.freeze
    @Map.dispose
    
  end
  
  def update
    
    @Map.update
    if Input.trigger?(Input::B)
      $game_system.se_play($data_system.cancel_se)
      $scene = Scene_Map.new
    end
  end
  
end
Reply }
#2
Maybe you should try this...
Replace:
Code:
@Map.dispose
with
Code:
@Map.dispose unless @Map == nil
which only disposes @Map if it still exists.

Now replace:
Code:
if Input.trigger?(Input::B)
      $game_system.se_play($data_system.cancel_se)
      $scene = Scene_Map.new
    end

Code:
if Input.trigger?(Input::B)
      $game_system.se_play($data_system.cancel_se)
      @Map.dispose unless @Map == nil
      @Map = nil
      $scene = Scene_Map.new
    end
Which can delete/dispose of @map on the keypress. After that, I set it to 'nil' so IF it is disposed this way, the system won't try to dispose it again at the end of the main routine.
Reply }
#3
It still won't remove the image when the button is pressed, then it waits until rmxp removes the image.
at first glance it seems that your suggestion would have worked by assigning nothing to the @Map but it still don't work.
do you have anymore ideas as to solve this problem?

If i clear the RPG ::Cache will that work if so how to i put in the code because i tried it in the update and in the Main.
Reply }
#4
That's because the actual image is never disposed. Add this.

Code:
class Window_Map < Window_Base
  def dispose
    super
    @Map_Image.dispose
  end
end
Reply }
#5
Thanks Charlie Lee, that one worked.
so you have to dispose of images like that in rmxp or are there other ways of doing it?
Reply }
#6
To my knowledge calling .dispose is the only way when you are deleting the window together with the image in it.
If you only want to make them temporarily disappear, you can use the visible attribute and link the image's one to the window's one with a piece of code similar to this one:

Code:
class Window_Map < Window_Base
  def visible=(value)
    @visible=value
    @Map_Image.visible=value
  end
end

though it might be different depending on the cases.
Reply }
#7
Thanks for the info, it is very useful!
Reply }


Possibly Related Threads…
Thread Author Replies Views Last Post
   Sorting Items in Shop Window Melana 13 15,124 01-18-2018, 05:49 AM
Last Post: DerVVulfman
   Showing only specific skills in a window Melana 2 5,244 01-12-2016, 01:34 PM
Last Post: Melana
  Changing Window Styles in Game JackMonty 8 9,392 03-22-2013, 11:54 PM
Last Post: JackMonty
   Something I noticed about the Advanced Shop Status Window yamina-chan 5 8,961 08-21-2011, 09:16 PM
Last Post: yamina-chan
   [Atoa SBS] Changing the command window font MegaPowerNinja 3 7,471 04-12-2011, 10:23 PM
Last Post: Victor Sant
   Repositioning the actor command window. MegaPowerNinja 4 8,416 04-12-2011, 05:21 AM
Last Post: MegaPowerNinja
   Need Help on Making Battle Status Window riou 4 9,517 03-22-2011, 06:04 AM
Last Post: Victor Sant
   Window Visibility Problem computerwizoo7 7 9,963 05-10-2010, 05:53 PM
Last Post: deValdr
   Message Window Trouble afters 1 3,574 04-13-2010, 01:27 AM
Last Post: vgvgf
   Remove Battlers during battle Jparker1984 3 5,485 11-27-2009, 02:46 AM
Last Post: Jparker1984



Users browsing this thread: