Mundo Maker
¡Bienvenid@ a Mundo Maker!

¿Quieres aprender todo sobre el RPG Maker?



Regístrate y forma parte de Mundo Maker.

[XP][VX][VXACE]Intro Texts ^^

Ver el tema anterior Ver el tema siguiente Ir abajo

[XP][VX][VXACE]Intro Texts ^^

Mensaje por newold el 2018-03-12, 20:30

Hoy os traigo un script sencillo para hacer un tipo de intro que solo muestra texto:



El script lo podéis copiar encima del main (es compatible con todos los makers menos el MV)

Código:
# ==============================================================================
class Show_Texts
  # ----------------------------------------------------------------------------
  def initialize(text="")
    texts = text.dup
    texts.gsub!("\n", ", ")
    @texts_arr = texts.split(".")
    @velocity = 2.4 # You can change this value
    @pause_beetween_letters = 8.5 # You can change this value
    @words = []
    run_animation
  end
  # ----------------------------------------------------------------------------
  def run_animation
    # ·······························································
    b = Bitmap.new(1, 1)
    b.font.size = 30
    b.font.name = "Verdana"
    b.font.color = Color.new(245,20,22)
    # ·······························································
    texts_arr = @texts_arr
    velocity = @velocity
    angle = rand(360)
    # ·······························································
    for text in texts_arr
      text_arr = text.split(" ")
      mod_angle = rand(2)
      for word in text_arr
        # ·······························································
        if word.match(/,/)
          word.gsub!(",", "")
          pause = true
        elsif word.match(/;/)
          word.gsub!(";", "")
          pause = true
        else
          pause = false
        end
        next if word.size == 0
        if rand(20) < 5
          angle = rand(360)
        end
        if mod_angle == 0
          angle += 45
        else
          angle -= 45
        end
        size = b.text_size(word)
        s = Sprite.new
        s.bitmap = Bitmap.new(size.width+10, size.height+10)
        s.bitmap.font.size = b.font.size
        s.bitmap.font.name = b.font.name
        s.bitmap.font.color = Color.new(rand(255)+100, rand(255)+100,
        rand(255)+100)
        s.bitmap.draw_text(0, 0, s.bitmap.width, s.bitmap.height, word, 1)
        s.ox = s.bitmap.width / 2
        s.oy = s.bitmap.height / 2
        begin
          s.x = Graphics.width / 2 - s.width / 2 + s.ox
          s.y = Graphics.height / 2 - s.height / 2 + s.oy
        rescue
          s.x = 640 / 2 - s.bitmap.width / 2 + s.ox
          s.y = 480 / 2 - s.bitmap.height / 2 + s.oy
        end
        s.zoom_x = 0
        s.zoom_y = 0
        vx = velocity * Math.cos(angle)
        vy = velocity * Math.sin(angle)
        obj = {
          :current_x => s.x,
          :current_y => s.y,
          :vx => vx,
          :vy => vy,
          :word => s,
          :mod => rand(2)
        }
        @words << obj
       
        if pause == false
          n = [[word.size*@pause_beetween_letters, 100].min.to_i, 18].max
          n.times{update_words}
        else
          60.times{update_words}
        end
       
      end
      85.times{update_words}
    end
    # ·······························································
    while @words.size > 0
      update_words
    end
    # ·······························································
  end
  # ----------------------------------------------------------------------------
  def update_words()
    @words.each{|obj|
      obj[:current_x] += obj[:mod] == 2 ? obj[:vx] : -obj[:vx]
      obj[:current_y] += obj[:mod] == 2 ? obj[:vy] : -obj[:vy]
      obj[:word].x = obj[:current_x]
      obj[:word].y = obj[:current_y]
      if obj[:word].zoom_x < 1.0
        obj[:word].zoom_x = obj[:word].zoom_y = obj[:word].zoom_x + 0.05
      else
        obj[:word].opacity -= 4
        obj[:word].zoom_x = obj[:word].zoom_y = [obj[:word].zoom_x+0.07,30].min
        if obj[:word].opacity <= 0
          obj[:word].dispose
          @words.delete(obj)
        end
      end
    }
    Graphics.update
  end
  # ----------------------------------------------------------------------------
end
# ==============================================================================

La forma de usarlo es muy sencilla:

En los eventos usa el comando llamar script y pones

text = "El texto a mostrar. Admite saltos de línea, puntos (pausa larga) y comas (pausa corta)"

y después de eso

Show_Texts.new(text)

y.... MAGIC  



Podeis cambiar la velocidad con la que se muestra el texto al principio del script en estas líneas:

Código:
@velocity = 2.4 # You can change this value
    @pause_beetween_letters = 8.5 # You can change this value


Última edición por newold el 2018-03-29, 16:02, editado 1 vez
avatar
newold
Principiante
Principiante

0/3

Créditos 1276

Gracias : 137

Volver arriba Ir abajo

Re: [XP][VX][VXACE]Intro Texts ^^

Mensaje por AsFzKakarotto el 2018-03-29, 13:46

Hola neworld un gusto... pequeño detalle, me aparece un mensaje de error en RMXP supongo que:

@texts_arr = texts.split(".")

de la linea 6 de el script tiene una s de sobra en texts.split en vez de text.split por cierto se agradece un aporte más para el XP.

Se que está fuera del tema, pero he visto algunos script muy buenos que tienes. y sobre el de Tetra Master que publicaste en CP.
¿Como abres el Álbum de tarjetas? Has hecho una versión de Naruto bien completa y genial en el que si se abre un álbum de tarjetas,
Pero lamentablemente en está otra versión no he podido. según las características si lo tiene eh? XD.
Bueno, es eso... Saludos.
avatar
AsFzKakarotto
Soñador
Soñador

0/3

Créditos 320

Gracias : 70

Volver arriba Ir abajo

Re: [XP][VX][VXACE]Intro Texts ^^

Mensaje por newold el 2018-03-29, 16:17

Gracias por el aviso. Lo he revisado y corregido.

El triple triad que hice se abre el álbum de cartas haciendo esto:





1) Se crea un evento común, dentro se pone un comando llamar script con el código cardsmenu.

2) Se crea un objeto, buscas el apartado de evento común y seleccionas el que has creado. Pones que no se gaste al usarlo y ya

Cuando tienes ese item en el juego y lo usas se abre el menú de cartas.
avatar
newold
Principiante
Principiante

0/3

Créditos 1276

Gracias : 137

Volver arriba Ir abajo

Re: [XP][VX][VXACE]Intro Texts ^^

Mensaje por AsFzKakarotto el 2018-03-30, 02:08

Ok entiendo, se agradecen tus respuestas (también sobre Backups Projects), por el momento no los puedo revisar pero después pondré a prueba tus menciones. Gracias

EDIT: Ok vuelvo nuevamente... newold yo no me refería a la versión de naruto, si no que la versión 0.1 alpha de triple
triad que has publicado en CP. Pero por lo visto parece que no lo has terminado (su estructura es diferente), ahora que
lo recuerdo había descargado una DEMO. De todas formas podrías decirme si aun hay menú de tarjetas?
avatar
AsFzKakarotto
Soñador
Soñador

0/3

Créditos 320

Gracias : 70

Volver arriba Ir abajo

Re: [XP][VX][VXACE]Intro Texts ^^

Mensaje por newold el 2018-04-09, 15:49

no se k versión dices, pero de todas formas en todas las que saqué creo que el comando de script

Código:
cardsmenu

es el que abre el menu de cartas

se puede poner en un evento común que se ejecute con un item o hacer una llamada con el comando llamar script de los eventos y escribir el comando cardsmenu
avatar
newold
Principiante
Principiante

0/3

Créditos 1276

Gracias : 137

Volver arriba Ir abajo

Re: [XP][VX][VXACE]Intro Texts ^^

Mensaje por AsFzKakarotto el 2018-04-11, 03:21

Newold aquí lo dejo desde ya.

Tetra Master [XP][VX][VXA]

y si uso cardsmenu me aparece esto:



PD: Y no publico más para no desviar mucho el tema original de Show_Texts que por cierto funciona muy bien.
avatar
AsFzKakarotto
Soñador
Soñador

0/3

Créditos 320

Gracias : 70

Volver arriba Ir abajo

Re: [XP][VX][VXACE]Intro Texts ^^

Mensaje por Contenido patrocinado


Contenido patrocinado


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.