Mundo Maker
¡Bienvenid@ a Mundo Maker!

¿Quieres aprender todo sobre el RPG Maker?



Regístrate y forma parte de Mundo Maker.

[RMXP] Fijar scroll

Ver el tema anterior Ver el tema siguiente Ir abajo

[RMXP] Fijar scroll

Mensaje por Wecoc el 2014-04-05, 21:25

El script chorra del día. Permite fijar el scroll del mapa en cierto punto (es decir, que al moverse el héroe por el mapa, la pantalla no se mueva aunque el mapa sea más grande).

Para fijarlo se hace así:
$game_system.fixed_scroll = true

Para reestablecerlo así:
$game_system.fixed_scroll = false
true


El script es el siguiente, pegad encima de main:

Código:
class Game_System
  attr_accessor :fixed_scroll
  alias fixed_scroll_ini initialize unless $@
  def initialize
    fixed_scroll_ini
    @fixed_scroll = false
  end
end

class Game_Map
  unless $@
    alias fixed_scroll_down scroll_down
    alias fixed_scroll_left scroll_left
    alias fixed_scroll_right scroll_right
    alias fixed_scroll_up scroll_up
  end
 
  def scroll_down(distance)
    fixed_scroll_down(distance) unless $game_system.fixed_scroll
  end
  def scroll_left(distance)
    fixed_scroll_left(distance) unless $game_system.fixed_scroll
  end
  def scroll_right(distance)
    fixed_scroll_right(distance) unless $game_system.fixed_scroll
  end
  def scroll_up(distance)
    fixed_scroll_up(distance) unless $game_system.fixed_scroll
  end
end


Además en el mismo código debajo podéis añadir ésto si queréis:

Código:
class Game_Map
  def in_screen?(x, y)
    min_x = @display_x / (4 * 32)
    min_y = @display_y / (4 * 32)
    max_x = min_x + 20
    max_y = min_y + 15
    return (x >= min_x and x < max_x and y >= min_y and y < max_y)
  end
end

class Game_Player < Game_Character
  def passable?(x, y, d)
    new_x = x + (d == 6 ? 1 : d == 4 ? -1 : 0)
    new_y = y + (d == 2 ? 1 : d == 8 ? -1 : 0)
    unless $game_map.in_screen?(new_x, new_y)
      return false
    end
    unless $game_map.valid?(new_x, new_y)
      return false
    end
    if $DEBUG and Input.press?(Input::CTRL)
      return true
    end
    super
  end
end


Ese último apaño arregla la pasabilidad de modo que si el scroll está fijado a parte de no moverse la pantalla el personaje no podrá ir más allá de los márgenes actuales.

No pido créditos si lo usáis ya que es muy básico.

PD.- Se me ha dado por hacer scripts de éste tipo, espero que no os moleste xD
PD2.- Quizá ya exista algún script de éste tipo (es probable) pero como no dí con ninguno, decidí hacerlo por mi cuenta.
PD3.- Selemat Pagi!


Última edición por Wecoc el 2014-04-08, 14:54, editado 1 vez
avatar
Wecoc
Administrador
Administrador



Créditos 12314

Gracias : 655

Volver arriba Ir abajo

Re: [RMXP] Fijar scroll

Mensaje por raizin el 2014-04-05, 22:06

¿Cómo es eso?
¿La cámara captura a todo el mapa, pero se verá con mala calidad en mapas grandes?
No entendí bien > _ <

raizin
Soñador
Soñador

0/3

Créditos 200

Gracias : 11

Volver arriba Ir abajo

Re: [RMXP] Fijar scroll

Mensaje por silvanash el 2014-04-05, 22:23

Cuando el mapa mide lo mismo que la pantalla (en RMXP viene a ser 20x15 tiles, o 640x480 pixels), la cámara no se mueve de su sitio cuando el personaje camina.

Sin embargo, en mapas más grandes que la pantalla, la cámara sigue al personaje hasta que el mapa vuelve a tener uno de sus bordes en el límite de la pantalla. El script fija la cámara en un sitio, de forma que el personaje puede caminar y quedarse fuera de la pantalla.

Por mi parte no le veo la utilidad, excepto para montar escenas en las que el personaje abandone la pantalla y sea necesario conservar la cámara en ese punto del mapa. Aunque, en esos casos, lo que hago es usar un evento con el chara del personaje y ponerle el chara del evento que seguirá dentro de la cámara al personaje. Se consigue el mismo efecto y no tienes que tirar de script.
avatar
silvanash
Aventurero
Aventurero

0/3

Créditos 201

Gracias : 251

Volver arriba Ir abajo

Re: [RMXP] Fijar scroll

Mensaje por Ledai el 2014-04-05, 22:55

OHH!! Wecoc; magnifico trabajo... me lo guardo ^_^
avatar
Ledai
Aventurero
Aventurero

0/3

Créditos 5217

Gracias : 217

Volver arriba Ir abajo

Re: [RMXP] Fijar scroll

Mensaje por faBordolino el 2014-04-06, 09:04

me sumo a la duda de silva, en que casos seria util y mas eficiente que otros pequeños trucos que logran el mismo efecto? Supongo que si lo hizo wecoc debe existir un caso no contemplado para el cual sea la solucion.
avatar
faBordolino
Novato
Novato

0/3

Créditos 81

Gracias : 3

Volver arriba Ir abajo

Re: [RMXP] Fijar scroll

Mensaje por Wecoc el 2014-04-06, 13:04

Lo había pensado para batallas en mapa en las que te encuentras un enemigo y puedes luchar contra él moviéndote por el mapa tipo XAS pero sin irte a la quinta hostia cobardemente. Durante la batalla se fijaría el scroll y al terminar volvería a desfijarse.

Igualmente podría servir para escenas tipo las que describe Silva. No sé si habréis probado un UMS llamado Hermes (iba a decir Herpes xD), hay una situación en la que dos NPCs hablan entre ellos y el personaje va "por libre" (es decir, puede moverse mientras pasa la escena en la que al final un NPC acaba matando al otro por ser un pederasta, y tira su cuerpo al río). Podrías fijar el scroll para que el personaje se moviera como quisieras mientras pasa todo eso pero sin irse y perderse la escena por completo (es decir, la diferencia entre el método de silva y éste es que con éste si quisieras podrías dejar que el personaje se moviera)

Por último se puede usar para sustituir el método de silva y punto. Ambos métodos son sencillos pero éste requiere un evento menos y algunos comandos menos. Además no es un script extenso, no puede dar lag, ni es incompatible con casi nada, así tenerlo de más no molesta xD

Ah... Y quizá también para un mapa grande en el que avanzas por partes tipo mapamundi o algo, porque combinando esto con el Mover Scroll quizá se pueda hacer algo curioso... Ahí ya no me meto xD
avatar
Wecoc
Administrador
Administrador



Créditos 12314

Gracias : 655

Volver arriba Ir abajo

Re: [RMXP] Fijar scroll

Mensaje por orochii el 2014-04-06, 16:09

Escenas. Eso es la utilidad. Es mucho más sencillo fijar la pantalla que cambiar de chara, y aparte el chara depende del gráfico que tenga. Si tienes un sistemilla para cambiarle apariencia al prota, o para ordenar al grupo, o incluso si usan trenes de charas, cambiar el jugador por un evento extra no funcionará.

Pero como quien dice, depende del caso de cada quien.
avatar
orochii
Reportero

0/3

Créditos 7343

Gracias : 477

Volver arriba Ir abajo

Re: [RMXP] Fijar scroll

Mensaje por Ledai el 2014-04-06, 23:57

Wecoc, al usar el comando para desfijar el scrool se me bloquea el juego al usarlo en paralelo @~@ ¿Es normal?


Edt; y también me bloquea el paso de ciertos procesos en los eventos, por ejemplo si lo coloco antes de cierto comando (un mostrar mensaje por ejemplo) se me paraliza el proceso del evento que está ejecutándose tal y como si usara un parar proceso de evento...
avatar
Ledai
Aventurero
Aventurero

0/3

Créditos 5217

Gracias : 217

Volver arriba Ir abajo

Re: [RMXP] Fijar scroll

Mensaje por Eron el 2014-04-07, 09:29

Yo puedo explicar ésto. Es totalmente normal y no es un bug de Wecoc sino del RPG maker y pasa con montones de scripts )=

Cuando el maker hace eval de una llamada de script, éste eval vale lo que devuelve esa llamada. Y si esa llamada vale "false" (que es el caso típico de desactivar algo) pues se jode todo.

Hay dos maneras de solucionar eso. Una es hacer que el eval no valga false.

Creo que con poner ésto valdría, ya que desactiva lo que interesa pero el eval valdrá true:
Código:
$game_system.fixed_scroll = false
true


La otra y más común es usar un Bugfix de ese error.

http://forum.chaos-project.com/index.php/topic,938.0.html

Espero haber ayudado =D
avatar
Eron
Principiante
Principiante

0/3

Créditos 3599

Gracias : 60

Volver arriba Ir abajo

Re: [RMXP] Fijar scroll

Mensaje por Ledai el 2014-04-07, 18:15

Gracias, con tu ayuda ya sí que se arregló sin problemas ^_^

Debería de editarse el Post principal...
avatar
Ledai
Aventurero
Aventurero

0/3

Créditos 5217

Gracias : 217

Volver arriba Ir abajo

Re: [RMXP] Fijar scroll

Mensaje por Ledai el 2014-04-07, 22:32

Perdón el doble post; pero advierto de otro bugg


El script no permite que los eventos entren en escena; cosa que estropea algunos "vídeos" y cosas por el estilo; es decir; bloquea el paso de los eventos que tienen una ruta programada desde fuera de escena hasta entrar en ella, como un muro.

¿Tiene solución? por que si no, tendré que prescindir de ello.
avatar
Ledai
Aventurero
Aventurero

0/3

Créditos 5217

Gracias : 217

Volver arriba Ir abajo

Re: [RMXP] Fijar scroll

Mensaje por orochii el 2014-04-07, 23:42

¿Usas algún antilag? Porque este script creo no debería ser el problema.

.-.
avatar
orochii
Reportero

0/3

Créditos 7343

Gracias : 477

Volver arriba Ir abajo

Re: [RMXP] Fijar scroll

Mensaje por Ledai el 2014-04-08, 00:32

No, no uso eso por ahora; quité este script y dejó de darme el problema, así que debe de ser este...
avatar
Ledai
Aventurero
Aventurero

0/3

Créditos 5217

Gracias : 217

Volver arriba Ir abajo

Re: [RMXP] Fijar scroll

Mensaje por Eron el 2014-04-08, 10:43

Yo puedo explicar ésto. El pequeño añadido de pasabilidad que hace que el héroe no pueda salir de los bordes, también afecta a los eventos y por eso no pueden entrar ni salir del recuadro )=

Habría que cambiar ese script para que ese añadido de pasabilidad afecte restrictivamente a Game_Player y no a Game_Event. A ver si Wecoc lo hace, si no lo miraré yo, creo que es sencillito aunque implica rehacer esa parte de 0 x'D
avatar
Eron
Principiante
Principiante

0/3

Créditos 3599

Gracias : 60

Volver arriba Ir abajo

Re: [RMXP] Fijar scroll

Mensaje por Wecoc el 2014-04-08, 14:54

Vaya por Dios, se ha liado la marimorena en un momento con éste script.

Leda: Sí, ese error pasa con muchísimos scripts, uno ya lo tiene asimilado por eso ni dije nada xD Ya te dijeron cómo solucionarlo, de hecho no es necesario ni pegar el script encima de main sinó que en realidad es una sustitución del método Interpreter que se podría poner directamente (y yo recomendaría poner siempre ya de por sí)


Leda: Ya arreglé eso, ahora solo sirve para el Player.


Última edición por Wecoc el 2014-04-09, 21:28, editado 1 vez
avatar
Wecoc
Administrador
Administrador



Créditos 12314

Gracias : 655

Volver arriba Ir abajo

Re: [RMXP] Fijar scroll

Mensaje por Ledai el 2014-04-08, 16:52

Siento informar de las incongruencias, pero un trabajo bien hecho, bien parece ¿no? ^_^

Gracias; Wecoc, por ahora todo bien.
avatar
Ledai
Aventurero
Aventurero

0/3

Créditos 5217

Gracias : 217

Volver arriba Ir abajo

Re: [RMXP] Fijar scroll

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.