Mundo Maker
¡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
----------------------------------------
----------------------------------------
----------------------------------------
----------------------------------------
----------------------------------------
----------------------------------------
----------------------------------------
----------------------------------------
----------------------------------------
Últimos temas
» analisen mis charas (personages)
por Gacoro Hoy a las 05:20

» Zona 14 Beta Released
por Aeon_Fox Hoy a las 05:19

» Sword Heros Art´s Work
por Gacoro Hoy a las 05:09

» [XP] RM2k Screen Tone
por Wecoc Hoy a las 04:43

» Algún dibujante dispuesto a ayudarme?
por BruMaster7Maker Hoy a las 03:38

» Ayuda rpg maker MV
por zeik9 Hoy a las 00:35

» [XP] Bitmap Stat/Outline Effects
por xXIsrael0499Xx Ayer a las 23:24

» Ayuda para desactivar un HUD y activarlo
por Wecoc Ayer a las 22:51

» Pinturas, proyectos e inspiraciones de Cutexiora
por RenatoMakerxp Ayer a las 19:03

» [XP] Elnard Radar
por orochii Ayer a las 15:55

Afiliados
Estadísticas
Tenemos 3763 miembros registrados.
El último usuario registrado es Carlos Rodriguez.

Nuestros miembros han publicado un total de 85777 mensajes en 12216 argumentos.

Script Animated title A (Por Moghunter) modificado para permitir más logos, vídeos, y ME.

Ver el tema anterior Ver el tema siguiente Ir abajo

RPG Maker VX ACE Script Animated title A (Por Moghunter) modificado para permitir más logos, vídeos, y ME.

Mensaje por BreinLand entertainment el 2017-06-28, 03:30

Estaba yo editando un juego... ¡cuando me dí cuenta de que el script que tenía para poner varios logos (con ME al aparecer) y vídeos antes de la pantalla de título no me funcionaba!

El problema era el script de Moghunter, "Animated title A", que básicamente se saltaba la carga del otro script.
Y como quería poner varios logos pero el script de Moghunter no dejaba... pues lo modifiqué para que dejase. La idea original de añadir más logos es de Soulpour777 (Cuyo link del master script list de los foros oficiales de RPG maker está caído)

Ya puestos también lo modifiqué un poco más para que dejase poner vídeos y un ME durante los logos (más vale que sobre que falte) por si alguna vez me daba por usarlo para algo así.

Como después me dí cuenta de que cada vez que volvías a la pantalla del título volvían a salir todos los logos (¡imaginate salir del juego y tener que tragarte todos los logos y los vídeos del inicio!), tambíen hice que si tienes una partida guardada NO saldrán más los logos ni los vídeos.

A lo que voy... El script lo voy a colgar aquí, (ya que según los términos de Moghunter deja editar y adaptar los scripts) para aquellos que quieran usarlo y necesiten algunos logos o vídeos pre-título.

(También lo he traducido al inglés y al español del portugués)

El link del script original es este (es el último que hay):

https://atelierrgss.wordpress.com/rgss3-custom-title-screens/

El script modificado:

Código:

#==============================================================================
# +++ MOG - Animated Title A (v2.4) + More logos and video pretitle +++
#==============================================================================
# By Moghunter
# More logos by: SoulPour777
# Videos on pretitle and ME by: Izheil
# Translation/Traducción: Izheil
#
# Original author page:
# http://www.atelier-rgss.com/
#==============================================================================
# ENG: Scene of animated title with particles, moving images, and other effects.
# Now you can use videos as well, and play ME sounds for each logo.
# Also, when you have a saved file, the logos and videos get skipped.
#
# SPA: Escena de título con efectos de partículas, imágenes en movimiento, y
# otros efectos. Ahora también puedes poner vídeos, y ME para cada logo.
# Además, cuando tienes una partida guardada, los logos y los vídeos se saltan.
#==============================================================================

#==============================================================================
# NECESSARY MEDIA/MEDIOS NECESARIOS
#==============================================================================
# ENG: You will need to put the following images on the Graphics/Titles2/ folder
#
# SPA: Tendrás que poner las diferentes imágenes el la carpeta Graphics/Titles2/
#
# Cursor.png  
# Commmand_Name.png (image filename = name of command)
# Particle.png   (Optional/Opcional)
# Logo.jpg/png   (Optional/Opcional)
# Logo2.jpg/png  (Optional/Opcional)
# Logo3.jpg/png  (Optional/Opcional)
# Animated.png   (Optional/Opcional)
#
# ENG: For videos, you will have to put them on the Movies/ folder.
#
# SPA: Los vídeos tendrás que ponerlos en la carpeta Movies/
#
# Movie.ogv  (Optional/Opcional)
# Movie2.ogv  (Optional/Opcional)
# Movie3.ogv  (Optional/Opcional)
#
# ENG: For ME, you will have to put the files on the Audio/ME/ folder.
#
# SPA: Para los ME, tendrás que meter los archivos en la carpeta Audio/ME
#
# (Name/Nombre).mp3/ogg (Optional/Opcional)
#==============================================================================

#==============================================================================
# ENG:
# NOTE 1 - To choose the title image, you just have to choose on the database
# the 2nd title image (second layer)
#
# SPA:
# NOTA 1 - Para definir la imagen de título, sólo tienes que seleccionar
# en la base de datos la imagen de título 2 (segunda capa)
#==============================================================================

#==============================================================================
# ENG:
# NOTE 2 - To use other video formats apart from .Ogv it's recommended to use
# Zeus81 video player script, which you can find on the link of the official
# RPG maker forums below (under the spanish translation, d'uh):
#
# SPA:
# NOTA 2 - Para usar otros formatos de vídeo a parte de .Ogv es recomendable
# usar el script video player de Zeus81, el cual podéis encontrar en la siguiente
# página de los foros oficiales de RPG maker:
#
# https://forums.rpgmakerweb.com/index.php?threads/zeus-video-player.6392/
#==============================================================================

#==============================================================================
# ● Histórico (Version History)
#==============================================================================
# ENG:
# v 2.4 + Patch - Now you can put more logos, add videos and MEs.
# v 2.4 - Higher resolutions compatibility.
# v 2.3 - The commands name is no longer based on the ones of the database.
#
# SPA:
# v 2.4 + Parche - Añadida compatibilidad con más logos, poner vídeos y ME.
# v 2.4 - Compatibilidad con resoluciones por encima de la de por defecto.
# v 2.3 - El nombre de los comandos ya no se basa en la base de datos.
#==============================================================================

module MOG_SCENE_TITLE_A

  #--------------------------------------------------------------------------
  # ▼ LOGO ▼
  #--------------------------------------------------------------------------
  # ENG:
  # Shows one or more logos on the title scene.
  # You'll need to have the images Logo.jpg, Logo2.jpg, y Logo3.jpg (or png)
  # in the Graphics/Title2 folder depending on the ones you set to true below.
  #
  # SPA:
  # Muestra uno o más logos al empezar la escena de título.
  # Necesitarás tener las imágenes Logo.jpg, Logo2.jpg, y Logo3.jpg (o png)
  # en la carpeta Graphics/Title2 según las que tengas activadas abajo.
  #--------------------------------------------------------------------------
  # Activate Logo/Activar Logo
  LOGO = true
  LOGO2 = true
  LOGO3 = false
  
  # ME you will use for each logo/ME a usar con cada logo
  # Can be put as nil if you don't want it/Puedes poner nil si no lo quieres
  # ME = "name/nombre"
  ME = "As I Lay Dying - The Darkest Nights Instrumental Cover"
  ME2 = nil
  ME3 = nil
  
  # Logo Duration/Duración de logo.
  LOGO_DURATION = 5 #(Sec/Seg)
  LOGO2_DURATION = 5 #(Sec/Seg)
  LOGO3_DURATION = 3 #(Sec/Seg)  
  
  #--------------------------------------------------------------------------
  # ▼ MOVIES/VÍDEOS ▼
  #--------------------------------------------------------------------------
  # ENG:
  # Shows a video after the logos and before the title screen.
  # You will need to put Movie.ogv, Movie2.ogv, and Movie3.ogv files for
  # the ones you set to true below or any other compatible video file (With
  # Zeus81 script) in the Movies/ folder.
  #
  # SPA:
  # Muestra un vídeo después de los logos antes del título.
  # Deberás poner los archivos Movie.ogv, Movie2.ogv, y Movie3.ogv dependiendo
  # de los que actives abajo, o de cualquier otro formato de vídeo compatible
  # (Con el script de Zeus81) en la carpeta de Movies/.
  #--------------------------------------------------------------------------
  # Activate movies
  MOVIE = false
  MOVIE2 = false
  MOVIE3 = false

  #--------------------------------------------------------------------------
  # ▼ RANDOM BACKGROUND/FONDOS ALEATORIOS ▼
  #--------------------------------------------------------------------------  
  # ENG:
  # Define the pictures you are going to use as backgrounds for the title.
  #
  # SPA:
  # Elige las imágenes que usarás de fondo para el título.
  #--------------------------------------------------------------------------
  RANDOM_PICTURES = [
  "Title0"#, "Title1", "Title2", "Title3"  
  #"Title4","Title5","Title6","Title7"
  ]
  # ENG: Time that the pictures will take before swapping to the next.
  # SPA: Tiempo que tardará cada imágen en cambiarse a la siguiente.
  RANDOM_PICTURES_DURATION = 10#(sec/seg)
  # ENG: Random order.
  # SPA: Orden aleatorio.
  RAMDOM_SELECTION = false
  # ENG: Scrolling speed. (Speed X , Speed Y)
  # SPA: Velocidad de cambio de imágen. (Velocidad X , Velocidad Y)
  RANDOM_PICTURES_SCROLL_SPEED = [0,0]
  
  #--------------------------------------------------------------------------
  # ▼ MULTIPLE LAYERS/MÚLTIPLES CAPAS ▼
  #--------------------------------------------------------------------------
  # ENG: Multiple layers on the title. (There is no limit to the used layers)
  # SPA: Capas múltiples del título.
  #--------------------------------------------------------------------------
  # MULTIPLE_LAYERS = [  ["A",B,C,D], ["A",B,C,D], ["A",B,C D], ["A",B,C,D ], ....]
  #
  # A - Image name/Nombre de imágen.
  # B - Horizontal scroll speed/Velocidad de movimiento en horizontal.
  # C - Vertical scroll speed/Velocidad de movimiento en vertical.
  # D - Blend type/Tipo de Blend:
  # (0 - Normal / 2 - Add(Añadir) /  3 - Substract(Sustraer))
  #
  MULTIPLE_LAYERS = [
  ["Layer1",1,0,1],
  ["Layer2",3,0,1],  
  ["Layer3",0,0,0]
#  ["Layer4",0,0,0],
#  ["Layer5",0,0,0],
#  ["Layer6",0,0,0]
  ]  
  
  #--------------------------------------------------------------------------
  # ▼ PARTICLES/PARTÍCULAS ▼
  #--------------------------------------------------------------------------
  # ENG: Adds animated particles on the title screen.
  # You will need to put the image PARTICLE.png in the Graphics/Title2 folder.
  #
  # SPA: Añade partículas animadas en la pantalla de título.
  # Tendrás que poner la imágen PARTICLE.png en la carpeta Graphics/Title2
  #--------------------------------------------------------------------------
  # Ativar Partículas.
  PARTICLE = true
  # Ativar Cores Aleatórias.
  PARTICLE_RANDOM_COLOR = false  
  # Definição do tipo de blend. (0,1,2)
  PARTICLE_BLEND_TYPE = 0
  #Definição do limite de velocidade das partículas.
  PARTICLE_MOVEMENT_RANGE_X = 3
  PARTICLE_MOVEMENT_RANGE_Y = 3
  PARTICLE_ANGLE_RANGE = 3
  
  #--------------------------------------------------------------------------
  # ▼ WAVE TITLE/ONDULAR TÍTULO ▼
  #--------------------------------------------------------------------------  
  # ENG: Actvates the wave effect for the title image/text.
  #
  # SPA: Activa el efecto de ondulación en la imágen/texto del título.
  #--------------------------------------------------------------------------    
  # Activate the wave effect/Activar efecto de ondulación.
  TITLE_WAVE = true
  # Wave effect settings/Configuración del efecto de ondulación.
  #
  # TITLE_WAVE_CONFIG = [ AMP, LENGTH , SPEED]
  #
  TITLE_WAVE_CONFIG = [6 , 232 , 360]
  
  #--------------------------------------------------------------------------
  # ▼ ANIMATED_SPRITE ▼ (Opcional)
  #--------------------------------------------------------------------------
  # SPA:
  # Añade un sprite animado en la pantalla de título.
  # La cantidad de frames es proporcional a lo ancho dividido por lo alto de
  # la imágen, lo que significa que no hay límite para la cantidad de frames
  # ni para el tamaño de esta.
  # Deberás tener el archivo ANIMATED.png (Jpg) en la carpeta de
  # Graphics/Title2
  #
  # ENG:
  # Adds an animated sprite on the title screen.
  # The quantity of frames is proportional to the width divided by height of
  # the image, which means that there is no limit to the quantity of frames
  # nor the image size.
  # You will need to have the file ANIMATED.png (Jpg) on the Graphics/Title2
  # folder.
  #--------------------------------------------------------------------------
  # Activate animated sprite/Activar el sprite animado.
  ANIMATED_SPRITE = true
  # Animated sprite position/Posición del sprite animado.
  ANIMATED_SPRITE_POSITION = [292,212]
  # Animation speed/Velocidad de animación.
  ANIMATED_SPRITE_SPEED = 10
  # Blend type/Tipo de Blend.
  # (0 - Normal / 2 - Add(añadir) / 3 - Substract(Sustraer))
  ANIMATED_SPRITE_BLEND_TYPE = 1
  # Animated sprite zoom size/Zoom del sprite animado.
  ANIMATED_SPRITE_ZOOM = 1.5
  
  
  #--------------------------------------------------------------------------
  # ▼ COMMANDS & SELECTION/COMANDOS Y SELECCIÓN▼
  #--------------------------------------------------------------------------
  # ENG: Title commands settings.
  #
  # SPA: Configuración de los comandos del título.
  #--------------------------------------------------------------------------
  # Commands position/Posición de los comando.
  COMMANDS_POS = [380 , 312]
  # Activate a shaking effect when selecting/Activar temblor al seleccionar.
  COMMAND_SHAKE = true
  # Cursor position/Posición del cursor.(Settings/ajustes)
  CURSOR_POS = [-42,-7]
  # Activate flash upon selecting/Activar flash al seleccionar.
  CURSOR_FLASH_SELECTION = true
  # Flash position/Posición del flash.
  CURSOR_FLASH_SLECTION_POS = [-338,0]
  # Blend type/Tipo de Blend.
  # (0 - Normal / 2 - Add(añadir) / 3 - Substract(Sustraer))
  CURSOR_FLASH_SLECTION_BLEND_TYPE = 1
  
end

#==============================================================================
# ■ Window TitleCommand
#==============================================================================
class Window_TitleCommand < Window_Command
  attr_reader :list
end

#==============================================================================
# ■ Particle Title
#==============================================================================
class Particle_Title < Sprite
  
  include MOG_SCENE_TITLE_A
  
 #--------------------------------------------------------------------------
 # ● Initialize
 #--------------------------------------------------------------------------            
  def initialize(viewport = nil)
      super(viewport)
      self.bitmap = Cache.title2("Particle")
      self.tone.set(rand(255),rand(255), rand(255), 255) if PARTICLE_RANDOM_COLOR
      self.blend_type = PARTICLE_BLEND_TYPE
      self.z = 50
      @sc_x = [self.bitmap.width / 2, self.bitmap.width, Graphics.width]
      @sc_y = [self.bitmap.height / 2, self.bitmap.height, Graphics.height]
      
      @cw0 = self.bitmap.width / 2 ; @ch0 = self.bitmap.height / 2
      @cw = self.bitmap.width + @cw0 ; @cw2 = Graphics.width
      @ch = self.bitmap.height + @ch0 ; @ch2 = Graphics.height
      
      @nx = PARTICLE_MOVEMENT_RANGE_X
      @ny = PARTICLE_MOVEMENT_RANGE_Y
      reset_setting
  end  
  
 #--------------------------------------------------------------------------
 # ● Reset Setting
 #--------------------------------------------------------------------------              
  def reset_setting
      zoom = (50 + rand(100)) / 100.1
      self.zoom_x = zoom
      self.zoom_y = zoom
      self.x = (rand(@cw2 + 32) -32)
      self.y = rand((@ch2 + 32) + @ch)
      self.opacity = 0
      self.angle = rand(360)
      nx2 = rand(@nx).abs
      nx2 = 1 if (@nx != 0 and nx2 < 1)      
      @speed_x = @nx > 0 ? nx2 : @nx < 0 ? -nx2 : 0        
      ny2 = rand(@ny).abs
      ny2 = 1 if (@ny != 0 and ny2 < 1)      
      @speed_y = @ny > 0 ? ny2 : @ny < 0 ? -ny2 : 0  
      @speed_a = [[rand(PARTICLE_ANGLE_RANGE), PARTICLE_ANGLE_RANGE].min, 0].max
  end
  
 #--------------------------------------------------------------------------
 # ● Dispose
 #--------------------------------------------------------------------------              
  def dispose
      super
      self.bitmap.dispose
  end  
  
 #--------------------------------------------------------------------------
 # ● Update
 #--------------------------------------------------------------------------              
  def update
      super
      self.x += @speed_x
      self.y -= @speed_y
      self.angle += @speed_a      
      self.opacity += 5
      reset_setting if can_reset_setting?
  end  
  
 #--------------------------------------------------------------------------
 # ● Can Reset Setting
 #--------------------------------------------------------------------------                
  def can_reset_setting?
      return true if (self.x < -(@cw * 2) or self.x > (@cw2 + @cw))    
      return true if (self.y < -(@ch * 2) or self.y > (@ch2 + @ch))
      return false
  end  
end

#==============================================================================
# ■ Multiple Layers Title
#==============================================================================
class Multiple_Layers_Title
  
  #--------------------------------------------------------------------------
  # ● Initialize
  #--------------------------------------------------------------------------  
  def initialize(name = "", scroll_x = 0, scroll_y = 0, blend = 0, index = 0)
      @layer = Plane.new
      @layer.bitmap = Cache.title1(name.to_s) rescue nil
      @layer.bitmap = Bitmap.new(32,32) if @layer.bitmap == nil
      @layer.z = 10 + index
      @layer.opacity = 0
      @layer.blend_type = blend
      @scroll_speed = [scroll_x, scroll_y]
  end
  
  #--------------------------------------------------------------------------
  # ● Dispose
  #--------------------------------------------------------------------------  
  def dispose
      @layer.bitmap.dispose
      @layer.bitmap = nil
      @layer.dispose
  end
  
  #--------------------------------------------------------------------------
  # ● Update
  #--------------------------------------------------------------------------  
  def update
      @layer.opacity += 2
      @layer.ox += @scroll_speed[0]
      @layer.oy += @scroll_speed[1]
  end
  
end

#==============================================================================
# ■ Scene Title
#==============================================================================
class Scene_Title < Scene_Base
 include MOG_SCENE_TITLE_A
 
 #--------------------------------------------------------------------------
 # ● Start
 #--------------------------------------------------------------------------          
 def start
     super
     RPG::BGM.fade(2000)
     @logo_active = LOGO unless DataManager.save_file_exists?
     @logo2_active = LOGO2 unless DataManager.save_file_exists?
     @logo3_active = LOGO3 unless DataManager.save_file_exists?
     @movie_active = MOVIE unless DataManager.save_file_exists?
     @movie2_active = MOVIE2 unless DataManager.save_file_exists?
     @movie3_active = MOVIE3 unless DataManager.save_file_exists?
     SceneManager.clear
     @phase = 1
     @phase_time = -1
     @phase2 = 1
     @phase2_time = -1
     @phase3 = 1
     @phase3_time = -1
     @phase4 = 0
     @phase4_time = -1
     @phase5 = 0
     @phase5_time = -1
     @phase6 = 0
     @phase6_time = -1
     create_logo if @logo_active
     create_logo2 if @logo2_active
     create_logo3 if @logo3_active
     create_movie if @movie_active unless @logo_active or @logo2_active or @logo3_active
     create_movie2 if @movie2_active unless @logo_active or @logo2_active or @logo3_active or @movie_active
     create_movie3 if @movie3_active unless @logo_active or @logo2_active or @logo3_active or @movie_active or @movie2_active
     create_command_window
     create_commands
     create_background
     create_light
     create_cursor
     create_animated_object
     create_flash_select
     create_multiple_layers
     play_title_music unless @logo_active or @logo2_active or @logo3_active or @movie_active or @movie2_active or @movie3_active
 end
  
 #--------------------------------------------------------------------------
 # ● Create Multiple Layers
 #--------------------------------------------------------------------------
 def create_flash_select
     return if !CURSOR_FLASH_SELECTION
     @flash_select = Sprite.new
     @flash_select.bitmap = Cache.title2("Cursor2")
     @flash_select.z = 99
     @flash_select.opacity = 0
     @flash_select.blend_type = CURSOR_FLASH_SLECTION_BLEND_TYPE
 end  
 
 #--------------------------------------------------------------------------
 # ● Create Multiple Layers
 #--------------------------------------------------------------------------          
 def create_multiple_layers
     @m_layers = []
     index = 0
     for i in MULTIPLE_LAYERS
         @m_layers.push(Multiple_Layers_Title.new(i[0],i[1],i[2],i[3],index))
         index += 1
     end  
 end

 #--------------------------------------------------------------------------
 # ● Create_Logos
 #--------------------------------------------------------------------------            
 def create_animated_object
      return if !ANIMATED_SPRITE
      @object_index = 0
      @object_animation_speed = 0
      @object = Sprite.new
      @object.z = 98
      @object.opacity = 0
      @object.blend_type = ANIMATED_SPRITE_BLEND_TYPE
      @object.zoom_x = ANIMATED_SPRITE_ZOOM
      @object.zoom_y = ANIMATED_SPRITE_ZOOM
      @object_image = Cache.title2("Animated")
      @object_frame_max = @object_image.width / @object_image.height
      @object_width = @object_image.width / @object_frame_max  
      @object.bitmap = Bitmap.new(@object_width,@object_image.height)
      @object.x = ANIMATED_SPRITE_POSITION[0]
      @object.y = ANIMATED_SPRITE_POSITION[1]    
      make_object_bitmap
 end  
 
 #--------------------------------------------------------------------------
 # ● Create_Logo
 #--------------------------------------------------------------------------          
 def create_cursor
     @cursor = Sprite.new
     @cursor.bitmap = Cache.title2("Cursor")
     @cursor.opacity = 0
     @cursor.z = 130
     @cursor_position = [0,0]
     @mx = [0,0,0]
 end
 
 #--------------------------------------------------------------------------
 # ● Create_Logos
 #--------------------------------------------------------------------------          
 def create_logo
     @phase = 0
     @logo = Sprite.new
     @logo.bitmap = Cache.title2("Logo")
     @logo.opacity = 0
     @logo_duration = 180 + (LOGO_DURATION * 60)
     @logo.z = 200
     RPG::ME.new(MOG_SCENE_TITLE_A::ME, 100, 100).play
   end
  
 def create_logo2
     @phase2 = 0
     @logo2 = Sprite.new
     @logo2.bitmap = Cache.title2("Logo2")
     @logo2.opacity = 0
     @logo2_duration = 180 + (LOGO3_DURATION * 60)
     @logo2.z = 200
     RPG::ME.new(MOG_SCENE_TITLE_A::ME2, 100, 100).play unless MOG_SCENE_TITLE_A::ME2 == nil
   end
  
   def create_logo3
     @phase3 = 0
     @logo3 = Sprite.new
     @logo3.bitmap = Cache.title2("Logo3")
     @logo3.opacity = 0
     @logo3_duration = 180 + (LOGO3_DURATION * 60)
     @logo3.z = 200
     RPG::ME.new(MOG_SCENE_TITLE_A::ME3, 100, 100).play unless MOG_SCENE_TITLE_A::ME3 == nil
   end

 #--------------------------------------------------------------------------
 # ● Create_Movies
 #--------------------------------------------------------------------------          
 def create_movie
     if @phase4 == 0
     RPG::ME.stop
     Graphics.play_movie("Movies/Movie")
     @phase4 = 1
     create_movie2 if @movie2_active
     end
   play_title_music unless @movie2_active or @movie3_active
 end


 def create_movie2
     if @phase5 == 0
     RPG::ME.stop
     Graphics.play_movie("Movies/Movie2")
     @phase5 = 1
     create_movie3 if @movie3_active
     end
   play_title_music unless @movie3_active
 end
 
 def create_movie3
     if @phase6 == 0
     RPG::ME.stop
     Graphics.play_movie("Movies/Movie3")
     @phase6 = 1
     end
   play_title_music
 end
 
 #--------------------------------------------------------------------------
 # ● Create Commands
 #--------------------------------------------------------------------------          
 def create_commands
     @command_window.visible = false
     @commands_index_old = -1
     @commands = []
     @commands_shake_duration = 0
     index = 0
     for com in 0...3
         sprite = Sprite.new
         case index
            when 0; com_name = "New_Game"
            when 1; com_name = "Continue"
            when 2; com_name = "Shutdown"
         end
         sprite.bitmap = Cache.title2(com_name.to_s) rescue nil
         if sprite.bitmap == nil
            sprite.bitmap = Bitmap.new(200,32)
            sprite.bitmap.font.size = 24
            sprite.bitmap.font.bold = true
            sprite.bitmap.font.italic = true
            sprite.bitmap.draw_text(0, 0, 200, 32, com_name.to_s,1)
         end
         sprite.x = COMMANDS_POS[0] - 100 - (index * 20)
         sprite.y = index * sprite.bitmap.height + COMMANDS_POS[1]
         sprite.z = 100 + index
         sprite.opacity = 0
         index += 1
         @commands.push(sprite)
     end
     @command_max = index  
 end
  
  #--------------------------------------------------------------------------
  # ● create_background
  #--------------------------------------------------------------------------
  def create_background
      @rand_title_duration = 120
      @old_back_index = 0
      @sprite1 = Plane.new
      @sprite1.opacity = 0
      @sprite1.z = 1
      if RAMDOM_SELECTION
         execute_random_picture(false)
      else
         execute_random_picture(true)
      end
      @sprite2 = Sprite.new
      @sprite2.bitmap = Cache.title2($data_system.title2_name)
      @sprite2.z = 140
      @sprite2.opacity = 0
      if TITLE_WAVE
          @sprite2.wave_amp = TITLE_WAVE_CONFIG[0]
          @sprite2.wave_length = TITLE_WAVE_CONFIG[1]
          @sprite2.wave_speed = TITLE_WAVE_CONFIG[2]
      end    
  end
  
  #--------------------------------------------------------------------------
  # ● Create Light
  #--------------------------------------------------------------------------  
  def create_light
      return unless PARTICLE
      @light_bitmap =[]
      for i in 0...20
          @light_bitmap.push(Particle_Title.new(nil))
      end  
  end
    
  #--------------------------------------------------------------------------
  # ● dispose Background1
  #--------------------------------------------------------------------------
  def dispose_background1
      @sprite1.bitmap.dispose
      @sprite1.bitmap = nil
      @sprite1.dispose
      @sprite1 = nil
  end
  
 #--------------------------------------------------------------------------
 # ● Dispose Background2
 #--------------------------------------------------------------------------                
  def dispose_background2
      if @sprite2.bitmap != nil
         @sprite2.bitmap.dispose
         @sprite2.bitmap = nil
         @sprite2.dispose
         @sprite2 = nil
      end
  end
    
 #--------------------------------------------------------------------------
 # ● Dispose Light
 #--------------------------------------------------------------------------              
  def dispose_light
      return unless PARTICLE
      if @light_bitmap != nil
         for i in @light_bitmap
             i.dispose
         end
         @light_bitmap = nil
      end
  end    
  
 #--------------------------------------------------------------------------
 # ● Dispose Logo
 #--------------------------------------------------------------------------            
 def dispose_logo
     return unless @logo_active
     @logo.bitmap.dispose
     @logo.dispose

   end
  
 def dispose_logo2
     return unless @logo2_active
     @logo2.bitmap.dispose
     @logo2.dispose
   end  
  
  def dispose_logo3
     return unless @logo3_active
     @logo3.bitmap.dispose
     @logo3.dispose
   end  
#--------------------------------------------------------------------------
 # ● Dispose Multiple Layers
 #--------------------------------------------------------------------------                          
 def dispose_multiple_layers
     return if @m_layers == nil
     @m_layers.each {|layer| layer.dispose }
 end
 
 #--------------------------------------------------------------------------
 # ● Terminate
 #--------------------------------------------------------------------------            
 def terminate
     super
     dispose_title_sprites    
 end  
 
 #--------------------------------------------------------------------------
 # ● Dispose Title Sprites
 #--------------------------------------------------------------------------            
 def dispose_title_sprites
     return if @cursor == nil
     dispose_background1
     dispose_background2
     dispose_light
     dispose_logo
     dispose_logo2
     dispose_logo3
     dispose_multiple_layers
     @cursor.bitmap.dispose
     @cursor.dispose
     @cursor = nil
     if @flash_select != nil
        @flash_select.bitmap.dispose
        @flash_select.dispose
     end  
     for com in @commands
         com.bitmap.dispose
         com.dispose
     end
     if ANIMATED_SPRITE
        @object.bitmap.dispose
        @object.dispose
        @object_image.dispose
     end        
 end
  
 #--------------------------------------------------------------------------
 # ● Update
 #--------------------------------------------------------------------------            
 def update
     super
     update_logo
     update_logo2
     update_logo3
     update_initial_animation
     update_command
     update_background
     update_light
     update_object_animation
     update_multiple_layers
 end
 
 #--------------------------------------------------------------------------
 # ● Update Multiple Layers
 #--------------------------------------------------------------------------                          
 def update_multiple_layers
     return if @m_layers == nil
     @m_layers.each {|layer| layer.update }
 end
  
 #--------------------------------------------------------------------------
 # ● Make Object bitmap
 #--------------------------------------------------------------------------                        
  def make_object_bitmap
      @object.bitmap.clear
      src_rect_back = Rect.new(@object_width * @object_index, 0,@object_width,@object_image.height)
      @object.bitmap.blt(0,0, @object_image, src_rect_back)  
  end
    
 #--------------------------------------------------------------------------
 # ● Update Object Animation
 #--------------------------------------------------------------------------                      
  def update_object_animation
      return if !ANIMATED_SPRITE
      @object.opacity += 2
      @object_animation_speed += 1
      if @object_animation_speed > ANIMATED_SPRITE_SPEED
         @object_animation_speed = 0
         @object_index += 1
         @object_index = 0 if @object_index >= @object_frame_max
         make_object_bitmap    
      end
  end  
  
 #--------------------------------------------------------------------------
 # ● Update Cursor Position
 #--------------------------------------------------------------------------            
 def update_cursor_position
     @cursor.opacity += 5
     execute_animation_s
     execute_cursor_move(0,@cursor.x,@cursor_position[0] + @mx[1])
     execute_cursor_move(1,@cursor.y,@cursor_position[1])
 end  
 
  #--------------------------------------------------------------------------
  # ● Execute Animation S
  #--------------------------------------------------------------------------      
  def execute_animation_s
      @mx[2] += 1
      return if @mx[2] < 4
      @mx[2] = 0
      @mx[0] += 1
      case @mx[0]
         when 1..7;  @mx[1] += 1            
         when 8..14; @mx[1] -= 1
         else
           @mx[0] = 0
           @mx[1] = 0
      end
  end
    
  #--------------------------------------------------------------------------
  # ● Execute Cursor Move
  #--------------------------------------------------------------------------      
  def execute_cursor_move(type,cp,np)
      sp = 5 + ((cp - np).abs / 5)
      if cp > np
         cp -= sp
         cp = np if cp < np
      elsif cp < np
         cp += sp
         cp = np if cp > np
      end    
      @cursor.x = cp if type == 0
      @cursor.y = cp if type == 1
  end  
 
 #--------------------------------------------------------------------------
 # ● Update Logos
 #--------------------------------------------------------------------------            
 def update_logo
     return if @phase != 0
     loop do
        break if  @logo_duration == 0
        execute_logo
        Graphics.update
        Input.update
      end
     create_movie if @movie_active unless @logo2_active or @logo3_active
     create_movie2 if @movie2_active unless @logo2_active or @logo3_active or @movie_active
     create_movie3 if @movie3_active unless @logo2_active or @logo3_active or @movie_active or @movie2_active
     play_title_music unless @logo2_active or @logo3_active or @movie_active or @movie2_active or @movie3_active
   end
  
 def update_logo2
     return if @phase2 != 0
     loop do
        break if  @logo2_duration == 0
        execute_logo2
        Graphics.update
        Input.update
      end
     create_movie if @movie_active unless @logo3_active
     create_movie2 if @movie2_active unless @logo3_active or @movie_active
     create_movie3 if @movie3_active unless @logo3_active or @movie_active or @movie2_active
     play_title_music unless @logo3_active or @movie_active or @movie2_active or @movie3_active
   end
  
   def update_logo3
     return if @phase3 != 0
     loop do
        break if  @logo2_duration == 0
        execute_logo3
        Graphics.update
        Input.update
      end
     create_movie if @movie_active
     create_movie2 if @movie2_active unless @movie_active
     create_movie3 if @movie3_active unless @movie_active or @movie2_active
     play_title_music unless @movie_active or @movie2_active or @movie3_active
   end

 #--------------------------------------------------------------------------
 # ● Execute Logos
 #--------------------------------------------------------------------------            
 def execute_logo
     if @logo_duration > 120 and (Input.trigger?(:C) or Input.trigger?(:B))
        @logo_duration = 120
     end  
     @logo_duration -= 1
     if @logo_duration > 120
        @logo.opacity += 5
     else
        @logo.opacity -= 5
     end
     if @logo.opacity <= 0
        @logo_duration = 0
        @phase = 1
     end    
 end

 def execute_logo2
     if @logo2_duration > 120 and (Input.trigger?(:C) or Input.trigger?(:B))
        @logo2_duration = 120
     end  
     @logo2_duration -= 1
     if @logo2_duration > 120
        @logo2.opacity += 5
     else
        @logo2.opacity -= 5
     end
     if @logo2.opacity <= 0
        @logo2_duration = 0
        @phase2 = 1
     end    
   end
  
 def execute_logo3
     if @logo3_duration > 120 and (Input.trigger?(:C) or Input.trigger?(:B))
        @logo3_duration = 120
     end  
     @logo3_duration -= 1
     if @logo3_duration > 120
        @logo3.opacity += 5
     else
        @logo3.opacity -= 5
     end
     if @logo3.opacity <= 0
        @logo3_duration = 0
        @phase3 = 1
     end    
   end
      
 #--------------------------------------------------------------------------
 # ● Update Background
 #--------------------------------------------------------------------------              
 def update_background
     @sprite1.ox += RANDOM_PICTURES_SCROLL_SPEED[0]
     @sprite1.oy += RANDOM_PICTURES_SCROLL_SPEED[1]
     @sprite2.opacity += 2
     @sprite2.update
     return if RANDOM_PICTURES.size < 1
     @rand_title_duration -= 1
     if @rand_title_duration <= 0
        @sprite1.opacity -= 5 unless RANDOM_PICTURES.size < 2
     else
        @sprite1.opacity += 5
     end  
     return if @sprite1.opacity != 0
     execute_random_picture
 end
 
 #--------------------------------------------------------------------------
 # ● Execute Random Picture
 #--------------------------------------------------------------------------              
 def execute_random_picture(initial = false)
     @rand_title_duration = [[60 * RANDOM_PICTURES_DURATION, 9999].min, 60].max
     if @sprite1.bitmap != nil
        @sprite1.bitmap.dispose
        @sprite1.bitmap = nil
     end
     if RAMDOM_SELECTION
         rand_pic = rand(RANDOM_PICTURES.size)
         if rand_pic == @old_back_index
            rand_pic += 1
            rand_pic = 0 if rand_pic >= RANDOM_PICTURES.size
         end
         @old_back_index = rand_pic  
     else
         @old_back_index += 1 unless initial
         @old_back_index = 0 if @old_back_index >= RANDOM_PICTURES.size
     end
     pic = RANDOM_PICTURES[@old_back_index]
     @sprite1.bitmap = Cache.title1(pic) rescue nil
     @sprite1.bitmap = Cache.title1("") if @sprite1.bitmap == nil
 end
  
 #--------------------------------------------------------------------------
 # ● Update Light
 #--------------------------------------------------------------------------              
 def update_light
     return unless PARTICLE
     if @light_bitmap != nil
        for i in @light_bitmap
            i.update
        end  
     end  
 end
    
 #--------------------------------------------------------------------------
 # ● Update Initial Animation
 #--------------------------------------------------------------------------              
 def update_initial_animation
     return if @phase != 1
     @phase_time -= 1 if @phase_time > 0
     if @phase_time == 0
        @phase = 2
        @phase_time = 30
     end  
     for i in @commands
        index = 0
        if i.x < COMMANDS_POS[0]
           i.x += 5 + (2 * index)
           i.opacity += 10
           if i.x >= COMMANDS_POS[0]
              i.x = COMMANDS_POS[0]
              i.opacity = 255
              if @phase_time < 15 / 2
                 @phase_time = 15
              end  
           end  
         end
         index += 1
     end  
 end  
 
 #--------------------------------------------------------------------------
 # ● Update Command
 #--------------------------------------------------------------------------              
 def update_command
     return if @phase != 2  
     update_command_slide
     update_cursor_position
     update_flash_select
 end
 
 #--------------------------------------------------------------------------
 # ● Update Command Slide
 #--------------------------------------------------------------------------              
 def update_command_slide
     if @commands_index_old != @command_window.index
        @commands_index_old = @command_window.index
        @commands_shake_duration = 30
        if @flash_select != nil
           @flash_select.opacity = 255
        end  
     end
     return if @commands_shake_duration == 0
     @commands_shake_duration -= 1 if @commands_shake_duration > 0  
     @commands_shake_duration = 0 if !COMMAND_SHAKE
     for i in @commands
       if (i.z - 100) == @command_window.index
          i.opacity += 10
          @cursor_position = [COMMANDS_POS[0] + CURSOR_POS[0],i.y + CURSOR_POS[1]]
          i.x = COMMANDS_POS[0] + rand(@commands_shake_duration)
       else  
          i.opacity -= 7 if i.opacity > 100
          i.x = COMMANDS_POS[0]
       end
     end  
   end
  
 #--------------------------------------------------------------------------
 # ● Update Flash Select
 #--------------------------------------------------------------------------                  
 def update_flash_select
     return if !CURSOR_FLASH_SELECTION
     @flash_select.opacity -= 8
     @flash_select.x = @cursor_position[0] + CURSOR_FLASH_SLECTION_POS[0]
     @flash_select.y = @cursor_position[1] + CURSOR_FLASH_SLECTION_POS[1]    
 end
  
end

$mog_rgss3_animated_title_a = true
avatar
BreinLand entertainment
Soñador
Soñador

0/3

Créditos 209

Gracias : 48

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.