Mundo Maker
¡Bienvenid@ a Mundo Maker!

¿Quieres aprender todo sobre el RPG Maker?



Regístrate y forma parte de Mundo Maker.

[RMVX]Sonido de pisadas

Ver el tema anterior Ver el tema siguiente Ir abajo

[RMVX]Sonido de pisadas

Mensaje por znl el 2009-10-06, 15:16

Este script sirve para que cuando el chara pase por un terreno concreto se emita un sonido de pisadas.

Script
Spoiler:
Código:

#==============================================================================
# ■ Ruido de Pisadas por DeadlyDan
#------------------------------------------------------------------------------
#  Permite que "suenen" las pisadas cuando se camina por algunos tiles
#==============================================================================
# Para usarlo:
=begin

 Simple, coloca el archivo de audio en el directorio SE, y prueba el juego.

 Tiene algunos bugs, si alguien los arregla que lo comunique :)

 Para añadir sonidos personalizados a los tiles puedes hacer, por ejemplo:

 FOOTSTEP_WOOD = [15] # La ID del tile que se consigue con la función debug_tileid
 FOOTSTEP_WOOD_FILE = "Audio/SE/stepwood" # El archivo de sonido

 Entonces añade a partir de la línea # Inserta aquí sonidos personalizados:

 footstep_check ( FOOTSTEP_WOOD, FOOTSTEP_WOOD_FILE, 0 )

 El último número en esa función es para la capa, ya que el seleccionado
 por defecto está en la capa del suelo, que es 0.

 (NOTA)
 Hay un problema, que cuando vas por alfombra suena suciedad y nieve (?).
 Actualmente no se cómo arreglar esto, así que lo mejor que se puede hacer es
 llamar al comando $game_player.footsteps_enabled = false.

 Para permitir pisadas mientras se hace que dejen de sonar la nieve y la
 suciedad, hay una difícil solución de colocar un evento que llame
 a $game_player.footsteps_enabled = false.

 Lo siento por este problema.

=end

class Game_Player < Game_Character

 FOOTSTEP_GRASS = [28, 29, 30]
 FOOTSTEP_GRASS_LONG = [29, 30]
 FOOTSTEP_GRASS_FILE = "Audio/SE/stepgrass"

 FOOTSTEP_DIRT = [32, 33, 34]
 FOOTSTEP_DIRT_LONG = [32 ,34]
 FOOTSTEP_DIRT_FILE = "Audio/SE/stepdirt"

 FOOTSTEP_SAND = [36, 37, 38]
 FOOTSTEP_SAND_LONG = [36, 38]
 FOOTSTEP_SAND_FILE = "Audio/SE/stepdirt"

 FOOTSTEP_SNOW = [39, 41]
 FOOTSTEP_SNOW_LONG = [40, 41]
 FOOTSTEP_SNOW_FILE = "Audio/SE/stepsnow"

 FOOTSTEP_WOOD = [15]
 FOOTSTEP_WOOD_FILE = "Audio/SE/stepwood"

 FOOTSTEP_PITCH = 100
 FOOTSTEP_PITCH2 = 90

 attr_accessor :last_foot
 attr_accessor :footsteps_enabled

 alias foot_initialize initialize
 def initialize
  foot_initialize
  @last_foot = 0
  @last_foot_pitch = FOOTSTEP_PITCH2
  @next_foot_pitch = FOOTSTEP_PITCH
  @footsteps_enabled = true
 end

 alias foot_move_left move_left
 def move_left ( turn_ok = true )
  foot_move_left ( turn_ok )
  if ( @move_failed == false )
    sound_foot
  end
 end
 
 alias foot_move_right move_right
 def move_right ( turn_ok = true )
  foot_move_right ( turn_ok )
  if ( @move_failed == false )
    sound_foot
  end
 end

 alias foot_move_up move_up
 def move_up ( turn_ok = true )
  foot_move_up ( turn_ok )
  if ( @move_failed == false and @footsteps_enabled )
    sound_foot
  end
 end

 alias foot_move_down move_down
 def move_down ( turn_ok = true )
  foot_move_down ( turn_ok )
  if ( @move_failed == false and @footsteps_enabled )
    sound_foot
  end
 end

 def no_layer_tile? ( layer )
  result = [false, false, false]
  for i in 0..2
    if ( @map_tile_id[i] == 0 )
      result[i] = true
    end
  end
  if ( layer == 0 ) 
    if ( result[1] and result[2] )
      return true
    else
      return false
    end
  end
  else if ( layer == 1 )
    if ( result[2] )
      return true
    else
      return false
    end
  else
    return true
  end
 end

 def debug_tileid
  $game_message.texts[0] = @map_tile_tex[0]
  $game_message.texts[1] = @map_tile_tex[1]
  $game_message.texts[2] = @map_tile_tex[2]
 end

 def footstep_check ( footstep, file, layer )
  for i in 0..footstep.length
    if ( ( @map_tile_tex[layer] == footstep[i].to_s ) and ( no_layer_tile? ( layer ) ) )
      Audio.se_play ( file, 100, @next_foot_pitch )
      @last_foot = Graphics.frame_count
      return nil
    end
  end
 end

 def sound_foot
  if ( dash? )
    mul = 6
  else
    mul = 7
  end
  if ( Graphics.frame_count > ( @last_foot + mul ) )
    @map_tile_id = []
    @map_tile_tex = []
    for i in 0..2
      @map_tile_id.push ( $game_map.data[@x, @y, i] )
      @map_tile_tex.push ( @map_tile_id[i].to_s[0,2] )
    end
   
    # Usa "debug_tileid" aquí para traer los números de los tiles actuales
    # Para usarlos con la definición de tileids, camina por ellos en el juego...
   
    if ( @last_foot_pitch == FOOTSTEP_PITCH )
      @next_foot_pitch = FOOTSTEP_PITCH2
      @last_foot_pitch = FOOTSTEP_PITCH2
    else
      @next_foot_pitch = FOOTSTEP_PITCH
      @last_foot_pitch = FOOTSTEP_PITCH
    end
   
    # Suelo
    footstep_check ( FOOTSTEP_GRASS, FOOTSTEP_GRASS_FILE, 0 )
    footstep_check ( FOOTSTEP_DIRT, FOOTSTEP_DIRT_FILE, 0 )
    footstep_check ( FOOTSTEP_SAND, FOOTSTEP_SAND_FILE, 0 )
    footstep_check ( FOOTSTEP_SNOW, FOOTSTEP_SNOW_FILE, 0 )
    footstep_check ( FOOTSTEP_WOOD, FOOTSTEP_WOOD_FILE, 0 )
   
    # Capa 1
    footstep_check ( FOOTSTEP_GRASS_LONG, FOOTSTEP_GRASS_FILE, 1 )
    footstep_check ( FOOTSTEP_DIRT_LONG, FOOTSTEP_DIRT_FILE, 1 )
    footstep_check ( FOOTSTEP_SAND_LONG, FOOTSTEP_SAND_FILE, 1 )
    footstep_check ( FOOTSTEP_SNOW_LONG, FOOTSTEP_SNOW_FILE, 1 )
   
    # Inserta aquí sonidos personalizados
   
  end
 end

end

Descargar sonidos:
Sonidos de Pisadas

Instrucciones:
Colocar el script encima de main y los sonidos en "Audio/SE".
En la línea 5 empezando por abajo se pueden poner sonidos personalizados.
Créditos:
Deadlydan
avatar
znl
Aventurero
Aventurero

0/3

Créditos 1588

Gracias : 58

Volver arriba Ir abajo

Re: [RMVX]Sonido de pisadas

Mensaje por Dante271 el 2016-05-08, 20:57

me sale el siguiente error al apretar play:

Script ´sonidos al caminar´ Line 141: SyntaxError occurred.
Audio.se_play ( file, 100, @next_foot_pitch)
avatar
Dante271
Iniciado
Iniciado

0/3

Créditos 5

Gracias : 2

Volver arriba Ir abajo

Re: [RMVX]Sonido de pisadas

Mensaje por Miky Joe el 2016-05-09, 04:15

Los script son mejores por el hecho que te ahorran variables interruptores, procesos en paralelo, pero puedes probar con este engine, en casi todos los maker es igual el como hacerlo, así que aqui esta.

avatar
Miky Joe
Veterano
Veterano

0/3

Créditos 1133

Gracias : 72

Volver arriba Ir abajo

Re: [RMVX]Sonido de pisadas

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.