¡Bienvenido a Universo Maker!
¿Es esta la primera vez que visitas el foro? Si es así te recomendamos que te registres para tener completo acceso a todas las áreas y secciones del foro, así también podrás participar activamente en la comunidad. Si ya tienes una cuenta, conectate cuanto antes.
Iniciar Sesión Registrarme

No estás conectado. Conéctate o registrate

Ver el tema anterior Ver el tema siguiente Ir abajo Mensaje [Página 1 de 1.]

#1 [Proyecto] El Secreto de la Magia el Sáb Feb 02, 2013 2:31 am

FireWolf

avatar
¡Buenos días, tardes o NOCHES! en este tema les traigo un juego que voy hacer Ópalo Contento! AQUÍ VA!



Titulo: El Secreto de la Magia
Plataforma: (He estado pensado que seria buena idea pasarme a VX Ace, aunque tengo un problemita así que todavia no me paso)
Autor: MegaDan/FireWolf (Soy yo Ópalo Sonrisa Grande tambien si lo ven en Taringa si el user dice: Danni123as soy yop.)
Género: RPG, Investigación
Sistema de Batalla: Posiblemente Lateral
IDIOMA: Español, y quizás lo expanda a Portugues de Brasil xD

Historia:

Spoiler:
Hace muchos años, justo un año después de la creación, las criaturas "primitivas" descubrieron una fuente de poder. Muchos creían
que era el poder de los Dioses, pero en verdad era un poder dado como "regalo", se dice que en cada planeta, hay criaturas y les da
un "regalo" al fin y al cabo, el regalo fue un "Poder Místico" que más tarde seria llamado MAGIA. Varios años después la Magia se uso


para buen uso, muchos construyeron ciudadelas a base de Magia, como los Elfos, que la Ciudadela mayor (Capital del Estado Elfo)
llamada Kuns Sol Brillante es todo a base de Magia, donde los grandes Magos viven allí y comparten su sabiduría, toda una
ciudadela pacifica, los Humanos, grandes constructores y guerreros, ellos tomaron la Magia como algo, "poderoso" o "sagrado" o
para el que tenga el "Destino" de ser un Mago, prácticamente el Estado Humano nada más eran guerreros, cazadores,
constructores, investigadores, teóricos, etc. Cosas muy ajenas a la magia. Varios Investigadores teóricos hicieron Teorías tales como
el investigador Brunsor dijo: "Los Elfos son criaturas especiales, especiales en el sentido de que los Dioses los crearon a partir de
MAGIA, los que serian los portadores y protectores de la Magia" otro dice en respuesta a Brunsor: "Los Elfos son como cualquier
criatura, solo que son genios en la magia, es todo" de ahí salieron muchas teorías. Después de unos 100 años un Humano
Llamado Krunger con una mente maligna y perversa, decidió ser un Mago, varios Años demostró tener una gran Habilidad en la
Magia, pero esa gran habilidad lo que hizo fue desperdiciarla, matando inocentes y destruyendo, antes de que el se hiciera Mago
todo era pacifico, el fue el único en poder viajar de un planeta a otro, así llegando al Planeta Majerse, donde Orcos y Grunps son
muy pacíficos, era un planeta Hermoso, porque ellos eran Salvajes y se comunicaban con la vida salvaje y la naturaleza, aunque los
Orcos no eran tan "Naturales" ellos tenias su ciudadela y armas de Acero, era todos unos grandes guerreros, pero como los Orcos y
Grunps eran muy territoriales, ellos tenían su territorio, nada de estar invadiendo, si invadían a un territorio, era el significado de
que querían Guerra. Entonces Krunger decide llevar a los Orcos y Grunps al mundo Nargarus (La tierra), existen 3 Continentes,

Sunmo, Hurgos
y bulgore, en vez de que los Orcos y Grunps se asentaran en Bulgore, un lugar muy, pero muy desértico (en el sentido de que no
hay asentamiento ni civilización solo criaturas y animales) Aunque Bulgore era muy frío era como decir el Polo Norte, pero era el
más grande continente, se decidieron asentarse en Hurgos, continente Humano, eso causo una guerra de territorios casi
interminable, Los orcos y Grunps decidieron irse a Bulgore (Obligados) y termino la guerra, pudieron capturar a Krunger y
condenarlo a muerte. Muchos Años después todo iba avanzando y nada pasaba, hasta que surgio de las Teorías, resulta que un Elfo
aventurero y maestro del Espionaje, descubrió que los Grunps y Orcos usaban MAGIA, lo que surgió la Teoría de que La Magia
Podría ser un ser que anda por todo el universo, pero hasta que un Teórico llamado Mike dijo: "Nada más se inventan cosas para
saciar esa duda, nadie sabe si fue la Magia la que nos creo o si existen Dioses, pero la Magia es un Secreto guardado y escondido por
más de 70 Millones de años, así que déjense de inventarse cosas" de ahí, nadie puso otra Teoría, pero un joven llamado
Tirus era un curioso y se fue a la gran profesión de Investigador, la palabra del Teórico Mike, le conmovió a buscar ese SECRETO DE


LA MAGIA, cuya aventura es investigar porque estamos aquí y para que propósito y porque se nos dio el poder de la MAGIA.
Adéntrate en la Aventura de Tirus veras todo tipo de Magia existe hasta la que tu piensa que es inútil y es más fuerte que tú. Tirus
viajara por todo los continentes y de seguro, a otro Planeta.

PERSONAJES:
Spoiler:
Aún no estan las faces siguen en proceso xD

Tirus:Joven Curioso y serio, se tomo 7 años de su
vida para estudiar Investigación, una de las carreras más estudiada y
más usada por los Humanos, es el que lleva a Cabo la Investigación del
Secreto.

Ike: Ingenioso y con un gran sentido del
Humor, este chico es un Mago del Viento, se dice, que los magos de
viento suelen transformarse en criaturas extrañas, eso pronto se vera.

Krom: Serio y callado, Krom es un Hombre de
35 años, el mayor de todos, una vez fue un gran Mago en la Escuela de
Anunfor, Estado Elfo, pero misteriosamente desaparecio, ahora solo tiene
un trabajo de Pintor y muy pronto se lo explicara al Joven Tirus,
porque es Pintor. El es un Mago de Los Colores de la Pintura, se dice
que ese tipo de Mago solo salen 3 cada 500 Años, curiosamente 2 Magos
murieron, y quedo Krom, se dice que la Magia Pinturesca, coloristica, es
muy poderosa. Otro Gran Secreto por descubrir.


Bueno voy añadiendo, pero ahora se esta haciendo a los demás.

RAZAS:
Spoiler:
Humanos: Ingenieros, teoricos,
investigadores, guerreros. Una Raza muy ajena a la Magia y raza de genes
fuerte, ingeniosos etc. Tú eres un Humano, y eso no se puede cambiar.


Elfos: Grandes Sabios de la Magia, Genios, Fisicos y escritores de
grandes libros de Poder, Magia y Sabíduria. Son tus aliados. No puedes
ser un Elfo, o quizas si puedes.


Orcos: Fuertes, pelean a lo bruto (No digo bruto de bobo no no para
nada) Salvajes y grandes Guerreros. Los Orcos son una Raza VIEJA incluso
más viejos que los GRUNPS, su Magia es ancestral y Mistica, pronto
sabras que magia usan ellos. Son tus enemigos, no puedes ser uno de
ellos.


Grunps: Una maravilla de genios! curiosos grandes inventores y unos
excelentes comerciantes, ellos inventaron unas de las primeras armas de
Magia para los Orcos, de ahí se hicieron fieles Aliados, eran buenos
comerciantes y tenian ventajas para los 2, los Orcos podrian tener
grandes Recursos por los GRUNPS, los GRUNPS una gran defensa y
entrenamiento Militar. Son tus enemigos, no puedes ser uno de ellos.

IMAGENES:

Spoiler:
EL TITULO




PRONTO HABRAN MÁS
Sistema/Caracteristicas:

Spoiler:


Pesca:No tienes dinero? no tienes comida?
la necesitas? tienes una caña de pescar? ve al lago más cercano y pesca
un gran pez y ¡A la Hoguera!


Mineria:A veces minar por tu propia cuenta trae beneficios, ¿Eres un
herrero? has tu propia Armadura o espada o sino enviala a que te hagan
una!


Posada Mejorada: Cansado de esa tipica posada RPG Makera que solo
hace una transicion? pues olvidate! primero debes pagar por la llave asi
puedes entrar, epa epa no te puedes llevar la llave hasta que no la
entregues no podras salir!


Robar: Mmm, falta de recursos? tienes una mente media perversa? roba tienes todo el place de robar! OJO! cuidado con la CARCEL!


Menú: Este tendra un menú y uno personalizado, habra varias opciones.


Monturas: cansado de ir a pie? olvidate en el sistema de Montura iras
más rapido! con solo ir al Menú opcion Monturas elije una! claro debes
comprarte una! y saber montarte en 1!

Malo/Bueno: Posibliemente lo añada. Te gusta ser bondadoso o maligno? es tu decisión!

LOGROS: Seras premiado! todo ese esfuerzo necesita un premio, los logros estaran en este juego, trata de completarlos todos!

Comprar una casa: En algun momento de la historia te cansaras no? La casa es un lugar perfecto para descansar! es uno de los metodos de guardado

Trabajo: Escaso de Dinero? busca un trabajo para conseguir dinero! puedes ir cuando quieras!

Profesiones: No solo seras un investigador, tambien puedes ser INGENIERO, PESCADOR, MINERO! lo que quieres, solo puedes tener 2 profesiones por personaje!

Domar: Es algo util tener un compañero de pelea! para eso el sistema de domar hara que domes a un animal y usarlo como mascota de batalla! cuando lo invocas el te ayudara en las luchas y asi aumenta su experiencia y sube de nivel, pero cuando no lo invocas, no podras hacerlo!

Tala: La tala te servira para algo, solo es necesario descubrirlo Ópalo Sonriente

Escuela: En la escuela puedes parender todo tipo de tecnica, incluso aumentar tu barra de MP!

Bueno es todo, pero de seguro habran más!
Historia del Villano >Ópalo Contento
Spoiler:
Krunger: Krunger era un niño muy bueno, desde los 5 Años, pero
desde ese momento sufrio abusos y problemas, en esa era, todos las
naciones eran pacificas, pero eso no quiere decir que haya personas
malvadas. Krunger acampaba con su padre tranquilamente, al rato Krunger
decidio ir a explorar un poco, no tardo ni 20 minutos en volver, al
volver, vio que su padre no estaba, estaba desesperado y llorando cuando
de pronto escucha un grito, Krunger rapidamente corria hacia la
direccion de los gritos, al ver, vio varios hombres vestidos
completamente de negro golpeando a su padre y haciendolo sufrir, aunque
quedo vivo despues de tanto sufrimiento vieron a Krunger. Krunger salio
lo más rapido que pudo, pero, para la mala suerte de el los hombres
podian teletransportarse, y se lo llevaron, los hombres pertenecian a
una organizacion "LOS MAKROKS" una organizacion con fines de sembrar
caos y terror, pero apenas ivan creciendo, capturaban hombres fuertes,
como lo era el padre de Krunger. Krunger y su padre eran esclavizados,
abusaban de Krunger y a el padre lo golpeaban muchas veces, eran
forzados a construir y trabajar forzosamente en esos campos, pasaban
hambre y frio, una noche entro uno de los MAKROKS, y empezo a gritar y a
golpear a los hombres encadenados, al rato Krunger se dio cuenta que a
al hombre de los MKRS (MAKROKS) se le habia caido unas llaves para la
suerte de Krunger....nadie se dio cuenta, tomo cuidadosamente la llave y
se desencadeno pero sin quitarselas de encima para que no sospecharan,
tiro las llaves a donde las vio sin que se dieran cuenta. El hombre de
los MKRS tenia el deber de llevar a 5 hombres afuera, uno de ellos era
el padre de Krunger, paso un rato y todos se durmieron excepto Krunger,
todo la oportunidad de ver por la ventana lo que pasaba, resulta que los
MKRS se ivan a "Divertir un poco" matandolos de la forma más cruel de
lo que se ha visto. Desde ese entonces Krunger empezo a pensar de una
forma perversa y sangrienta y decidio esperar. Al cabo de unos minutos,
Krunger se levanto y sigilozamente se iva, pero habia obstaculos
(Guardias de MKRS) decidio robar una espada que estaba cerca y empezo a
matar lo más sigilosamente posible a los guardias... te preguntaras,
¿Como los va a matar con solo 5 años? facil, el ya tenia allí 10 años, y
aprendio a como usar la espada viendo a los de MKRS. Logro escapar,
desde entonces se queria vengar de la forma más retorcida que hay
entreno un poco en lo que era la Magia NEGRA, con un libro que se robo,
aprendio 30 Hechizos catastroficos y retorcidos. Desde ese entonces el
tenia ya 15 Años, y los mato a todos! incluyendo a los esclavos de la
forma más retorcida y sangrienta que hay, sintio una sensacion de gusto,
empezo a asesinar, pero pocas personas 10 como maxima, penso en ser un
asesino más "Peligroso" y decidio alistarse en Anundorf y empezo a
destruir y asesinar, y la razón de hacerlo era para sentir ese
cosquilleo ese sentimiento, ese "gusto". Varios días despues penso que
ver una Guerra seria más placentero, empezo a estudiar buscar hechizos
magia, que pudiera causar la guerra, el odio. Un Hechizo abrio
accidentalmente un portal, hacia el Planeta de Majerse así estudio a las
razas de allí y los Orcos y Grunps lo recibieron con los brazos
abiertos, Krunger decidio proponerles un lugar más grande (Ya que
Majerse es un planeta muy chico" los teletransporto a Nargarus y vio que
pudo lograr la guerra, y descubrio que ese placer era mejor de lo que
pensaba, al acabar la guerra descubrieron misteriosamente al culpable, y
con grandes Magos pudieron capturarlo, lo condenaron a muerte. En el
día de la Ejecución, se presento casi todo el continente humano,
abucheandolo, lazandoles tomates podridos, insultandolo etc, el solo lo
veia como admiración, acostaron su cabeza y antes de que se la
cortaran... Sonrio con una sonrisa macabra.
Bueno es todo, proximamente en TU PC y proximamente unas imagenes! Ópalo Contento

#2 Re: [Proyecto] El Secreto de la Magia el Sáb Feb 02, 2013 4:25 am

lDrakou

avatar
Hola esta muy bien tu proyecto solo queria decirte que como hicistes el title del principio

#3 Re: [Proyecto] El Secreto de la Magia el Sáb Feb 02, 2013 5:04 am

FireWolf

avatar
lDrakou escribió:Hola esta muy bien tu proyecto solo queria decirte que como hicistes el title del principio

¿A cual te refieres? Sí el de principio del post fue hecho en PS (Conste que no fui yo, fue un conocido que me ayudo) Si te refieres al de el Title del juego fue tambien hecho en PS por un amigo (OJO no es el mismo de arriba xD) Para que se vea así hay un Script en VX.. el problema de no poder pasarme a VX Ace es por ese mismo script porque la verdad seria recurso perdido y seria una perdida de tiempo para mi amigo, si sabes de un script identico pero para el Ace, pasamelo Ópalo Sonriente Gracias por comentar.

#4 Re: [Proyecto] El Secreto de la Magia el Sáb Feb 02, 2013 3:32 pm

Killer690

avatar
Se ve bastante interesante, me gustaría probarlo en algún momento de la existencia de la humanidad ajaja..





Para vxace.
Tomé un script de Claimh(Autor de scripts japonés) y lo traduje...Esta es la configuración que tengo para mi juego, el resultado, en mi caso fue este.
Spoiler:


Y con un poco más de configuración este:

Código:

#==============================================================================
# ■ VXAce-RGSS3-17 Configuraciones del título [Ver.1.0.0]        by Claimh
#------------------------------------------------------------------------------
#  Selecciona unas tantas cosas al iniciar el juego.
#==============================================================================

module Title
  #--------------------------------------------------------------------------
  # ● Saltos del título
  #--------------------------------------------------------------------------
  # Salta la pantalla de título
  SKIP_ALL      = false
  # Solo puedes continuar datos
  SKIP_NEWGAME  = false
  # Obliga a continuar el juego si has guardado, de lo contrario inicia.
  SKIP_CONTINUE = false


  #--------------------------------------------------------------------------
  # ● Configuraciones generales del título
  #--------------------------------------------------------------------------
  # Transiciones(Si pones nil, no existe transición)
  TITLE_TRN = "Graphics/System/014-Square02"


  #--------------------------------------------------------------------------
  # ● Configuración general del título
  #--------------------------------------------------------------------------
  # Posición de muestra
  #  Rect#x, y  : Pone la imagen en el centro -1.
  #  Rect#width  : x=-1 Ancho al momento del cambio
  #  Rect#height : y=-1 Altura al momento del cambio
  TM_RECT = Rect.new(-1, 0, 0, 0)

  # Forma de mostrar = true: Original, false: Imagen
  TM_TYPE = false

  # Si TM_TYPE = false,
  # Nombre de la imagen, esta debe estar en la carpeta(Graphics/System)
  TM_NAME = "dream1y"

  # Configuración de la fuente
  def self.set_main_bitmap(bitmap)
    bitmap.font.size = 48
    bitmap
  end


  #--------------------------------------------------------------------------
  # ● Configuración de Subtitulo
  #--------------------------------------------------------------------------
  # ¿Mostrar subtitulo? true: Permitir, false: Cancelar
  TS = false

  # Posición
  #  Rect#x, y  : Posición general, centro -1
  #  Rect#width  : x=-1 Ancho al momento de cambiar
  #  Rect#height : y=-1 Alto al momento de cambiar
  TS_RECT = Rect.new(-1, -1, 0, 40)

  # Tipo de muestra true: Texto, false: Imagen
  #  ※ Para configurar las fuentes ve dónde dice set_sub_bitmap abajo
  TS_TYPE = true

  # Nombre del archivo del título, debe estar en la carpeta(Graphics/System)
  TS_NAME = "Buscando la verdad"

  # Configuración de la fuente
  def self.set_sub_bitmap(bitmap)
    bitmap.font.size = 48
    bitmap
  end


  #--------------------------------------------------------------------------
  # ● Comandos en el título
  #--------------------------------------------------------------------------
  # Configura el orden de los comandos en la pantalla de título
  #  0: Comenzar  (Vocab::new_game)
  #  1: Continuar (Vocab::continue)
  #  2: Salir (Vocab::shutdown)
  #  3: Comando especial, configurar abajo.
  CMD_BOX = [0, 1, 2]

  # Set extendido de comandos
  # ※ Por favor quitar o poner comandos en EXCMD = {}
  EXCMD = {
# Número de comando => ["nombre mostrado", Scene llamada, Símbolo]
#    3 => ["Galería", Scene_ExGarally,  :garally]
#    4 => ["Opciones", Scene_Option, :option]
  }

  #  Conjunto de comandos
  def self.excmd_enable?(cmd)
    case cmd # Número de comando
    when 3; return true
    when 4; return true
    end
    true
  end

  # Posición
  #  Rect#x, y  : Centro -1
  #  Rect#width  : Ancho -1
  #  Rect#height : Alto -1
  CMD_RECT = Rect.new(220, 200, -1, 29)

  # Transparencia
  def self.cmd_window_opacity(window)
    window.opacity = 0
    window.back_opacity = 0
    window
  end

  # Mostrar ranuras
  #  Nota: Ajustes no pueden ser dados con cursores
  CMD_SLOT = false
  # Para ver todos los elementos de una ranura
  CMD_SLOT_ALL = true


  # Tipo de comando: True: texto, False: Imagen
  CMD_TYPE = false

  #--<Texto de conjunto de comandos>--#
  # Coom mostrar el texto
  #  0.- Izquierda, 1.- Centro, 2.- Derecha
  CT_ALIGN = 1
  # Reasigna el tamaño para arreglar el cursor
  CT_CUR_FIT = true

  # Configurar fuentes
  def self.set_cmd_bitmap(bitmap)
    bitmap.font.size = 22
    bitmap
  end

  #--<Imagenes de comandos>--#
  # Permite mostrar imagenes para los comandos, true: Solo texto, false: Imagen
  CMD_CHNG = false

  # Archivos de imagen(Graphics/System)
  # Nota: Todos los ficheros deben tener el mismo tamaño
  CMD_GRPHIC = {
  # "N° Comando" => ["Imagen", "SubImagen"]
    0 => ["startkw",  ""],
    1 => ["contu", ""],
    2 => ["exta", ""]
  }

  # No mostrar cursor, true: Mostrar, false: No mostrar
  DISABLE_CURSOR = false


  #--------------------------------------------------------------------------
  # ● Clima
  #--------------------------------------------------------------------------
  # Efectos
  #  :none  ..Templado(Normal)
  #  :rain  ..Lluvia
  #  :storm ..Tormenta
  #  :snow  ..Nieve
  WEATHER_TYPE = :rain
  # Intensidad climática(0..40)
  WEATHER_POWER = 5

  # Reproducir BGS(nil:Ningún BGS)
  BGS = RPG::BGS.new("Rain", 50, 100) #RPG::BGS.new("Rain", 100, 100)


  #--------------------------------------------------------------------------
  # ● Establecer Fade-In
  #--------------------------------------------------------------------------
  # Patrón de Fade
  #  0:Sin Fade
  #  1:Título Principal + Comandos
  #  2:Título Principal + Súbtitulos -> Comandos
  FADEIN_PATTERN = 2

  # Frames usados
  #  Ejemplo 1: Cuando se establece en 60
  #        Patrón 0 => 60
  #        Patrón 1 => 60 + 60
  FADEIN_TIME = 60


  #--------------------------------------------------------------------------
  # ● Ajustar tiempo de espera
  #--------------------------------------------------------------------------
  # Función de esperar
  TIME_OUT = true

  # Tiempo en frames de espera
  TIME_OUT_CNT = 6000


  #--------------------------------------------------------------------------
  # ● Mapa de fondo
  #--------------------------------------------------------------------------
  # Utilizar un mapa de fondo?
  TB_MAP = false

  # ID del mapa
  TB_MAP_ID = 1

  # Posición del mapa(Rect#width/height(Sin ref)
  TB_MAP_POS = Rect.new(19, 28, 0, 0)

  # Para ver el frente 2 de fondo
  TB_MAP_2 = false

  #--------------------------------------------------------------------------
  # ● Marco
  #--------------------------------------------------------------------------
  # Para obtener información adicional [Fondo nuevo, Dos fondos] especificar
  # de manera individual
  #--------------------------------------------------------------------------
  # Nota: Solo ejecutar en caso de desplazo por mapa
  #--------------------------------------------------------------------------
  # Zoom de Fondo
  TB_FIT = [true, true]

  # Origen
  #  0, 5 : Centro
  #  7(Arriba-Izquierda) | 8(Arriba de) | 9(Arriba-derecha)
  #  4(Izquierda)  | 5(Centro de) | 6(Derecha)
  #  1(Abajo-Izquierda) | 2(Abajo de) | 3(Abajo-derecha)
  TB_BASE = [5, 5]

  # Movimiento de scroll
  #  true  : Hay desplazamiento
  #  false : No hay desplazamiento
  SCROLL_TG = [false, false]

  # Dirección
  #  0, 5 : Centro
  #  7(Arriba-Izquierda) | 8(Arriba de) | 9(Arriba-derecha)
  #  4(Izquierda)  | 5(Centro de) | 6(Derecha)
  #  1(Abajo-Izquierda) | 2(Abajo de) | 3(Abajo-derecha)
  SCROLL_DIR = [8, 5]

  # Velocidad de Scroll(Se mueve en unidades de 1frame)
  SCROLL_SPD = [1, 1]

  # Detener desplazamiento de la imagen
  # ※ Para proporcionar la imagen cuando es más grande que la pantalla
  #    Además de, por favor, establece TB_BASE
  SCROLL_STOP = [true, false]

end

Código:

#=========================F=====================================================
# ■ VXAce-RGSS3-17 Title Customize [main]        by Claimh
#==============================================================================

#==============================================================================
# ■ Title
#==============================================================================
module Title
  #--------------------------------------------------------------------------
  # ● Ir a los comandos: C,B,Flechas
  #--------------------------------------------------------------------------
  def self.skip_trigger?
    (Input.trigger?(:C) or Input.trigger?(:B) or Input.dir4 > 0)
  end
end


#==============================================================================
# ■ Title::Scene
# Aquí configuras como irá el juego antes del inicio.
#==============================================================================
module Title::Scene
  S_START = 0  # A partir
  S_LOGO  = 1  # Logo
  S_DEMO  = 2  # Evento de Demo
  S_TITLE = 3  # Título
  #--------------------------------------------------------------------------
  # ● Presencia o ausencia el logo
  #--------------------------------------------------------------------------
  def self.enable_logo(timeout=false)
    false
  end
  #--------------------------------------------------------------------------
  # ● Presencia o ausencia el logo
  #--------------------------------------------------------------------------
  def self.enable_demo(timeout=false)
    false
  end
end

#==============================================================================
# ■ TitleBack  : Planos del fondo
#==============================================================================
class TitleBack < Plane
  #--------------------------------------------------------------------------
  # ● Inicialización de objetos
  #--------------------------------------------------------------------------
  def initialize(b, main=false)
    @index = main ? 0 : 1
    super(Viewport.new(0, 0, Graphics.width, Graphics.height))
    self.bitmap = b
    self.viewport.z = 100
    fit_screen if Title::TB_FIT[@index]
    @stop = false
    reset_pos
    stop_pos
  end
  def bwz;  (bitmap.width * zoom_x).truncate; end # Ancho después del zoom
  def bhz;  (bitmap.height* zoom_y).truncate; end # Alto después del zoom
  def vw;  viewport.rect.width;  end
  def vh;  viewport.rect.height;  end
  #--------------------------------------------------------------------------
  # ● Elimina los objetos
  #--------------------------------------------------------------------------
  def dispose
    self.bitmap.dispose
    self.viewport.dispose
    super
  end
  #--------------------------------------------------------------------------
  # ● Encaja en pantalla
  #--------------------------------------------------------------------------
  def fit_screen
    x_zoom = vw  * 1.0 / bitmap.width
    y_zoom = vh * 1.0 / bitmap.height
    zoom = x_zoom > y_zoom ? x_zoom : y_zoom
    self.zoom_x = self.zoom_y = zoom
  end
  #--------------------------------------------------------------------------
  # ● Posición de imagenes
  #--------------------------------------------------------------------------
  def x4; 0;  end
  def x5; (bwz - vw) / 2;  end
  def x6; (bwz - vw);  end
  def y2; (bhz - vh);  end
  def y5; (bhz - vh) / 2;  end
  def y8; 0;  end
  def reset_pos
    case Title::TB_BASE[@index]
    when 1; self.ox = x4; self.oy = y2
    when 2; self.ox = x5; self.oy = y2
    when 3; self.ox = x6; self.oy = y2
    when 4; self.ox = x4; self.oy = y5
    when 6; self.ox = x6; self.oy = y5
    when 7; self.ox = x4; self.oy = y8
    when 8; self.ox = x5; self.oy = y8
    when 9; self.ox = x6; self.oy = y8
    else;  self.ox = x5; self.oy = y5
    end
  end
  #--------------------------------------------------------------------------
  # ● Punto de terminación de configuración
  #--------------------------------------------------------------------------
  def stop_pos
    case Title::TB_BASE[@index]
    when 1,4,7; @x_gap = x6
    when 3,6,9; @x_gap = x4
    else;      @x_gap = nil
    end
    case Title::TB_BASE[@index]
    when 1,2,3; @y_gap = y8
    when 7,8,9; @y_gap = y2
    else;      @y_gap = nil
    end
  end
  #--------------------------------------------------------------------------
  # ● Juicio del scroll
  #--------------------------------------------------------------------------
  def scroll?
    Title::SCROLL_TG[@index]
  end
  #--------------------------------------------------------------------------
  # ● Fin de decisión del scroll
  #--------------------------------------------------------------------------
  def scroll_stop?
    return unless Title::SCROLL_STOP[@index]
    if !@x_gap.nil?
#      p "#{self.ox}, #{@x_gap}"
      case Title::SCROLL_DIR[@index]
      when 1,4,7; x_end_stop if self.ox < @x_gap
      when 3,6,9; x_end_stop if self.ox > @x_gap
      end
    end
    if !@y_gap.nil?
#      p "#{self.oy}, #{@y_gap}"
      case Title::SCROLL_DIR[@index]
      when 1,2,3; y_end_stop if self.oy > @y_gap
      when 7,8,9; y_end_stop if self.oy < @y_gap
      end
    end
  end
  def x_end_stop
    self.ox = @x_gap
    @stop = true
  end
  def y_end_stop
    self.oy = @y_gap
    @stop = true
  end
  #--------------------------------------------------------------------------
  # ● Scroll X
  #--------------------------------------------------------------------------
  def scroll_x(n)
    self.ox = self.ox + n * Title::SCROLL_SPD[@index]
  end
  def scroll_r;  scroll_x( 1)  end
  def scroll_l;  scroll_x(-1)  end
  #--------------------------------------------------------------------------
  # ● Scroll Y
  #--------------------------------------------------------------------------
  def scroll_y(n)
    self.oy = self.oy + n * Title::SCROLL_SPD[@index]
  end
  def scroll_u;  scroll_y(-1)  end
  def scroll_d;  scroll_y( 1)  end
  #--------------------------------------------------------------------------
  # ● Update de Frames
  #--------------------------------------------------------------------------
  def update
    return unless scroll?
    return if @stop
    case Title::SCROLL_DIR[@index]
    when 1; scroll_l; scroll_d
    when 2;          scroll_d
    when 3; scroll_r; scroll_d
    when 4; scroll_l
    when 6; scroll_r
    when 7; scroll_l; scroll_u
    when 8;          scroll_u
    when 9; scroll_r; scroll_u
    end
    scroll_stop?
    self.ox %= viewport.rect.width
    self.oy %= viewport.rect.height
  end
end


#==============================================================================
# ■ Spriteset_TitleMap  : Mapa de fondo
#==============================================================================
class Spriteset_TitleMap < Spriteset_Map
  #--------------------------------------------------------------------------
  # ● Update de Frame
  #--------------------------------------------------------------------------
  def update
    super
    $game_map.update(true)
  end
end


#==============================================================================
# ■ Title::TitleName
#==============================================================================
class Title::TitleName
  #--------------------------------------------------------------------------
  # ● Inicia los objetos
  #--------------------------------------------------------------------------
  def initialize(type)
    @type = type
    @name = @file = ""
    @rect = Rect.new
    @x_align = @y_align = 0
  end
  #--------------------------------------------------------------------------
  # ● Rectangulo renderizado
  #--------------------------------------------------------------------------
  def src_rect(name, file, bitmap)
    if @type
      @name = name
      @srect = bitmap.text_size(name)
    else
      @file = file
      b = Cache.system(file)
      @srect = Rect.new(0, 0, b.width, b.height)
    end
  end
  #--------------------------------------------------------------------------
  # ● Calculación del rectangulo de título
  #--------------------------------------------------------------------------
  def calc_rect(config, half=true)
    if config.x < 0
      @rect.x += config.width
      @rect.width = Graphics.width - config.width
      @x_align = 1
    else
      @rect.x = config.x
      @rect.width = @srect.width
    end
    if config.y < 0
      @rect.y += config.height
      @rect.height = half ? Graphics.height / 2 : Graphics.height
      @y_align = 1
    else
      @rect.y = config.y
      @rect.height = @srect.height
    end
  end
  #--------------------------------------------------------------------------
  # ● Dibujando el título
  #--------------------------------------------------------------------------
  def draw_tile(bitmap)
    if @type
      bitmap.draw_text(@rect, @name, @x_align)
    else
      b = Cache.system(@file)
      @rect.x = ((@rect.width  - b.width)  / 2)  if @x_align == 1
      @rect.y = ((@rect.height - b.height) / 2)  if @y_align == 1
      bitmap.blt(@rect.x, @rect.y, b, @srect)
    end
  end
end


#==============================================================================
# ■ Sprite_TitleName  : Sprites de título
#==============================================================================
class Sprite_TitleName < Sprite
  #--------------------------------------------------------------------------
  # ● オブジェクト初期化
  #--------------------------------------------------------------------------
  def initialize(main)
    @main = main
    super(Viewport.new(0, 0, Graphics.width, Graphics.height))
    self.bitmap = Bitmap.new(Graphics.width, Graphics.height)
    self.viewport.z = 200
    main ? Title.set_main_bitmap(self.bitmap) : Title.set_sub_bitmap(self.bitmap)
  end
  #--------------------------------------------------------------------------
  # ● オブジェクト破棄
  #--------------------------------------------------------------------------
  def dispose
    self.bitmap.dispose
    self.viewport.dispose
    super
  end
  #--------------------------------------------------------------------------
  # ● タイトル描画
  #--------------------------------------------------------------------------
  def draw_title
    @main ? draw_main_title : draw_sub_title
  end
  #--------------------------------------------------------------------------
  # ● メインタイトル描画
  #--------------------------------------------------------------------------
  def draw_main_title
    title = Title::TitleName.new(Title::TM_TYPE)
    title.src_rect($data_system.game_title, Title::TM_NAME, self.bitmap)
    title.calc_rect(Title::TM_RECT)
    title.draw_tile(self.bitmap)
  end
  #--------------------------------------------------------------------------
  # ● サブタイトル描画
  #--------------------------------------------------------------------------
  def draw_sub_title
    title = Title::TitleName.new(Title::TS_TYPE)
    title.src_rect(Title::TS_NAME, Title::TS_NAME, self.bitmap)
    title.calc_rect(Title::TS_RECT)
    title.draw_tile(self.bitmap)
  end
end


#==============================================================================
# ■ Scene_Title
#------------------------------------------------------------------------------
#  タイトル画面の処理を行うクラスです。
#==============================================================================
class Scene_Title < Scene_Base
  include Title::Scene
  #--------------------------------------------------------------------------
  # ● オブジェクト初期化
  #--------------------------------------------------------------------------
  def initialize
    super
    prepare(S_START)
    @timecnt = 0
  end
  #--------------------------------------------------------------------------
  # ● 準備
  #--------------------------------------------------------------------------
  def prepare(scene=S_TITLE, timeout=false, index=-1)
    @pre_scene = scene
    @timeout  = timeout
    @index    = index
  end
  #--------------------------------------------------------------------------
  # ● トランジション実行
  #--------------------------------------------------------------------------
  def perform_transition
    Title::TITLE_TRN.nil? ? super : Graphics.transition(transition_speed, Title::TITLE_TRN)
  end
  #--------------------------------------------------------------------------
  # ● 開始前シーン制御
  #--------------------------------------------------------------------------
  def check_pre_scene
    if Title::SKIP_ALL
      return skip_start
    end
    if Title::SKIP_NEWGAME
      return skip_start unless DataManager.save_file_exists?
    end
    if Title::SKIP_CONTINUE
      return DataManager.save_file_exists? ? SceneManager.call(Scene_Load) : skip_start
    end
    if Title::Scene.enable_logo(@timeout) and @pre_scene < S_LOGO
      return call_new_scene(Scene_Logo)
    end
    if Title::Scene.enable_demo(@timeout) and @pre_scene < S_DEMO
      return call_new_scene(Scene_EvDemo)
    end
  end
  #--------------------------------------------------------------------------
  # ● 開始前シーン制御
  #--------------------------------------------------------------------------
  def call_new_scene(scene)
    SceneManager.call(scene)
    SceneManager.scene.prepare(@timeout)
    Graphics.freeze
  end
  #--------------------------------------------------------------------------
  # ● Skip New Game
  #--------------------------------------------------------------------------
  def skip_start
    DataManager.setup_new_game
    fadeout_all
    $game_map.autoplay
    SceneManager.goto(Scene_Map)
    Graphics.freeze
  end
  #--------------------------------------------------------------------------
  # ● Skip Continue
  #--------------------------------------------------------------------------
  def skip_continue
    play_title_music
    SceneManager.call(Scene_Load)
    Graphics.freeze
  end
  #--------------------------------------------------------------------------
  # ● メイン
  #--------------------------------------------------------------------------
  def main
    check_pre_scene
    return if scene_changing?
    super
  end
  #--------------------------------------------------------------------------
  # ● 開始後処理
  #--------------------------------------------------------------------------
  def post_start
    setup_fadein  if Title::FADEIN_PATTERN > 0
    super
    exec_fadein  if Title::FADEIN_PATTERN > 0
  end
  #--------------------------------------------------------------------------
  # ● フェードin処理準備
  #--------------------------------------------------------------------------
  def setup_fadein
    @text_sprites.each { |s| s.opacity = 0 }
    @command_window.open
  end
  #--------------------------------------------------------------------------
  # ● フェードin処理
  #--------------------------------------------------------------------------
  def exec_fadein
    case Title::FADEIN_PATTERN
    when 1  # メインタイトル+サブタイトル+コマンド
      Title::FADEIN_TIME.times do |i|
        @text_sprites.each { |s| s.opacity += 255/Title::FADEIN_TIME }
        @command_window.update_open
        break if update_fade
      end
    when 2  # メインタイトル+サブタイトル → コマンド
      Title::FADEIN_TIME.times do |i|
        @text_sprites.each { |s| s.opacity += 255/Title::FADEIN_TIME }
        break if update_fade
      end
      Title::FADEIN_TIME.times do |i|
        @command_window.update_open
        break if update_fade
      end
    end
    @text_sprites.each { |s| s.opacity = 255 }
    @command_window.update_open while !@command_window.open?
  end
  #--------------------------------------------------------------------------
  # ● フェードinのフレーム更新
  #--------------------------------------------------------------------------
  def update_fade
    update_background
    Graphics.update
    Input.update
    @command_window.process_cursor_move
    Title.skip_trigger?
  end
  #--------------------------------------------------------------------------
  # ● 開始処理
  #--------------------------------------------------------------------------
  alias start_title start
  def start
    start_title
    create_message_window    if Title::TB_MAP
    create_scroll_text_window if Title::TB_MAP
  end
  #--------------------------------------------------------------------------
  # ● 背景の作成 [再定義]
  #--------------------------------------------------------------------------
  def create_background
    @back_sprites = []
    if Title::TB_MAP
      DataManager.create_game_objects
      $game_map.setup(Title::TB_MAP_ID)
      $game_player.moveto(Title::TB_MAP_POS.x, Title::TB_MAP_POS.y)
      @back_sprites.push(Spriteset_TitleMap.new)
      @back_sprites[0].update
      @back_sprites.push(TitleBack.new(Cache.title2($data_system.title2_name))) if Title::TB_MAP_2
    else
      @back_sprites.push(TitleBack.new(Cache.title1($data_system.title1_name), true))
      @back_sprites.push(TitleBack.new(Cache.title2($data_system.title2_name)))
    end
    create_weather
  end
  #--------------------------------------------------------------------------
  # ● 背景のフレーム更新
  #--------------------------------------------------------------------------
  def update_background
    @back_sprites.each { |s| s.update }
    update_weather
  end
  #--------------------------------------------------------------------------
  # ● 前景の作成 [再定義]
  #--------------------------------------------------------------------------
  def create_foreground
    @text_sprites = []
    return unless $data_system.opt_draw_title
    (Title::TS ? 2 : 1).times {|i| @text_sprites.push(Sprite_TitleName.new(i==0))}
    draw_game_title
  end
  #--------------------------------------------------------------------------
  # ● ゲームタイトルの描画 [再定義]
  #--------------------------------------------------------------------------
  def draw_game_title
    @text_sprites.each { |s| s.draw_title }
  end
  #--------------------------------------------------------------------------
  # ● 背景の解放 [再定義]
  #--------------------------------------------------------------------------
  def dispose_background
    dispose_weather
    @back_sprites.each { |s| s.dispose }
  end
  #--------------------------------------------------------------------------
  # ● 前景の解放 [再定義]
  #--------------------------------------------------------------------------
  def dispose_foreground
    @text_sprites.each { |s| s.bitmap.dispose; s.dispose }
  end
  #--------------------------------------------------------------------------
  # ● メッセージウィンドウの作成
  #--------------------------------------------------------------------------
  def create_message_window
    @message_window = Window_Message.new
  end
  #--------------------------------------------------------------------------
  # ● スクロール文章ウィンドウの作成
  #--------------------------------------------------------------------------
  def create_scroll_text_window
    @scroll_text_window = Window_ScrollText.new
  end
  #--------------------------------------------------------------------------
  # ● コマンドウィンドウの作成
  #--------------------------------------------------------------------------
  alias create_command_window_title create_command_window
  def create_command_window
    create_command_window_title
    Title::CMD_BOX.select { |i| i > 2 }.each do |c|
      @command_window.set_handler(Title::EXCMD[c][2], method(:command_extra))
    end
    @command_window.select(@index) if @index >= 0
  end
  #--------------------------------------------------------------------------
  # ● コマンド[ニューゲーム]
  #--------------------------------------------------------------------------
  alias command_new_game_title command_new_game
  def command_new_game
    map_clear if Title::TB_MAP
    command_new_game_title
  end
  #--------------------------------------------------------------------------
  # ● コマンド[拡張コマンド]
  #--------------------------------------------------------------------------
  def command_extra
    close_command_window
    map_clear if Title::TB_MAP
    SceneManager.call(Title::EXCMD[@command_window.cmd_no][1])
  end
  #--------------------------------------------------------------------------
  # ● 天候スプライトの作成
  #--------------------------------------------------------------------------
  def create_weather
    @w_viewport = Viewport.new(0,0,Graphics.width,Graphics.height)
    @w_viewport.z = 100
    @weather = Spriteset_Weather.new(@w_viewport)
    @weather.type  = Title::WEATHER_TYPE
    @weather.power = Title::WEATHER_POWER
    @weather.update
  end
  #--------------------------------------------------------------------------
  # ● 天候スプライトの解放
  #--------------------------------------------------------------------------
  def dispose_weather
    @w_viewport.dispose
    @weather.dispose
  end
  #--------------------------------------------------------------------------
  # ● 天候スプライトのフレーム更新
  #--------------------------------------------------------------------------
  def update_weather
    @weather.update
  end
  #--------------------------------------------------------------------------
  # ● タイトル画面の音楽演奏
  #--------------------------------------------------------------------------
  alias play_title_music_title play_title_music
  def play_title_music
    play_title_music_title
    Title::BGS.play unless Title::BGS.nil?
  end
  #--------------------------------------------------------------------------
  # ● マップ表示のクリア(マップ使用時はfreezeして、画面をクリアする)
  #--------------------------------------------------------------------------
  def map_clear
    Graphics.freeze
    $game_map.screen.clear
  end
  #--------------------------------------------------------------------------
  # ● フレーム更新
  #--------------------------------------------------------------------------
  def update
    super
    update_background
    update_timeout
  end
  #--------------------------------------------------------------------------
  # ● タイムアウト
  #--------------------------------------------------------------------------
  def update_timeout
    @timecnt += 1
    if @timecnt >= Title::TIME_OUT_CNT
      map_clear if Title::TB_MAP
      fadeout_all
      SceneManager.goto(Scene_Title)
      SceneManager.scene.prepare(Title::Scene::S_START, true)
    end
  end
end


#==============================================================================
# ■ Window_TitleCommand
#------------------------------------------------------------------------------
#  タイトル画面で、ニューゲーム/コンティニューを選択するウィンドウです。
#==============================================================================
class Window_TitleCommand < Window_Command
  #--------------------------------------------------------------------------
  # ● オブジェクト初期化
  #--------------------------------------------------------------------------
  alias initialize_title initialize
  def initialize
    @slot_n = 0
    @slot_chg = false
    @cmds = enable_cmd_list
    initialize_title
    Title.cmd_window_opacity(self)
    Title.set_cmd_bitmap(self.contents)
  end
  #--------------------------------------------------------------------------
  # ● 行の高さを取得
  #--------------------------------------------------------------------------
  def line_height
    Title::CMD_TYPE ? Title::CMD_RECT.height : Cache.system(Title::CMD_GRPHIC[0][0]).height
  end
  #--------------------------------------------------------------------------
  # ● ウィンドウ内容の作成
  #--------------------------------------------------------------------------
  def create_contents
    super
    Title.set_cmd_bitmap(self.contents)
  end
  #--------------------------------------------------------------------------
  # ● カーソルの移動処理
  #--------------------------------------------------------------------------
  def process_cursor_move
    return unless cursor_movable?
    @slot_chg = false
    super
    Sound.play_cursor if @slot_chg
  end
  #--------------------------------------------------------------------------
  # ● アライメントの取得
  #--------------------------------------------------------------------------
  def alignment
    Title::CT_ALIGN
  end
  #--------------------------------------------------------------------------
  # ● コマンド番号取得
  #--------------------------------------------------------------------------
  def command_no(index)
    @list[index][:ext]
  end
  def cmd_no
    @list[@index][:ext]
  end
  #--------------------------------------------------------------------------
  # ● テキスト幅
  #--------------------------------------------------------------------------
  def cmd_width_max(add_w=0)
    sizes = []
    item_max.times{ |i| sizes.push(cmd_text_w(i) + (i * add_w)) }
    return sizes.max + 8
  end
  #--------------------------------------------------------------------------
  # ● ウィンドウ幅の取得
  #--------------------------------------------------------------------------
  def window_width
    [160, cmd_width_max(Title::CMD_RECT.width) + standard_padding * 2].max
  end
  #--------------------------------------------------------------------------
  # ● 項目を描画する矩形の取得
  #--------------------------------------------------------------------------
  def align_x(index, x=0)
    if Title::CMD_TYPE
      case alignment
      when 0; #non
      when 1; return (cmd_width_max + x - cmd_text_w(command_no(index))) / 2
      when 2; return cmd_width_max + x - cmd_text_w(command_no(index))
      end
    end
    return 0
  end
  #--------------------------------------------------------------------------
  # ● 項目を描画する矩形の取得
  #--------------------------------------------------------------------------
  def item_rect(index)
    rect = super(index)
    rect.x += index * Title::CMD_RECT.width
    if Title::CT_CUR_FIT
      rect.x += align_x(index, -8)
      rect.width = cmd_text_w(command_no(index)) + 8
    end
    rect
  end
  #--------------------------------------------------------------------------
  # ● 項目を描画する矩形の取得(テキスト用)
  #--------------------------------------------------------------------------
  def item_rect_for_text(index)
    rect = super(index)
    if Title::CT_CUR_FIT
      rect.x -= align_x(index, 8)
      rect.width = cmd_width_max + 8
    end
    rect
  end
  #--------------------------------------------------------------------------
  # ● ウィンドウ位置の更新
  #--------------------------------------------------------------------------
  def update_placement
    self.x = Title::CMD_RECT.x < 0 ? (Graphics.width - width) / 2 : Title::CMD_RECT.x
    self.y = Title::CMD_RECT.y < 0 ? (Graphics.height * 1.6 - height) / 2 : Title::CMD_RECT.y
  end
  #--------------------------------------------------------------------------
  # ● 表示対象のコマンドリスト
  #--------------------------------------------------------------------------
  def enable_cmd_list
    Title::CMD_BOX.uniq.select { |c| Title.excmd_enable?(c) }
  end
  def cmd_list
    slot_shift
  end
  #--------------------------------------------------------------------------
  # ● コマンドごとのテキスト幅
  #--------------------------------------------------------------------------
  def cmd_text_w(index)
    if Title::CMD_TYPE
      if disposed?
        b = Title.set_cmd_bitmap(Bitmap.new(1,1))
        w = b.text_size(command_name(index)).width
        b.dispose
      else
        w = contents.text_size(command_name(index)).width
      end
    else
      w = Cache.system(Title::CMD_GRPHIC[command_no(index)][0]).width
    end
    return w
  end
  #--------------------------------------------------------------------------
  # ● コマンドリストの作成
  #--------------------------------------------------------------------------
  def make_command_list
    cmd_list.each do |c|
      case c
      when 0; add_command(Vocab::new_game, :new_game, true, c)
      when 1; add_command(Vocab::continue, :continue, continue_enabled, c)
      when 2; add_command(Vocab::shutdown, :shutdown, true, c)
      else;  add_command(Title::EXCMD[c][0], Title::EXCMD[c][2], true, c)
      end
    end
  end
  #--------------------------------------------------------------------------
  # ● スロット式の固定Index
  #--------------------------------------------------------------------------
  def slot_i
    ((@cmds.size-1)/2).truncate
  end
  #--------------------------------------------------------------------------
  # ● カーソル位置の設定
  #--------------------------------------------------------------------------
  def index=(index)
    if Title::CMD_SLOT
      @slot_n = (slot_i - index) % item_max
      @slot_chg = @slot_n != 0
      super(slot_i)
      refresh
    else
      super(index)
    end
  end
  #--------------------------------------------------------------------------
  # ● 項目の選択
  #--------------------------------------------------------------------------
  def select(index)
    old_index = @index
    super(index)
    if !Title::CMD_SLOT and Title::CMD_CHNG
      redraw_item(old_index)
      redraw_item(index)
    end
  end
  #--------------------------------------------------------------------------
  # ● スロットシフト
  #--------------------------------------------------------------------------
  def slot_shift
    if Title::CMD_SLOT
      @slot_n.abs.times do |i|
        @cmds.unshift(@cmds.pop) if @slot_n > 0
        @cmds.push(@cmds.shift)  if @slot_n < 0
      end
    end
    @cmds
  end
  #--------------------------------------------------------------------------
  # ● スロット表示時の不透明化
  #--------------------------------------------------------------------------
  def slot_alpha(index)
    return 0 if Title::CMD_SLOT_ALL
    (@index-index).abs < 2 ? 0 : 255
  end
  #--------------------------------------------------------------------------
  # ● 項目の描画
  #--------------------------------------------------------------------------
  def draw_item(index)
    Title::CMD_TYPE ? draw_item_text(index) : draw_cmd(index)
  end
  #--------------------------------------------------------------------------
  # ● 項目の描画
  #--------------------------------------------------------------------------
  def draw_item_text(index)
    change_color(normal_color, command_enabled?(index))
    contents.font.color.alpha -= slot_alpha(index) if Title::CMD_SLOT
    draw_text(item_rect_for_text(index), command_name(index), alignment)
  end
  #--------------------------------------------------------------------------
  # ● 画像描画
  #--------------------------------------------------------------------------
  def draw_cmd(index)
    g = Title::CMD_GRPHIC[command_no(index)]
    b = Cache.system((Title::CMD_CHNG and index != @index) ? g[1] : g[0])
    rect = item_rect_for_text(index)
    opacity = command_enabled?(index) ? 255 : translucent_alpha
    opacity -= slot_alpha(index) if Title::CMD_SLOT
    contents.blt(rect.x, rect.y, b, Rect.new(0,0,b.width,b.height), opacity)
  end
  #--------------------------------------------------------------------------
  # ● カーソルの更新
  #--------------------------------------------------------------------------
  def update_cursor
    Title::DISABLE_CURSOR ? cursor_rect.empty : super
  end
end

Si quieres poner el logo...
Código:

#==============================================================================
# ■ VXAce-RGSS3-17 Logo de título [Logo]        by Claimh
#------------------------------------------------------------------------------
# Muestra un logo antes de la escena de título
#------------------------------------------------------------------------------
# ●Sección
#  Por favor arregla para personalizar bajo el título
#------------------------------------------------------------------------------
# ●Operación
# Si presionas un botón podrás adelantar el logo, si es un vídeo por otra parte, es imposible
#==============================================================================

module Title::LOGO
  # ME
  LOGO_ME = RPG::ME.new("Item")

  # Transición(nil = Sin gráficos)
  LOGO_TRN = "Graphics/System/011-Random03"

  # Logotipo
  #  0..Imagen
  #  1..Texto
  #  2..Vídeo ogv
  LOGO_TYPE = 0

  # Nombre del logo
  #  Si es imagen : Graphics/System/
  #  Si es vídeo : Movies/
  LOGO = "Logo"
 
  # Posición(Rect#width,heightは未参照)
  #  Rect#x  : -1を指定すると中央
  #  Rect#y  : -1を指定すると中央
  # (注)動画再生は常に中央表示になります
  L_RECT = Rect.new(-1, -1, 0, 0)
 
  # フォント設定
  def self.logo_font(bitmap)
    bitmap.font.size = 48
    bitmap
  end
 
  # ロゴ表示時間(フレーム数)
  # (注)動画再生では無効(動画終端まで再生されます)
  L_TIME = 90
 
  # タイムアウト発生時にもロゴ表示する
  L_TOUT = false
end


#==============================================================================
# ■ Title::Scene
#==============================================================================
module Title::Scene
  #--------------------------------------------------------------------------
  # ● ロゴシーンの有無
  #--------------------------------------------------------------------------
  def self.enable_logo(timeout=false)
    timeout ? Title::LOGO::L_TOUT : true
  end
end

class Scene_Logo < Scene_Base
  include Title::LOGO
  #--------------------------------------------------------------------------
  # ● オブジェクト初期化
  #--------------------------------------------------------------------------
  def initialize
    super
    prepare
  end
  #--------------------------------------------------------------------------
  # ● 準備
  #--------------------------------------------------------------------------
  def prepare(timeout=false)
    @timeout = timeout
  end
  #--------------------------------------------------------------------------
  # ● 開始処理
  #--------------------------------------------------------------------------
  def start
    super
    LOGO_ME.play unless LOGO_ME.nil?
    @time = 0
    @sprite = Sprite.new
    @sprite.bitmap = Title::LOGO.logo_font(Bitmap.new(Graphics.width, Graphics.height))
    draw_logo if LOGO_TYPE < 2
  end
  #--------------------------------------------------------------------------
  # ● トランジション実行
  #--------------------------------------------------------------------------
  def perform_transition
    LOGO_TRN.nil? ? super : Graphics.transition(transition_speed, LOGO_TRN)
  end
  #--------------------------------------------------------------------------
  # ● トランジション速度の取得
  #--------------------------------------------------------------------------
  def transition_speed
    return 20
  end
  #--------------------------------------------------------------------------
  # ● ロゴ描画
  #--------------------------------------------------------------------------
  def draw_logo
    logo = Title::TitleName.new(LOGO_TYPE==1)
    logo.src_rect(LOGO, LOGO, @sprite.bitmap)
    logo.calc_rect(L_RECT, false)
    logo.draw_tile(@sprite.bitmap)
  end
  #--------------------------------------------------------------------------
  # ● 開始後処理
  #--------------------------------------------------------------------------
  def post_start
    super
    play_movie if LOGO_TYPE == 2
  end
  #--------------------------------------------------------------------------
  # ● 動画再生
  #--------------------------------------------------------------------------
  def play_movie
    Graphics.play_movie('Movies/' + LOGO)
    return_scene
  end
  #--------------------------------------------------------------------------
  # ● 終了処理
  #--------------------------------------------------------------------------
  def terminate
    super
    @sprite.bitmap.dispose
    @sprite.dispose
  end
  #--------------------------------------------------------------------------
  # ● フレーム更新
  #--------------------------------------------------------------------------
  def update
    super
    @time += 1
    return return_scene if @time > L_TIME
    return return_scene if Title.skip_trigger?
  end
  #--------------------------------------------------------------------------
  # ● 呼び出し元のシーンへ戻る
  #--------------------------------------------------------------------------
  def return_scene
    super
    fadeout_all
    SceneManager.scene.prepare(Title::Scene::S_LOGO, @timeout)
  end
end

Contenido patrocinado


Ver el tema anterior Ver el tema siguiente Volver arriba  Mensaje [Página 1 de 1.]

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