SHARE
TWEET

fix_picture

a guest Jul 12th, 2019 66 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1.  # Fixe les images -- XHTMLBoy (http://funkywork.blogspot.com) Adapté par Grim
  2.     # Pour permettre à une image de rester fixée sur la carte, il faut que son
  3.     # nom commence par FIX- ou alors utiliser la fonction "fixed_pictures(id1, id2, id3 etc.)"
  4.     # qui permet de fixer une (ou plusieurs) images sur la carte.
  5.     # Par défaut, les images sont supprimée a chaque téléportation sauf si vous utilisez
  6.     # la commande "add_stayed_pictures(id1, id2 etc.)" qui permet au images de rester
  7.     # malgré la téléportation. (il existe aussi remove_stayed_pictures qui annule l'effet stay des images)
  8.  
  9.     #==============================================================================
  10.     # ** Game_Map
  11.     #------------------------------------------------------------------------------
  12.     #  This class handles maps. It includes scrolling and passage determination
  13.     # functions. The instance of this class is referenced by $game_map.
  14.     #==============================================================================
  15.  
  16.     class Game_Map
  17.  
  18.       #--------------------------------------------------------------------------
  19.       # * Alias
  20.       #--------------------------------------------------------------------------
  21.       alias fix_setup setup
  22.       alias fix_initialize initialize
  23.       #--------------------------------------------------------------------------
  24.       # * Public Instance Variables
  25.       #--------------------------------------------------------------------------
  26.       attr_accessor :fix_pictures
  27.       attr_accessor :stay_pictures
  28.  
  29.  
  30.       #--------------------------------------------------------------------------
  31.       # * Object Initialization
  32.       #--------------------------------------------------------------------------
  33.       def initialize
  34.         fix_initialize
  35.         @stay_pictures = []
  36.         @screen = $game_screen
  37.       end
  38.  
  39.       #--------------------------------------------------------------------------
  40.       # * Setup
  41.       #--------------------------------------------------------------------------
  42.       def setup(map_id)
  43.         fix_setup(map_id)
  44.         (10 .. 27).each do |id|
  45.           if $game_screen.pictures[id]
  46.             $game_screen.pictures[id].erase unless stayed?(id)
  47.           end
  48.         end
  49.         @fix_pictures = []
  50.       end
  51.  
  52.       #--------------------------------------------------------------------------
  53.       # * Set fixed pictures
  54.       #--------------------------------------------------------------------------
  55.       def set_fixed_pictures(ids)
  56.         @fix_pictures = ids
  57.       end
  58.  
  59.       #--------------------------------------------------------------------------
  60.       # * add stay pictures
  61.       #--------------------------------------------------------------------------
  62.       def add_stay_pictures(ids)
  63.         @stay_pictures += ids
  64.         @stay_pictures.uniq!
  65.       end
  66.  
  67.       #--------------------------------------------------------------------------
  68.       # * remove stay pictures
  69.       #--------------------------------------------------------------------------
  70.       def remove_stay_pictures(ids)
  71.         ids.each do |id|
  72.           @stay_pictures.delete(id)
  73.         end
  74.       end
  75.  
  76.       #--------------------------------------------------------------------------
  77.       # * 's fixed
  78.       #--------------------------------------------------------------------------
  79.       def fixed?(id)
  80.         @fix_pictures.include?(id)
  81.       end
  82.  
  83.       #--------------------------------------------------------------------------
  84.       # * 's stayed
  85.       #--------------------------------------------------------------------------
  86.       def stayed?(id)
  87.         @stay_pictures.include?(id)
  88.       end
  89.  
  90.     end
  91.  
  92.     #==============================================================================
  93.     # ** Sprite_Picture
  94.     #------------------------------------------------------------------------------
  95.     #  This sprite is used to display pictures. It observes an instance of the
  96.     # Game_Picture class and automatically changes sprite states.
  97.     #==============================================================================
  98.  
  99.     class Sprite_Picture
  100.  
  101.       #--------------------------------------------------------------------------
  102.       # * alias
  103.       #--------------------------------------------------------------------------
  104.       alias fix_initialize initialize
  105.       alias fix_update_position update
  106.  
  107.       #--------------------------------------------------------------------------
  108.       # * Public Instance Variables
  109.       #--------------------------------------------------------------------------
  110.       attr_accessor :anchor
  111.  
  112.       #--------------------------------------------------------------------------
  113.       # * Object Initialization
  114.       #    picture : Game_Picture
  115.       #--------------------------------------------------------------------------
  116.       def initialize(viewport, picture)
  117.         fix_initialize(viewport, picture)
  118.       @anchor = (@picture.name =~ /^fix/i) != nil
  119.       end
  120.  
  121.       #--------------------------------------------------------------------------
  122.       # * Update Position
  123.       #--------------------------------------------------------------------------
  124.       def update
  125.         fix_update_position
  126.       @anchor = (@picture.name =~ /^fix/i) != nil || $game_map.fixed?(@picture.number)
  127.         if @anchor
  128.           new_x =  @picture.x - ($game_map.display_x / 4)
  129.           new_y =  @picture.y - ($game_map.display_y / 4)
  130.           self.x, self.y = new_x, new_y
  131.         else
  132.           self.x = @picture.x
  133.           self.y = @picture.y
  134.           self.z = @picture.number
  135.         end
  136.       end
  137.  
  138.     end
  139.  
  140.     #==============================================================================
  141.     # ** Game_Interpreter
  142.     #------------------------------------------------------------------------------
  143.     #  An interpreter for executing event commands. This class is used within the
  144.     # Game_Map, Game_Troop, and Game_Event classes.
  145.     #==============================================================================
  146.  
  147.     class Interpreter
  148.  
  149.       #--------------------------------------------------------------------------
  150.       # * define fixed pictures
  151.       #--------------------------------------------------------------------------
  152.       def fixed_pictures(*ids)
  153.         $game_map.set_fixed_pictures(ids)
  154.       end
  155.  
  156.       #--------------------------------------------------------------------------
  157.       # * define stayed pictures
  158.       #--------------------------------------------------------------------------
  159.       def add_stayed_pictures(*ids)
  160.         $game_map.add_stay_pictures(ids)
  161.       end
  162.  
  163.       #--------------------------------------------------------------------------
  164.       # * remove stayed pictures
  165.       #--------------------------------------------------------------------------
  166.       def remove_stayed_pictures(*ids)
  167.         $game_map.remove_stay_pictures(ids)
  168.       end
  169.  
  170.     end
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top