¡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 Readable books el Jue Jul 21, 2016 8:45 am

Reputación del mensaje :100% (3 votos)

Super_SaiyanDios

avatar

READABLE BOOKS
RPG Maker XP
Me van a matar... jejejeee. pero en mi mente dije... no puedo dejar a mis amigos de U.Maker sin este script. Por ello mismo SACADO SIN PERMISO, aunque en el script no estaba aclarada las condiciones, quiero dejar bien en claro que el dueño y creador de el script es: Playm . y yo lo traduje para todos ustedes. y en lo personal, no lo he visto en ningún lado.
Bueno ya basta de líos y vamos al grano, aquí se los dejo.
Este sistema permitirá que el jugador al momento de abrir y leer un libro, lo haga de igual forma
a como si lo estuviera leyendo en la vida real, simulando mover las paginas de un lado a otro.
Como es con llamado de script te aconsejo crear libros como artículos y abrir las llamadas de una escritura con un evento común.
Eh aquí la Imagen Necesaria:
Instrucciones:
♦️ Paso 1: Necesitarán también un archivo de audio con el nombre de " bookflip" que debe estar dentro de la carpeta "SE" de tu
proyecto, o puedes descargar un audio de referencia aquí:
http://www.soundjay.com/misc/page-flip-01a.mp3
La imagen tiene que tener el nombre de "Bookback" y dentro de la Carpeta "Pictures".
♦️ Paso 2: Las Instrucciones vienen lo más detallado posible en el script.
Código:


Código:
#==============================================================================
#   Sistema lector de Libros - Script Readable Books
#------------------------------------------------------------------------------
#  Este sistema permitira que el jugador al momento de abrir y leer un
#  libro, lo haga de igual forma a como si lo estuviera leyendo en la vida
#  real, simulando mover las paginas de un lado a otro.
#  Cada pagina consistira en una imagen de 300x400 Pixeles de tamaño y deben
#  encontrarse en la siguiente ruta:
#
#  Graphics/Pictures/
#
#  Usted tambien para tener un mejor orden, puede definir las imagenes (Paginas)
#  de cada libro en diferentes carpetas, pero eso se explicará un poco despues.
#
#  Para crear un libro, en este script en la sección @books[X] = Game_Book.new
#  usted deberá crear un libro de acuerdo a las siguientes instrucciones:
#
#  @books[X] = Game_Book.new
#  @books[X].pages << "Y/Z"
#
#  En donde X usted añada el valor que usará para llamar un libro, como
#  ejemplo usaremos el número 0.
#
#  En Y usted añada el nombre de la carpeta que guardará las imagenes (paginas)
#  de el libro en cuestión, seguido de un /. Usted es libre de añadir o no está
#  carpeta extra (aunque se recomienda hacerlo) pero recuerde que debe estar
#  dentro de la carpeta Graphics/Pictures/
#
#  Finalmente en Z usted coloque el nombre de la imagen que será consideradá
#  como una pagina del libro. Obviamente usted puede añadir la cantidad de
#  imagenes (paginas) que usted desee, siempre y cuando se siga el siguiente
#  concepto: @books[X].pages << "Y/Z"
#  Ejemplo:
#  
#  @books[X] = Game_Book.new
#  @books[X].pages << "Y/Z"
#  @books[X].pages << "Y/Z"
#  @books[X].pages << "Y/Z"
#  @books[X].pages << "Y/Z"
#
#  En conclusión debería quedar algo como el siguiente ejemplo:
#
#  @books[0] = Game_Book.new
#  @books[0].pages << "Primer_libro/Pagina_1"
#  @books[0].pages << "Primer_libro/Pagina_2"
#  @books[0].pages << "Primer_libro/Pagina_3"
#  @books[0].pages << "Primer_libro/Pagina_4"
#  @books[0].pages << "Primer_libro/Pagina_5"
#  @books[0].pages << "Primer_libro/Pagina_6"
#  @books[0].pages << "Primer_libro/Pagina_7"
#  @books[0].pages << "Primer_libro/Pagina_8"
#  @books[1] = Game_Book.new
#  @books[1].pages << "Segundo_libro/Pagina_1"
#  @books[1].pages << "Segundo_libro/Pagina_2"
#
#  Teniendo en cuenta que el orden de cada pagina dependerá de el orden en el
#  cual es llamado. (arriba hacia abajo).
#
#  Para llamar un libro desde el juego usted debe de usar el siguiente llamado
#  de script:
#
#  $game_temp.book_to_read = ID_book
#  $scene = Scene_Book.new
#
#  Donde "ID_book" usted debe añadir el número del libro que usted desea llamar,
#  segun los ejemplos anteriores podriamos llamar al libro de la númeración 0.
#  Quedando finalmente el llamado de script de la siguiente forma:
#
#  $game_temp.book_to_read = 0
#  $scene = Scene_Book.new
#
#  y así estariamos llamado al libro de id 0 que contiene 8 imagenes (paginas)
#  en su interior.
#------------------------------------------------------------------------------
# Autor:  Playm
# Datum:  September 2014
# Maker:  
# Lizenz: (CC BY-NC-SA 3.0)
#==============================================================================
#    HIER BEGINNT DER KERN DES SYSTEMS
#==============================================================================
# ** Game_System
#==============================================================================
class Game_System
  #--------------------------------------------------------------------------
  # * Alias
  #--------------------------------------------------------------------------
  alias_method( :org_ini_wo_books, :initialize )
  #--------------------------------------------------------------------------
  # * Objekt Initialisation
  #--------------------------------------------------------------------------
  def initialize
    org_ini_wo_books
    # Especifica tus paginas
    @books = []
    # Aquí comienza la creación de libros (Primer Libro)
    @books[0] = Game_Book.new
    @books[0].pages << "Buch/Bookpage_1"
    @books[0].pages << "Buch/Bookpage_2"
    @books[0].pages << "Buch/Bookpage_3"
    @books[0].pages << "Buch/Bookpage_4"
    @books[0].pages << "Buch/Bookpage_5"
    @books[0].pages << "Buch/Bookpage_6"
    @books[0].pages << "Buch/Bookpage_7"
    @books[0].pages << "Buch/Bookpage_8"
    @books[0].pages << "Buch/Bookpage_9"
    @books[0].pages << "Buch/Bookpage_10"
    @books[0].pages << "Buch/Bookpage_11"
    @books[0].pages << "Buch/Bookpage_12"
    @books[0].pages << "Buch/Bookpage_13"
    @books[0].pages << "Buch/Bookpage_14"
    @books[0].pages << "Buch/Bookpage_15"
    @books[0].pages << "Buch/Bookpage_16"
    @books[0].pages << "Buch/Bookpage_17"
    @books[0].pages << "Buch/Bookpage_18"
    @books[0].pages << "Buch/Bookpage_19"
    @books[0].pages << "Buch/Bookpage_20"
    @books[0].pages << "Buch/Bookpage_21"
    @books[0].pages << "Buch/Bookpage_22"
    @books[0].pages << "Buch/Bookpage_23"
    @books[0].pages << "Buch/Bookpage_24"
    @books[0].pages << "Buch/Bookpage_25"
    @books[0].pages << "Buch/Bookpage_26"
    @books[0].pages << "Buch/Bookpage_27"
    @books[0].pages << "Buch/Bookpage_28"
    @books[0].pages << "Buch/Bookpage_29"
    @books[0].pages << "Buch/Bookpage_30"
    @books[0].pages << "Buch/Bookpage_31"
    @books[0].pages << "Buch/Bookpage_32"
    @books[0].pages << "Buch/Bookpage_33"
    @books[0].pages << "Buch/Bookpage_34"
    @books[0].pages << "Buch/Bookpage_35"
    @books[0].pages << "Buch/Bookpage_36"
    @books[0].pages << "Buch/Bookpage_37"
    @books[0].pages << "Buch/Bookpage_38"
    @books[0].pages << "Buch/Bookpage_39"
    @books[0].pages << "Buch/Bookpage_40"
    @books[0].pages << "Buch/Bookpage_41"
    @books[0].pages << "Buch/Bookpage_42"
    @books[0].pages << "Buch/Bookpage_43"
    @books[0].pages << "Buch/Bookpage_44"
    @books[0].pages << "Buch/Bookpage_45"
    @books[0].pages << "Buch/Bookpage_46"
    @books[0].pages << "Buch/Bookpage_47"
    @books[0].pages << "Buch/Bookpage_48"
    @books[0].pages << "Buch/Bookpage_49"
    @books[0].pages << "Buch/Bookpage_50"
    @books[0].pages << "Buch/Bookpage_51"
    @books[0].pages << "Buch/Bookpage_52"
    # (Segundo Libro)
    @books[1] = Game_Book.new
    @books[1].pages << "Buch2/BookPage_1"
    @books[1].pages << "Buch2/BookPage_2"
    @books[1].pages << "Buch2/BookPage_3"
    @books[1].pages << "Buch2/BookPage_4"
    @books[1].pages << "Buch2/BookPage_5"
    @books[1].pages << "Buch2/BookPage_6"
    @books[1].pages << "Buch2/BookPage_7"
    @books[1].pages << "Buch2/BookPage_8"
    @books[1].pages << "Buch2/BookPage_9"
    @books[1].pages << "Buch2/BookPage_10"
    @books[1].pages << "Buch2/BookPage_11"
    @books[1].pages << "Buch2/BookPage_12"
  end
  #--------------------------------------------------------------------------
  # * Attr
  #--------------------------------------------------------------------------
  attr_reader :books
end
#==============================================================================
# ** Game_Temp
#==============================================================================
class Game_Temp
  #--------------------------------------------------------------------------
  # * Attr
  #--------------------------------------------------------------------------
  attr_accessor :book_to_read
end
#==============================================================================
# ** Game_Book
#------------------------------------------------------------------------------
#  Speichert ein einzelnes Buch als Sammlung der Seiten, jeweils als Bildname
#==============================================================================
class Game_Book
  #--------------------------------------------------------------------------
  # * Objektinitialisierung
  #--------------------------------------------------------------------------
  def initialize
    @pages = []
  end
  #--------------------------------------------------------------------------
  # * Der letzte Index bei dem eine Seite vollständig angezeigt werden kann
  #--------------------------------------------------------------------------
  def last_index
    @pages.size - 2
  end
  #--------------------------------------------------------------------------
  # * Attr
  #--------------------------------------------------------------------------
  attr_reader :pages
end
#==============================================================================
# ** Spriteset_Book
#------------------------------------------------------------------------------
#  Stellt ein Game_Book auf dem Bildschirm da, mit der Möglichkeit zu blättern
#==============================================================================
class Spriteset_Book
  #--------------------------------------------------------------------------
  # * Initialisiert die grafische Darstellung eines aufgeschlagenen Buches
  #--------------------------------------------------------------------------
  def initialize( vp, book )
    @book = book
    @index = 0
    setup_bitmaps
    @page_width = @facing.width
    @page_height= @facing.height
    @part_width = @page_width / 50
    
    @background = Sprite.new( vp )
    @background.bitmap = RPG::Cache.picture("Bookback") # Imagen de fondo
    @background.x = 320 - @background.bitmap.width / 2
    @background.y = 240 - @background.bitmap.height / 2
    
    @canvas = Sprite.new( vp )
    @canvas.bitmap = Bitmap.new(640,480)
    
    @progress = 0
    @flipping = false
    
    refresh
  end
  #--------------------------------------------------------------------------
  # * Macht die sichtbaren Seiten verfügbar
  #--------------------------------------------------------------------------
  def setup_bitmaps
    @facing = RPG::Cache.picture(@book.pages[@index  ])
    @front  = RPG::Cache.picture(@book.pages[@index+1])
    @back   = RPG::Cache.picture(@book.pages[@index+2] || "")
    @reveal = RPG::Cache.picture(@book.pages[@index+3] || "")
  end
  #--------------------------------------------------------------------------
  # * Zeichne die linke und rechte Seite
  #--------------------------------------------------------------------------
  def draw_facing_and_reveal
    draw_y = 240 - @page_height / 2
    @canvas.bitmap.blt( 320 - @page_width, draw_y, @facing, @facing.rect)
    @canvas.bitmap.blt(               320, draw_y, @reveal, @reveal.rect)
  end
  #--------------------------------------------------------------------------
  # * Zeichne die Seite, die gerade umgeblättert wird
  #--------------------------------------------------------------------------
  def draw_flipping_page
    src_bitmap = @progress > @part_width ? @back : @front
    
    for i in 0..49
      sr = Rect.new( @part_width * i, 0, @part_width, @front.height )
      sr.x = @page_width - sr.x if @progress > @part_width
      dr = Rect.new(0,0,0,0)
      dr.x      = 320 + (@part_width - @progress) * i
      if @progress > @part_width
        dr.y      = 240 - @page_height / 2 - ( (@part_width - @progress/2) * i ) / 2
        dr.width  = @part_width - (@part_width - @progress / 2)
        dr.height = @page_height + ( (@part_width - @progress / 2) * i )
      else
        dr.y      = 240 - @page_height / 2 - ( @progress * i ) / 2
        dr.width  = @part_width - @progress
        dr.height = @page_height + ( @progress * i )
      end
      @canvas.bitmap.stretch_blt(dr, src_bitmap, sr)
    end
    
  end
  #--------------------------------------------------------------------------
  # * Zeichne das Spriteset neu
  #--------------------------------------------------------------------------
  def refresh
    @canvas.bitmap.clear
    draw_facing_and_reveal
    draw_flipping_page
  end
  #--------------------------------------------------------------------------
  # * Definir en Audio.se_play("Audio/SE/
  #   el sonido cuando se mueve la Pagina hacia la Izquierda.
  #--------------------------------------------------------------------------
  def flip_forward
    if @index < @book.last_index
      #play flipp SE
      Audio.se_play("Audio/SE/bookflip", 60, 120)
      @flipping = :forward
      @progress = 0
    end
  end
  #--------------------------------------------------------------------------
  # * Definir en Audio.se_play("Audio/SE/
  #   el sonido cuando se mueve la Pagina hacia la Derecha.
  #--------------------------------------------------------------------------
  def flip_backward
    if @index > 0
      Audio.se_play("Audio/SE/bookflip", 60, 120)
      @flipping = :backward
      @progress = @part_width * 2
      @index -= 2
      setup_bitmaps
    end
  end
  #--------------------------------------------------------------------------
  # * Prüfe die Eingabe
  #--------------------------------------------------------------------------
  def update_input
    return if @flipping
    flip_forward  if Input.trigger? Input::RIGHT
    flip_backward if Input.trigger? Input::LEFT
  end
  #--------------------------------------------------------------------------
  # * Update der Buchseitenanimation
  #--------------------------------------------------------------------------
  def update_flip_animation
    if @flipping == :forward
      @progress += 1
      if @progress == @part_width * 2
        @index += 2
        @flipping = false
        @progress = 0
        setup_bitmaps
      end
    elsif @flipping == :backward
      @progress -= 1
      if @progress == 0
        @flipping = false
        @progress = 0
      end
    end
  end
  #--------------------------------------------------------------------------
  # * Frame Update
  #--------------------------------------------------------------------------
  def update
    update_input
    refresh
    update_flip_animation
  end
  #--------------------------------------------------------------------------
  # * Entferne die Grafiken
  #--------------------------------------------------------------------------
  def dispose
    @background.dispose
    @canvas.bitmap.dispose
    @canvas.dispose
  end
end
#==============================================================================
# ** Scene_Book
#==============================================================================
class Scene_Book
  #--------------------------------------------------------------------------
  # * Speichere bei der Objektinitialisierung, aus welcher Scene man kam
  #--------------------------------------------------------------------------
  def initialize
    @scene_origin = $scene.class
  end
  #--------------------------------------------------------------------------
  # * Main Processing
  #--------------------------------------------------------------------------
  def main
    return $scene = @scene_origin.new if $game_temp.book_to_read.nil?
    @book = $game_system.books[ $game_temp.book_to_read ]
    @background = Spriteset_Map.new
    @book_sprite = Spriteset_Book.new( nil, @book)
    Graphics.transition
    loop do
      Graphics.update
      Input.update
      update
      break if $scene != self
    end
    Graphics.freeze
    @background.dispose
    @book_sprite.dispose
  end
  #--------------------------------------------------------------------------
  # * Frame Update
  #--------------------------------------------------------------------------
  def update
    if Input.trigger?(Input::B) or Input.trigger?(Input::C)
      command_return
      return
    end
    @book_sprite.update
  end
  #--------------------------------------------------------------------------
  # *  Verlasse die Scene
  #--------------------------------------------------------------------------
  def command_return
    $game_system.se_play($data_system.decision_se)
    $scene = @scene_origin.new
  end
end
Créditos:
Todos los creditos a su creador: Playm
Y Nada más que desearles suerte en la instalación, adiós y cuídense.

#2 Re: Readable books el Vie Jul 22, 2016 12:47 am

Alex_game_maker

avatar
INCREIBLE!!!!! Justo necesitaba algo así para un extra de mi juego Ópalo Contento

#3 Re: Readable books el Vie Jul 22, 2016 5:55 am

zamora021

avatar
Uyuyuyuy, se me acaban de ocurrir muchísimas ideas, como un libro de instrucciones a modo de guía o tutorial del juego, ¡o de poner cómics! sin didas lo usaré en mi proyecto (si puedo hacer que funcione en Ace Ópalo Sonrisa Grande ), muchísimas gracias por compartirlo, y lo más importante, por traducirlo. Toma un  Ópalo Reputación por este valiosísimo aporte.


¡Qué genial!  Opalo Hola

#4 Re: Readable books el Jue Ago 04, 2016 12:41 am

Ópalo

avatar

Ópalo Reputaciónpor traer aportes.
¡Sigue así  !



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.