Advertisement
Guest User

fix_picture

a guest
Jul 12th, 2019
106
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.97 KB | None | 0 0
  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
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement