Mundo Maker
¡Bienvenid@ a Mundo Maker!

¿Quieres aprender todo sobre el RPG Maker?



Regístrate y forma parte de Mundo Maker.

[XP] Resolution Factor Fix

Ver el tema anterior Ver el tema siguiente Ir abajo

RPG Maker XP [XP] Resolution Factor Fix

Mensaje por Wecoc el 2015-10-11, 04:09

Hice un script que hace que al moverse un evento, el panorama, la fog, las pictures, etc. sus coordenadas de pantalla no se muevan de 1 en 1 sinó usando un factor.
Está pensado para el caso en el que aún usando XP se estén utilizando gráficos propios del 2k/3 o de un estilo retro, pero escalados a la plantilla de 32x32.

En general es un script simple pero tiene un bug que lo complica.

Las fogs tienen un movimiento bastante más complejo que los panoramas y otros, porque a parte del ox y oy (dependiendo del display) hay un sx y sy, que son el movimiento en sí, pero va definido en Game_Map en vez de en Spriteset_Map.
Eso hace que en realidad las coordenadas de pantalla sean una suma de ámbos factores, por lo que dependiendo de en qué posición estés del mapa (tiles pares o impares) la x y la y quedan descompasadas.

Usad el script que posteó Orochii

Spoiler:

Código:
#==============================================================================
# ** Resolution Factor Fix
#==============================================================================

module Res
  FACTOR = 2
end

class Game_Character
  alias real_screen_x screen_x unless $@
  def screen_x
    return (real_screen_x.to_f / Res::FACTOR).floor * Res::FACTOR
  end

  alias real_screen_y screen_y unless $@
  def screen_y
    return (real_screen_y.to_f / Res::FACTOR).floor * Res::FACTOR
  end
end

class Spriteset_Map
  alias res_fix_upd update unless $@
  def update
    res_fix_upd
    @tilemap.ox =   (@tilemap.ox / Res::FACTOR).floor * Res::FACTOR
    @tilemap.oy =   (@tilemap.oy / Res::FACTOR).floor * Res::FACTOR
    @panorama.ox =  (@panorama.ox / Res::FACTOR).floor * Res::FACTOR
    @panorama.oy =  (@panorama.oy / Res::FACTOR).floor * Res::FACTOR
    @fog.ox =       (@fog.ox / Res::FACTOR).floor * Res::FACTOR       # BUG!
    @fog.oy =       (@fog.oy / Res::FACTOR).floor * Res::FACTOR       # BUG!
    @weather.ox =   (@weather.ox / Res::FACTOR).floor * Res::FACTOR
    @weather.oy =   (@weather.oy / Res::FACTOR).floor * Res::FACTOR
    @viewport1.ox = (@viewport1.ox / Res::FACTOR).floor * Res::FACTOR
  end
end

class Sprite_Picture < Sprite
  alias res_fix_upd update unless $@
  def update
    res_fix_upd
    self.x = (@picture.x / Res::FACTOR).floor * Res::FACTOR
    self.y = (@picture.y / Res::FACTOR).floor * Res::FACTOR
  end
end

A parte de eso no he detectado ningún otro bug, pero hay otras cosas que deberían regularse con el factor de resolución y el script no las soporta.

- El dibujado y movimiento de los sprites de Weather
- Las fonts

Si alguien quiere animarse a arreglar eso que lo haga sin temor.


Última edición por Wecoc el 2015-10-11, 13:53, editado 1 vez
avatar
Wecoc
Administrador
Administrador



Créditos 12282

Gracias : 645

Volver arriba Ir abajo

RPG Maker XP Re: [XP] Resolution Factor Fix

Mensaje por orochii el 2015-10-11, 05:35

Hice esto que creo que hace algo como lo que quieres pero globalmente, para todo lo que sean sprites xD. Es que alguna vez pensé en hacerlo para mi Dreki, porque lo había pensado. Y me molesta xD. Pero como me molesta más que el texto tenga antialias lo había dejado olvidado xD (a veces me entran ganas de usar el script de SFonts de Victor Sant, pero es que, ostras, no sé qué tan compatible son las SFonts con lenguajes que no sean inglés :V).

Código:
class Sprite
  FACTOR = 32
  
  alias test_initialize initialize
  def initialize(viewport=nil)
    test_initialize(viewport)
    @fake_x = @fake_y = 0
  end
  
  alias orig_x= x=
  alias orig_y= y=
  
  def x=(n)
    #self.x = n
    @fake_x=n
  end
  def y=(n)
    #self.y = n
    @fake_y=n
  end
  
  alias test_update update
  def update
    self.orig_x = @fake_x - (@fake_x%FACTOR)
    self.orig_y = @fake_y - (@fake_y%FACTOR)
    test_update
  end
end

En buena teoría se podría hacer lo mismo para Plane, y Window creo no es necesario total ya usa Sprites xd.

He puesto factor 32 para probarlo, y me recuerda a los juegos viejos xDDDD.
avatar
orochii
Reportero

0/3

Créditos 7791

Gracias : 461

Volver arriba Ir abajo

RPG Maker XP Re: [XP] Resolution Factor Fix

Mensaje por Wecoc el 2015-10-11, 13:51

@orochii escribió:Pero como me molesta más que el texto tenga antialias lo había dejado olvidado xD (a veces me entran ganas de usar el script de SFonts de Victor Sant, pero es que, ostras, no sé qué tan compatible son las SFonts con lenguajes que no sean inglés *icono de comecocos*).

¿Probaste el KGC_BitmapExtension? Tiene tres modos distintos de draw_text y cada uno se puede definir como modo por defecto.

- draw_text (default)
- draw_text_na (sin antialias)
- draw_text_fast (mola pero creo que da lag)

Gracias por el script, está mejor que el mío.
avatar
Wecoc
Administrador
Administrador



Créditos 12282

Gracias : 645

Volver arriba Ir abajo

RPG Maker XP Re: [XP] Resolution Factor Fix

Mensaje por orochii el 2015-10-11, 21:44

Me gusta el BitmapExtension ese *v*, ya lo puse y se ve mucho mejor. Sí cambia un poco el tamaño de los textos, pero ya se ven más pixel, como deberían.

Aquí una screen. Mucho mejor. Lo siento un poco enorme, pero es el tamaño que debía tener en un principio. Así que si hago algún cambio, será en la fuente en sí.
Spoiler:
Hay otras cosas que creo me gustará incorporar, como el skew de bitmaps, que me dan ganas de usar en lugar de mi efecto de desaparición de enemigos actual, porque ese efecto es absurdamente lento o.o ya que son puros fill_rect... (width*height / 4 fill_rect totales).

Ahora que hice unas pruebas acá y allá con mi Dreki, y por alguna razón los sprites no parecían posicionarse adecuadamente, probé a hacer alguna modificación y... no me sirve :'D. Entonces por el momento mi tésis es que no sirve con el RGSS3
Salut!
avatar
orochii
Reportero

0/3

Créditos 7791

Gracias : 461

Volver arriba Ir abajo

RPG Maker XP Re: [XP] Resolution Factor Fix

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.