¡Bienvenid@ a Mundo Maker!

¿Quieres aprender todo sobre el RPG Maker?



Regístrate y forma parte de Mundo Maker.
Conectarse

Recuperar mi contraseña

Temas importantes
----------------------------------------
Páginas con recursos RPG Maker
----------------------------------------
----------------------------------------
----------------------------------------
----------------------------------------
----------------------------------------
----------------------------------------
----------------------------------------
----------------------------------------
----------------------------------------
Afiliados
Estadísticas
Tenemos 3396 miembros registrados.
El último usuario registrado es Discorded.

Nuestros miembros han publicado un total de 79807 mensajes en 11256 argumentos.
Navega con Google Chrome
[DESCARGA]

[XP/VX/Ace] Game_Picture Multi-Move Edit

 :: RPG Maker :: Scripts

Ver el tema anterior Ver el tema siguiente Ir abajo

[XP/VX/Ace] Game_Picture Multi-Move Edit

Mensaje por Eron el 2014-05-27, 09:38

Primero de todo, éste script no se carga las propiedades de siempre de las Pictures.
En realidad podéis pegarlo encima de main o susbstituir el Game_Picture por éste =D

La novedad es que permite movimiento individualizado de cada parte, por si queréis estar modificando coordenadas sin preocuparos de la opacidad o del zoom, por ejemplo.

Nuevos accessors ("show" por partes)

$game_screen.pictures[id].name = "name"
$game_screen.pictures[id].origin = origin
$game_screen.pictures[id].x = x
$game_screen.pictures[id].y = y
$game_screen.pictures[id].zoom_x = zoom_x
$game_screen.pictures[id].zoom_y = zoom_y
$game_screen.pictures[id].opacity = opacity
$game_screen.pictures[id].blend_type = blend_type
$game_screen.pictures[id].tone = tone
$game_screen.pictures[id].angle = angle
$game_screen.pictures[id].rotate_speed = rotate_speed


Nuevas llamadas ("move" por partes)

$game_screen.pictures[id].move_x(duration, x)
$game_screen.pictures[id].move_y(duration, y)
$game_screen.pictures[id].move_zoom_x(duration, zoom_x)
$game_screen.pictures[id].move_zoom_y(duration, zoom_y)
$game_screen.pictures[id].move_opacity(duration, opacity)


Código:
#==============================================================================
# [XP/VX/Ace] Game_Picture Multi-Move Edit
# by Eron
#==============================================================================

class Game_Picture
  #--------------------------------------------------------------------------
  # * Public Instance Variables
  #--------------------------------------------------------------------------
  attr_reader    :number
  attr_accessor  :name
  attr_accessor  :origin
  attr_accessor  :x
  attr_accessor  :y
  attr_accessor  :zoom_x
  attr_accessor  :zoom_y
  attr_accessor  :opacity
  attr_accessor  :blend_type
  attr_accessor  :tone
  attr_accessor  :angle
  attr_accessor  :rotate_speed
  #--------------------------------------------------------------------------
  # * Object Initialization
  #--------------------------------------------------------------------------
  def initialize(number)
    @number = number
    @name = ""
    @origin = 0
    @x = 0.0
    @y = 0.0
    @zoom_x = 100.0
    @zoom_y = 100.0
    @opacity = 255.0
    @blend_type = 1
    @duration = 0 # Obsoleto
    @x_duration = 0
    @y_duration = 0
    @zoom_x_duration = 0
    @zoom_y_duration = 0
    @opacity_duration = 0
    @target_x = @x
    @target_y = @y
    @target_zoom_x = @zoom_x
    @target_zoom_y = @zoom_y
    @target_opacity = @opacity
    @tone = Tone.new(0, 0, 0, 0)
    @tone_target = Tone.new(0, 0, 0, 0)
    @tone_duration = 0
    @angle = 0
    @rotate_speed = 0
  end
  #--------------------------------------------------------------------------
  # * Show Picture
  #--------------------------------------------------------------------------
  def show(name, origin, x, y, zoom_x, zoom_y, opacity, blend_type)
    @name = name
    @origin = origin
    @x = x.to_f
    @y = y.to_f
    @zoom_x = zoom_x.to_f
    @zoom_y = zoom_y.to_f
    @opacity = opacity.to_f
    @blend_type = blend_type
    @duration = 0
    @x_duration = 0
    @y_duration = 0
    @zoom_x_duration = 0
    @zoom_y_duration = 0
    @opacity_duration = 0
    @target_x = @x
    @target_y = @y
    @target_zoom_x = @zoom_x
    @target_zoom_y = @zoom_y
    @target_opacity = @opacity
    @tone = Tone.new(0, 0, 0, 0)
    @tone_target = Tone.new(0, 0, 0, 0)
    @tone_duration = 0
    @angle = 0
    @rotate_speed = 0
  end
  #--------------------------------------------------------------------------
  # * Move Picture
  #--------------------------------------------------------------------------
  def move(duration, origin, x, y, zoom_x, zoom_y, opacity, blend_type)
    @duration = duration
    @x_duration = duration
    @y_duration = duration
    @zoom_x_duration = duration
    @zoom_y_duration = duration
    @opacity_duration = duration
    @origin = origin
    @target_x = x.to_f
    @target_y = y.to_f
    @target_zoom_x = zoom_x.to_f
    @target_zoom_y = zoom_y.to_f
    @target_opacity = opacity.to_f
    @blend_type = blend_type
  end
  #--------------------------------------------------------------------------
  # * Multi-Move Picture
  #--------------------------------------------------------------------------
  def move_x(duration, x)
    @x_duration = duration
    @target_x = x.to_f
  end
 
  def move_y(duration, y)
    @y_duration = duration
    @target_y = y.to_f
  end
 
  def move_zoom_x(duration, zoom_x)
    @zoom_x_duration = duration
    @target_zoom_x = zoom_x.to_f
  end
 
  def move_zoom_y(duration, zoom_y)
    @zoom_y_duration = duration
    @target_zoom_y = zoom_y.to_f
  end
 
  def move_opacity(duration, opacity)
    @opacity_duration = duration
    @target_opacity = opacity.to_f
  end
 
  def moving?
    return (@x_duration > 0 or @y_duration > 0 or
    @zoom_x_duration > 0 or @zoom_y_duration > 0 or @opacity_duration > 0)
  end
  #--------------------------------------------------------------------------
  # * Change Rotation Speed
  #--------------------------------------------------------------------------
  def rotate(speed)
    @rotate_speed = speed
  end
  #--------------------------------------------------------------------------
  # * Start Change of Color Tone
  #--------------------------------------------------------------------------
  def start_tone_change(tone, duration)
    @tone_target = tone.clone
    @tone_duration = duration
    if @tone_duration == 0
      @tone = @tone_target.clone
    end
  end
  #--------------------------------------------------------------------------
  # * Erase Picture
  #--------------------------------------------------------------------------
  def erase
    @name = ""
  end
  #--------------------------------------------------------------------------
  # * Frame Update
  #--------------------------------------------------------------------------
  def update
    if @x_duration >= 1
      @x = (@x * (@x_duration - 1) + @target_x) / @x_duration
      @x_duration -= 1
    end
    if @y_duration >= 1
      @y = (@y * (@y_duration - 1) + @target_y) / @y_duration
      @y_duration -= 1
    end
    if @zoom_x_duration >= 1
      d = @zoom_x_duration
      @zoom_x = (@zoom_x * (d - 1) + @target_zoom_x) / d
      @zoom_x_duration -= 1
    end
    if @zoom_y_duration >= 1
      d = @zoom_y_duration
      @zoom_y = (@zoom_y * (d - 1) + @target_zoom_y) / d
      @zoom_y_duration -= 1
    end
    if @opacity_duration >= 1
      d = @opacity_duration
      @opacity = (@opacity * (d - 1) + @target_opacity) / d
      @opacity_duration -= 1
    end
    if @duration >= 1
      @duration -= 1
    end
    if @tone_duration >= 1
      d = @tone_duration
      @tone.red = (@tone.red * (d - 1) + @tone_target.red) / d
      @tone.green = (@tone.green * (d - 1) + @tone_target.green) / d
      @tone.blue = (@tone.blue * (d - 1) + @tone_target.blue) / d
      @tone.gray = (@tone.gray * (d - 1) + @tone_target.gray) / d
      @tone_duration -= 1
    end
    if @rotate_speed != 0
      @angle += @rotate_speed / 2.0
      while @angle < 0
        @angle += 360
      end
      @angle %= 360
    end
  end
end



Eron
Soñador
Soñador

0/3

Créditos 1235

Gracias : 40

Volver arriba Ir abajo

Re: [XP/VX/Ace] Game_Picture Multi-Move Edit

Mensaje por Wecoc el 2014-07-17, 01:49

Es un script muy bueno, te felicito :D

Hasta donde he podido comprobar, el script tal y como está es totalmente compatible con VX así que edité el nombre del tema para indicarlo, funciona exactamente igual en ambos RPG maker.

Para VX Ace también va bien, la diferencia es que como el default de VX Ace también tiene algunos métodos de atajo en ese caso no se podría substituir éste por el original sinó que habría que ponerlo obligatoriamente encima de main, si no nos cargaríamos esos atajos.

Wecoc
Administrador
Administrador



Créditos 8272

Gracias : 372

Volver arriba Ir abajo

Re: [XP/VX/Ace] Game_Picture Multi-Move Edit

Mensaje por Usuario Oculto el 2014-07-17, 04:25

Se ve muy interesante, tal vez lo use, pero...

Bueno, a estas altas hora de la noche me siento un poco atolondrado, pero, no pierdo la curiosidad y quisiera pedir una DEMO, ya que me encuentro acostado y los párpados me están dando tanta guerra, que no quiero ponerme a ensayar el script, por ahora. Además ver el script en función no estaría nada mal.

Usuario Oculto
Soñador
Soñador

0/3

Créditos 631

Gracias : 14

Volver arriba Ir abajo

Re: [XP/VX/Ace] Game_Picture Multi-Move Edit

Mensaje por Contenido patrocinado Hoy a las 05:03


Contenido patrocinado


Volver arriba Ir abajo

Ver el tema anterior Ver el tema siguiente Volver arriba


 :: RPG Maker :: Scripts

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