Ogłoszenie 

Uwaga! To forum jest w trybie offline.
Wszelką pomoc uzyskasz pod adresem
forum.ultimateam.pl


Administracja Forum


Poprzedni temat «» Następny temat
Pomniejszenie/powiększenie zdarzeń na mapie [XP].
Autor Wiadomość
Sabikku 




Nagrody:
UF i UFT2 Winner

Ranga RM:
4 gry

Pomógł: 73 razy
Dołączył: 04 Kwi 2010
Posty: 428
Wysłany: Sob 05 Mar, 2011 18:35
Cytat:
A jak maksymalnie można powiększyć.

Na tyle, na ile pozwala silniczek makera lub twoje zasoby sprzętowe - obstawiam 10-20.

Cytat:
rozpędziłem się z tamtym komentarzem, Sabbiku, edytowałbyś go tak, aby zmniejszał/powiększał tylko te zdarzenie gdzie wpisze zoom np. "2.33" bo nie przeczytałem ze zrozumieniem i myślałem że to powiększa/zmniejsza dane zdarzenie.

Nie mam humoru na testy, więc nie gwarantuję braku problemów, ale łap:
Spoiler:

Kod:
# ================================================================
# Character Resize Script.
# ----------------------------------------------------------------
# * by Sabikku
# * 26.07.10
# * zamthir.net/forum
# * ultimateam.pl
# ================================================================

class Game_Character
  attr_accessor :zoom
  alias zoomold_init initialize
  def initialize
    zoomold_init
    @zoom = 1.0
  end
end

class Game_Map
  # Setup. -------------------------------------------------------
  alias sab_setup setup
  def setup(map_id)
    sab_setup(map_id)
    for event in @map.events.values
      if event.name.gsub(/[0-9]+.[0-9]+/,'')=='zoom '
        @events[event.id].zoom = (event.name.gsub(/zoom /,'')).to_f
      end
    end
  end
end

# ================================================================

class Spriteset_Map
  # Initialize. --------------------------------------------------
  def initialize
    # Make viewports
    @viewport1 = Viewport.new(0, 0, 640, 480)
    @viewport2 = Viewport.new(0, 0, 640, 480)
    @viewport3 = Viewport.new(0, 0, 640, 480)
    @viewport2.z = 200
    @viewport3.z = 5000
    # Make tilemap
    @tilemap = Tilemap.new(@viewport1)
    @tilemap.tileset = RPG::Cache.tileset($game_map.tileset_name)
    for i in 0..6
      autotile_name = $game_map.autotile_names[i]
      @tilemap.autotiles[i] = RPG::Cache.autotile(autotile_name)
    end
    @tilemap.map_data = $game_map.data
    @tilemap.priorities = $game_map.priorities
    # Make panorama plane
    @panorama = Plane.new(@viewport1)
    @panorama.z = -1000
    # Make fog plane
    @fog = Plane.new(@viewport1)
    @fog.z = 3000
    # Make character sprites
    @character_sprites = []
    for i in $game_map.events.keys.sort
      # -----
      sprite = Sprite_Character.new(@viewport1, $game_map.events[i], zoom = $game_map.events[i].zoom)
      # -----
      @character_sprites.push(sprite)
    end
    @character_sprites.push(Sprite_Character.new(@viewport1, $game_player))
    # Make weather
    @weather = RPG::Weather.new(@viewport1)
    # Make picture sprites
    @picture_sprites = []
    for i in 1..50
      @picture_sprites.push(Sprite_Picture.new(@viewport2,
        $game_screen.pictures[i]))
    end
    # Make timer sprite
    @timer_sprite = Sprite_Timer.new
    # Frame update
    update
  end
end

# ================================================================

class Sprite_Character < RPG::Sprite
  attr_accessor :zoom
  # Initialize. --------------------------------------------------
  alias zoomold_init initialize
  def initialize(a,b, zoom = 1.0)
    @zoom = zoom
    zoomold_init(a,b)
  end
 
  # Update. ------------------------------------------------------
  def update
    super
    # If tile ID, file name, or hue are different from current ones
    if @tile_id != @character.tile_id or
       @character_name != @character.character_name or
       @character_hue != @character.character_hue
      # Remember tile ID, file name, and hue
      @tile_id = @character.tile_id
      @character_name = @character.character_name
      @character_hue = @character.character_hue
      # If tile ID value is valid
      if @tile_id >= 384
        self.bitmap = RPG::Cache.tile($game_map.tileset_name,
          @tile_id, @character.character_hue)
        self.src_rect.set(0, 0, 32, 32)
        self.ox = 16
        self.oy = 32
      # If tile ID value is invalid
      else
        self.bitmap = RPG::Cache.character(@character.character_name,
          @character.character_hue)
        self.zoom_x = @zoom # <-----
        self.zoom_y = @zoom # <-----
        @cw = bitmap.width / 4
        @ch = bitmap.height / 4
        self.ox = @cw / 2
        self.oy = @ch
      end     
    end
    # Set visible situation
    self.visible = (not @character.transparent)
    # If graphic is character
    if @tile_id == 0
      # Set rectangular transfer
      sx = @character.pattern * @cw
      sy = (@character.direction - 2) / 2 * @ch
      self.src_rect.set(sx, sy, @cw, @ch)
    end
    # Set sprite coordinates
    self.x = @character.screen_x
    self.y = @character.screen_y
    self.z = @character.screen_z(@ch)
    # Set opacity level, blend method, and bush depth
    self.opacity = @character.opacity
    self.blend_type = @character.blend_type
    self.bush_depth = @character.bush_depth
    # Animation
    if @character.animation_id != 0
      animation = $data_animations[@character.animation_id]
      animation(animation, true)
      @character.animation_id = 0
    end
  end
end

# ================================================================

 
 
 
Feniks 




Preferowany:
RPG Maker XP

Ranga RM:
2 gry

Pomógł: 62 razy
Dołączył: 04 Wrz 2010
Posty: 511
Wysłany: Sob 05 Mar, 2011 19:21
działa, dzięki :)
________________________

 
 
Wyświetl posty z ostatnich:   
Odpowiedz do tematu
Nie możesz pisać nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach
Nie możesz załączać plików na tym forum
Możesz ściągać załączniki na tym forum
Dodaj temat do Ulubionych
Wersja do druku

Skocz do:  

Powered by phpBB modified by Przemo © 2003 phpBB Group | Template Klam by Ayene