Mundo Maker
¡Bienvenid@ a Mundo Maker!

¿Quieres aprender todo sobre el RPG Maker?



Regístrate y forma parte de Mundo Maker.
Conectarse

Recuperar mi contraseña

Temas importantes
----------------------------------------
Páginas con recursos RPG Maker
----------------------------------------
----------------------------------------
----------------------------------------
----------------------------------------
----------------------------------------
----------------------------------------
----------------------------------------
----------------------------------------
----------------------------------------
Afiliados
Estadísticas
Tenemos 3768 miembros registrados.
El último usuario registrado es lMac.

Nuestros miembros han publicado un total de 85827 mensajes en 12223 argumentos.

[RMVX] Charas con mas frames.

Ver el tema anterior Ver el tema siguiente Ir abajo

[RMVX] Charas con mas frames.

Mensaje por Shurshok el 2009-02-28, 00:45

Descripción

Como ya saben, los charas del RMVX tienen menos posiciones por animación que los charas del RMXP. Como resultado, se supone que la imagen ira algo mas brusca. Bien, para poder usar charas con la cantidad de posiciones que quieras (y obtener resultados mas suaves) se hizo este script, permitiendo incluso usar charas del RMXP en el RMVX.

Disfrutadlo

Créditos

Creador: Modern Algebra.

Traductor: Feragur

Optimizador: Shurshok

Script

Spoiler:
Código:
#==============================================================================

  #  Extra Movement Frames v. 1.0

  #  Autor: modern algebra (rmrk.net)

  #  Traductor: Feragur

  #  Optimización: Shurshok

  #  Fecha: 20 de Enero de 2008

  #------------------------------------------------------------------------------

  #  Instrucciones:

  #    Coloca este script sobre Main en el Editor.Para a�adir un chara con

  #    frames extra, simplemente cámbiale el nombre de la imagen a algo

  #    de este estilo:

  #          !$%[<número de frames>]<Nombre Normal>

  #

  #    Ejemplo: !$%[4]001-Fighter01

  #    Eso hará que el gráfico 001-Fighter01 tenga 4 frames.

  #------------------------------------------------------------------------------

  # ** Game_Character

  #------------------------------------------------------------------------------

  #  Resumen de cambios:

  #    aliased methods - update_animation

  #    new class variables - height divisor, width divisor

  #    new methods - calculate_divisors

  #==============================================================================

class Game_Character

#--------------------------------------------------------------------------

# * Public Instance Variables

#--------------------------------------------------------------------------

attr_reader :height_divisor # The height of a single frame

attr_reader :width_divisor # number of frames in the x direction

#--------------------------------------------------------------------------

# * Calculate Divisors

#--------------------------------------------------------------------------

# Sets up the instance variables required

#--------------------------------------------------------------------------

def calculate_divisors

return unless @previous_character.nil? || @previous_character != @character_name

bitmap = Cache.character (@character_name)

sign = @character_name[/^[!$].[%][d*]/]

if !sign.nil? && sign.size > 5

@original_pattern = 0

@width_divisor = sign[4, sign.size - 5].to_i

@height_divisor = 4

elsif !sign.nil? && sign.include? ('$')

@width_divisor = 3

@height_divisor = 4

else

@width_divisor = 12

@height_divisor = 8

end

@previous_character = @character_name

end

#--------------------------------------------------------------------------

# * Update Animation

#--------------------------------------------------------------------------

# Change the hard coded values to ones dependent on character graphic format

#--------------------------------------------------------------------------

alias ma_extra_movement_frames_anim_upd update_animation

def update_animation

saved_anime_count = @anime_count

pattern_original = @pattern

speed = @move_speed + (dash? ? 1 : 0)

ma_extra_movement_frames_anim_upd

if (saved_anime_count > (18 - speed * 2)) && (@step_anime || (@stop_count <= 0))

@pattern = (pattern_original + 1) % @width_divisor

end

end

end

#==============================================================================

# * Sprite Character

#------------------------------------------------------------------------------

# Summary of changes:

# aliased methods - update_src_rect, update_bitmap

#==============================================================================

class Sprite_Character

#--------------------------------------------------------------------------

# * Update Src Rect

#--------------------------------------------------------------------------

# Interpret multiple movement frames: Changed pattern

#--------------------------------------------------------------------------

alias ma_extra_movement_frames_src_rect_upd update_src_rect

def update_src_rect

if @tile_id == 0

ma_extra_movement_frames_src_rect_upd

index = @character.character_index

pattern = @character.pattern < @character.width_divisor ? @character.pattern : 1

sx = (index % 4 * 3 + pattern) * @cw

sy = (index / 4 * 4 + (@character.direction - 2) / 2) * @ch

self.src_rect.set(sx, sy, @cw, @ch)

end

end

#--------------------------------------------------------------------------

# * Update Bitmap

#--------------------------------------------------------------------------

# Change hard coded values to ones dependent on character graphic

#--------------------------------------------------------------------------

alias ma_extra_movement_frames_bmp_upd update_bitmap

def update_bitmap

@character.calculate_divisors

saved_tile_id = @tile_id

saved_character_name = @character_name

saved_character_index = @character_index

ma_extra_movement_frames_bmp_upd

if saved_tile_id != @character.tile_id or

saved_character_name != @character.character_name or

saved_character_index != @character.character_index

unless @tile_id > 0

@cw = bitmap.width / @character.width_divisor

@ch = bitmap.height / @character.height_divisor

self.ox = @cw / 2

self.oy = @ch

end

end

end

end

#==============================================================================

# ** Window Base

#------------------------------------------------------------------------------

# Summary of changes:

# overwritten methods - draw_character

#==============================================================================

class Window_Base

#--------------------------------------------------------------------------

# * Draw Charater (overwritten for extra movement frames)

# character_name : the name of the character file

# character_index : the index of the character in the file

# x : the x position to draw

# y : the y position to draw

#--------------------------------------------------------------------------

def draw_character(character_name, character_index, x, y)

return if character_name == nil

bitmap = Cache.character(character_name)

sign = character_name[/^[!$].[%][d*]/]

if !sign.nil? && sign.size > 5

cw = bitmap.width / sign[4, sign.size - 5].to_i

ch = bitmap.height / 4

elsif sign != nil and sign.include?('$')

cw = bitmap.width / 3

ch = bitmap.height / 4

else

cw = bitmap.width / 12

ch = bitmap.height / 8

end

n = character_index

src_rect = Rect.new((n%4*3+1)*cw, (n/4*4)*ch, cw, ch)

self.contents.blt(x - cw / 2, y - ch, bitmap, src_rect)

end

end

Instrucciones

Están en el script, pero las cito a continuación:

1º Coloca el script sobre Main, en el Editor de Scripts.

2º Para usar un chara con posiciones extra nombra a su imagen de esta forma:

Código:
!$%[<número de frames>]<Nombre Normal>

Ejemplo: Si quiero usar el chara 001-Fighter01 del RMXP (vamos, el de toda la vida), tenes que renombrar su imagen para que quede:

!$%[4]001-Fighter01. Sencillo, ¿no?
avatar
Shurshok
Veterano
Veterano

0/3

Créditos 753

Gracias : 32

Volver arriba Ir abajo

Re: [RMVX] Charas con mas frames.

Mensaje por Ribbu el 2009-02-28, 01:35

Más frames quiere decir tipo Golden Sun?

Te puedes mover por topas partes,pero el gráfico del chara en diágonal supongo que es fundamental en este script.

Buen trabajo!

_________________
¡DESCARGA ARRYN!
avatar
Ribbu
Administrador
Administrador



Créditos 10080

Gracias : 86

Volver arriba Ir abajo

Re: [RMVX] Charas con mas frames.

Mensaje por T3cN0-D4rK el 2009-03-04, 22:08

Muy buen aporte SHURSHOK creo que lo usare en mi proyecto pero cuanta es la cantidad maxima de frames que se pueden poner?
avatar
T3cN0-D4rK
Soñador
Soñador

0/3

Créditos 172

Gracias : 6

Volver arriba Ir abajo

Re: [RMVX] Charas con mas frames.

Mensaje por Shurshok el 2009-03-05, 03:15

Puedes poner la cantidad que quieras, pero por las dudas no uses mas de 9.
avatar
Shurshok
Veterano
Veterano

0/3

Créditos 753

Gracias : 32

Volver arriba Ir abajo

Re: [RMVX] Charas con mas frames.

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.