Script de reflexo
2 participantes
Página 1 de 1
Script de reflexo
Gente eu estou precisando urgente de um script de reflexo na agua! Ex: Seu pers. passa ao lado do riacho e aparece o reflexo dele na agua! Eu só estou encontrado para XP! Será que tem como alguem arranjar um para o VX???
Re: Script de reflexo
Achei o script "Reflexão de sprites" ele reflete os sprites do personagem nas áreas ou eventos com o nome "Reflexo", leio o script para mais instruções.
- Código:
#==============================================================================
# TDS Reflexão de Sprites
# Versão: 1.8
#------------------------------------------------------------------------------
# Este script permite que os sprites do jogo sejam refletidos em certas partes
# do mapa, como água ou espelhos.
#==============================================================================
# :: Modo de Usar
#
# Crie áreas utilizando o próprio editor de mapas do RPG Maker VX e coloque
# o título "Reflexo" em todas elas. Você também pode usar o título "Reflexo"
# em eventos cujos reflexos você deseja criar. Abaixo você encontra algumas
# configurações especiais.
#
# Adicionando /OFFSET[X] ao nome do evento, você mudará a posição do reflexo.
# Sendo que X = Valor numérico da posição em pixels
#
# Exemplo: Reflexo /OFFSET[10]
#
# Isto irá controlar a posição vertical do sprite em pixels. A posição é nada
# mais nada menos que a posição do reflexo em relação à posição original do
# sprite.
#
# Você também pode usar a seguinte chamada de script para configurar a posição
# do reflexo do personagem principal:
#
# $game_player.reflect_offset = X
#
# Sendo que X = Valor numérico da posição em pixels
#
#==============================================================================
#--------------------------------------------------------------------------
# Deseja usar o efeito de água na reflexão do sprite? (true/false)
#--------------------------------------------------------------------------
WATER_WAVE_EFFECT = true
#==============================================================================
# Sprite_Character
#------------------------------------------------------------------------------
# Classe que gerencia os gráficos de personagens a serem exibidos.
# Esta classe está vinculada à classe Game_Character, que a monitora e
# automaticamente muda o status do sprite.
#==============================================================================
class Sprite_Reflect < Sprite_Base
attr_accessor :character
def initialize(viewport = nil, character = nil, offset = nil)
super(viewport)
self.visible = false
@character = character
@player_offset = $game_player.reflect_offset
@offset = (@character.is_a?(Game_Player) ? @player_offset : offset)
sprite_setup
update
end
def sprite_setup
self.bitmap = Cache.character(@character.character_name)
self.angle = 180
self.mirror = true
self.opacity = 120
sign = @character.character_name[/^[\!\$]./]
if sign != nil and sign.include?('$')
@cw = bitmap.width / 3
@ch = bitmap.height / 4
else
@cw = bitmap.width / 12
@ch = bitmap.height / 8
end
end
def update
super
index = @character.character_index
pattern = @character.pattern < 3 ? @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)
if @character.is_a?(Game_Player)
self.ox = @cw / 2
self.oy = 8 + @ch + $game_player.reflect_offset
else
self.ox = @cw / 2
self.oy = 8 + @ch + @offset
end
self.x = @character.screen_x
self.y = @character.screen_y
self.z = @character.screen_z
if WATER_WAVE_EFFECT == true
self.wave_amp = 1
self.wave_length = 1
self.wave_speed = 3
end
end
end
#==============================================================================
# Spriteset_Map
#------------------------------------------------------------------------------
# Classe responsável pela compilação dos sprites utilizados nos mapas.
# Esta classe é utilizada dentro da classe Scene_Map.
#==============================================================================
class Spriteset_Map
def create_characters
@character_sprites = []
@event_reflection_sprite = []
@reflecting_events = []
for i in $game_map.events.keys.sort
sprite = Sprite_Character.new(@viewport1, $game_map.events)
@character_sprites.push(sprite)
end
for vehicle in $game_map.vehicles
sprite = Sprite_Character.new(@viewport1, vehicle)
@character_sprites.push(sprite)
end
@character_sprites.push(Sprite_Character.new(@viewport1, $game_player))
for i in $game_map.events.keys.sort
@event_name_offset = $game_map.events.name
@event_name_offset[ /\/OFFSET\[(.*?)\]/ ]
sprite = Sprite_Reflect.new(@viewport1, $game_map.events, $1 != nil ? $1.to_i : 0)
if $game_map.events.name.include?("Reflexo")
@event_reflection_sprite.push(sprite)
@reflecting_events.push($game_map.events)
end
end
@reflection_sprite = Sprite_Reflect.new(@viewport1, $game_player, 0)
end
alias tds_sprite_reflection_update update
def update
tds_sprite_reflection_update
if $game_player.current_area_name == "Reflexo"
if $game_player.moving? == false
@reflection_sprite.visible = true
end
else
@reflection_sprite.visible = false
end
for i in 0...@reflecting_events.size
if @reflecting_events.current_area_name == "Reflexo"
if @reflecting_events.moving? == false
@event_reflection_sprite.visible = true
end
else
@event_reflection_sprite.visible = false
end
end
if @reflection_sprite.visible == true
@reflection_sprite.update
end
for i in 0...@event_reflection_sprite.size
if @event_reflection_sprite.visible == true
@event_reflection_sprite.update
end
end
end
def dispose
dispose_tilemap
dispose_parallax
dispose_characters
dispose_shadow
dispose_weather
dispose_pictures
dispose_timer
dispose_viewports
for i in 0...@reflecting_events.size
@event_reflection_sprite.dispose
end
@reflection_sprite.dispose
end
end
#==============================================================================
# Game_Character
#------------------------------------------------------------------------------
# Esta classe controla o personagem. Esta classe é uma superclasse de
# Game_Player e Game_Event.
#==============================================================================
class Game_Character
attr_accessor :reflect_offset # Posição de reflexo do personagem
alias tds_sprite_reflection_initialize initialize
def initialize
tds_sprite_reflection_initialize
@reflect_offset = 0
end
def in_area?(area)
return false if area == nil
return false if $game_map.map_id != area.map_id
return false if @x < area.rect.x
return false if @y < area.rect.y
return false if @x >= area.rect.x + area.rect.width
return false if @y >= area.rect.y + area.rect.height
return true
end
def current_area_name
for area in $data_areas.values
if in_area?(area) == true
return_area_name = area.name
break
end
end
return return_area_name
end
end
#==============================================================================
# Game_Event
#------------------------------------------------------------------------------
# Esta classe controla os eventos. Verifica as condições para mudar de página
# e funções, como processo paralelo. Utiliza a classe Game_Map.
#==============================================================================
class Game_Event < Game_Character
def name
return @event.name
end
end
davipb- MOD
- Mensagens : 62
LM Pontos : 97
Up's : 11
Data de inscrição : 19/07/2010
Idade : 24
Localização : Via láctea
Ficha Maker
Premios:
Tópicos semelhantes
» Script HUD Menu
» Indice de Script RMVX
» Indice de Script RMXP
» Script de 8 Direções , Com Sprites do Char na Diagonal !
» Indice de Script RMVX
» Indice de Script RMXP
» Script de 8 Direções , Com Sprites do Char na Diagonal !
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos
|
|