Mundo Maker
¡Bienvenid@ a Mundo Maker!

¿Quieres aprender todo sobre el RPG Maker?



Regístrate y forma parte de Mundo Maker.

[XP] Game Map Simple AddOns

Ver el tema anterior Ver el tema siguiente Ir abajo

[XP] Game Map Simple AddOns

Mensaje por Wecoc el 2014-04-19, 22:49

Hoy es un día especial para mí y por ésto quiero regalaros éste aporte. Últimamente estoy aportando muchos script xD pero no nos engañemos, seguramente éste es el script más útil que he aportado y aportaré en todo el mes.

Da nuevas opciones al Game Map, eso es lo que hace. Nuevas llamadas útiles especialmente desde Llamar Script. Pegadlo encima de main y no me déis créditos... Ni me molesté en ponerle título al script así que llamadlo como queráis xDD

Código:
#==============================================================================
# ** Game_System
#==============================================================================

class Game_System
  attr_accessor :parallax_game
  alias parallax_game_initialize initialize unless $@
  def initialize
    parallax_game_initialize
    @parallax_game = false
  end
end

#==============================================================================
# ** Game_Map
#==============================================================================

class Game_Map
 
  attr_accessor :tilemap_display_x
  attr_accessor :tilemap_display_y
  attr_accessor :weather_display_x
  attr_accessor :weather_display_y
 
  attr_accessor :panorama_zoom_x
  attr_accessor :panorama_zoom_y
  attr_accessor :panorama_display_x
  attr_accessor :panorama_display_y
 
  attr_accessor :fog_zoom_x
  attr_accessor :fog_zoom_y
  attr_accessor :fog_display_x
  attr_accessor :fog_display_y

  alias wecoc_addons_setup setup unless $@
  def setup(map_id)
    wecoc_addons_setup(map_id)
    if $game_system.parallax_game == true
      set_parallax_display
    else
      set_default_display
    end
    @panorama_zoom_x = 100.0
    @panorama_zoom_y = 100.0
    @fog_zoom_x = @fog_zoom
    @fog_zoom_y = @fog_zoom
  end
 
  def tilemap_display
    return @tilemap_display_x
  end
 
  def tilemap_display=(value)
    @tilemap_display_x = value
    @tilemap_display_y = value
  end
 
  def weather_display
    return @weather_display_x
  end
 
  def weather_display=(value)
    @weather_display_x = value
    @weather_display_y = value
  end
 
  def panorama_zoom
    return @panorama_zoom_x
  end
 
  def panorama_zoom=(zoom)
    @panorama_zoom_x = zoom
    @panorama_zoom_y = zoom
  end
 
  def panorama_display
    return @panorama_display_x
  end
 
  def panorama_display=(value)
    @panorama_display_x = value
    @panorama_display_y = value
  end
 
  def fog_zoom=(zoom)
    @fog_zoom = zoom
    @fog_zoom_x = zoom
    @fog_zoom_y = zoom
  end
 
  def fog_display
    return @fog_display_x
  end
 
  def fog_display=(value)
    @fog_display_x = value
    @fog_display_y = value
  end
 
  def set_default_display
    @tilemap_display_x = 4
    @tilemap_display_y = 4
    @weather_display_x = 4
    @weather_display_y = 4
    @panorama_display_x = 8
    @panorama_display_y = 8
    @fog_display_x = 4
    @fog_display_y = 4
  end
 
  def set_parallax_display
    @tilemap_display_x = 4
    @tilemap_display_y = 4
    @weather_display_x = 4
    @weather_display_y = 4
    @panorama_display_x = 4
    @panorama_display_y = 4
    @fog_display_x = 4
    @fog_display_y = 4
  end
end

#==============================================================================
# ** Game_Picture
#==============================================================================

class Game_Picture
 
  attr_accessor  :display_x
  attr_accessor  :display_y
 
  alias wecoc_display_ini initialize unless $@
  def initialize(number)
    wecoc_display_ini(number)
    @display_x = 0
    @display_y = 0
  end
 
  def display
    return @display_x
  end
 
  def display=(value)
    @display_x = value
    @display_y = value
  end
 
  def erase
    @name = ""
    self.display = 0
  end
end

class Sprite_Picture
  def display
    return @picture.display
  end
 
  def display=(value)
    @picture.display = value
  end
 
  def display_x
    return @picture.display_x
  end
 
  def display_y
    return @picture.display_y
  end
 
  def display_x=(value)
    @picture.display_x = value
  end
 
  def display_y=(value)
    @picture.display_y = value
  end
end

#==============================================================================
# ** Spriteset_Map
#==============================================================================

class Spriteset_Map
  def update
    if @panorama_name != $game_map.panorama_name or
      @panorama_hue != $game_map.panorama_hue
      @panorama_name = $game_map.panorama_name
      @panorama_hue = $game_map.panorama_hue
      if @panorama.bitmap != nil
        @panorama.bitmap.dispose
        @panorama.bitmap = nil
      end
      if @panorama_name != ""
        @panorama.bitmap = RPG::Cache.panorama(@panorama_name, @panorama_hue)
      end
      Graphics.frame_reset
    end

    if @fog_name != $game_map.fog_name or @fog_hue != $game_map.fog_hue
      @fog_name = $game_map.fog_name
      @fog_hue = $game_map.fog_hue
      if @fog.bitmap != nil
        @fog.bitmap.dispose
        @fog.bitmap = nil
      end
      if @fog_name != ""
        @fog.bitmap = RPG::Cache.fog(@fog_name, @fog_hue)
      end
      Graphics.frame_reset
    end

    @tilemap.ox = $game_map.display_x / $game_map.tilemap_display_x
    @tilemap.oy = $game_map.display_y / $game_map.tilemap_display_y
    @tilemap.update

    @panorama.ox = $game_map.display_x / $game_map.panorama_display_x
    @panorama.oy = $game_map.display_y / $game_map.panorama_display_y
    @panorama.zoom_x = $game_map.panorama_zoom_x / 100.0
    @panorama.zoom_y = $game_map.panorama_zoom_y / 100.0
   
    @fog.zoom_x = $game_map.fog_zoom_x / 100.0
    @fog.zoom_y = $game_map.fog_zoom_y / 100.0
    @fog.opacity = $game_map.fog_opacity
    @fog.blend_type = $game_map.fog_blend_type
    @fog.ox = $game_map.display_x / $game_map.fog_display_x + $game_map.fog_ox
    @fog.oy = $game_map.display_y / $game_map.fog_display_y + $game_map.fog_oy
    @fog.tone = $game_map.fog_tone

    for sprite in @character_sprites
      sprite.update
    end

    @weather.type = $game_screen.weather_type
    @weather.max = $game_screen.weather_max
    @weather.ox = $game_map.display_x / $game_map.weather_display_x
    @weather.oy = $game_map.display_y / $game_map.weather_display_y
    @weather.update

    for sprite in @picture_sprites
      sprite.update
      if sprite.display_x != 0
        sprite.x -= $game_map.display_x / sprite.display_x
        sprite.y -= $game_map.display_y / sprite.display_y
      end
    end

    @timer_sprite.update

    @viewport1.tone = $game_screen.tone
    @viewport1.ox = $game_screen.shake

    @viewport3.color = $game_screen.flash_color

    @viewport1.update
    @viewport3.update
  end
end


Configuración

Muy al principio del script hay una línea dónde pone ésto:
@parallax_game = false
Si lo cambiáis a true, los panoramas de los mapas automáticamente scrollearan a la misma velocidad que el mapa (cosa necesaria para hacer parallax mapping).

Esa propiedad se puede cambiar in-game en un llamar script usando lo siguiente para activarlo:
$game_system.parallax_game = true
o bien lo siguiente para desactivarlo:
$game_system.parallax_game = false ; true
(ese segundo true es necesario debido a un bug interno del RPG maker)

Pero no creo que sea muy usual cambiar ese factor a medio juego.

Nuevas llamadas de script

$game_map.tilemap_display = valor
Cambia la velocidad a la que se desplaza el tileset cuando el personaje se mueve por el mapa (scroll). Cuanto más alto sea el valor más lento irá. Por defecto vale 4.
$game_map.tilemap_display_x = valor
Lo mismo de antes pero específico para la coordenada x.
$game_map.tilemap_display_y = valor
Lo mismo de antes pero específico para la coordenada y.

$game_map.weather_display = valor
Cambia la velocidad a la que se desplaza el efecto climatológico (lluvia, tormenta o nieve) cuando el personaje se mueve por el mapa (scroll). Cuanto más alto sea el valor más lento irá. Por defecto vale 4.
$game_map.weather_display_x = valor
Lo mismo de antes pero específico para la coordenada x.
$game_map.weather_display_y = valor
Lo mismo de antes pero específico para la coordenada y.

$game_map.panorama_display = valor
Cambia la velocidad a la que se desplaza el panorama cuando el personaje se mueve por el mapa (scroll). Cuanto más alto sea el valor más lento irá. Por defecto vale 8 en el sistema default y 4 en parallax.
$game_map.panorama_display_x = valor
Lo mismo de antes pero específico para la coordenada x.
$game_map.panorama_display_y = valor
Lo mismo de antes pero específico para la coordenada y.

$game_map.fog_display = valor
Cambia la velocidad a la que se desplaza la fog cuando el personaje se mueve por el mapa (scroll). Cuanto más alto sea el valor más lento irá. Por defecto vale 4.
$game_map.fog_display_x = valor
Lo mismo de antes pero específico para la coordenada x.
$game_map.fog_display_y = valor
Lo mismo de antes pero específico para la coordenada y.

$game_screen.pictures[id].display = valor
Cambia la velocidad a la que se desplaza la picture de número id cuando el personaje se mueve por el mapa (scroll). Por defecto vale 0. Si se quiere que vaya con el mapa hay que poner un 4 y con el panorama default un 8.
$game_screen.pictures[id].display_x = valor
Lo mismo de antes pero específico para la coordenada x.
$game_screen.pictures[id].display_y = valor
Lo mismo de antes pero específico para la coordenada y.

==============

$game_map.panorama_zoom = valor
Cambia el zoom del panorama. Por defecto vale 100.
$game_map.panorama_zoom_x = valor
Lo mismo de antes pero específico para la coordenada x.
$game_map.panorama_zoom_y = valor
Lo mismo de antes pero específico para la coordenada y.

$game_map.fog_zoom = valor
Cambia el zoom del fog (en realidad éste ya está por defecto). Por defecto vale 100.
$game_map.fog_zoom_x = valor
Lo mismo de antes pero específico para la coordenada x.
$game_map.fog_zoom_y = valor
Lo mismo de antes pero específico para la coordenada y.
avatar
Wecoc
Administrador
Administrador



Créditos 12276

Gracias : 645

Volver arriba Ir abajo

Re: [XP] Game Map Simple AddOns

Mensaje por BlazeCrimson el 2014-04-19, 23:41

No veas menudo trabajazo has presentado esta semana santa. Gracias por el aporte, tengo que probarlo (el zoom del panorama es interesante).

La verdad es que da gusto cuando van apareciendo post de aportes tan a menudo, mañana intentare aportar yo algún engine o algo.

Un saludo gcool 

_________________
Image and video hosting by TinyPic
avatar
BlazeCrimson
Analista
Analista

0/3

Créditos 1128

Gracias : 111

Volver arriba Ir abajo

Ver el tema anterior Ver el tema siguiente Volver arriba


Permisos de este foro:
No puedes responder a temas en este foro.