~ Prosty mechanizm ruchu w 8 kierunkach / Simple 8-Directional Movement ~
Krótki opis:
Skrypt pozwala na poruszanie się w ośmiu kierunkach. Podczas ruchu na skos może być używana dodatkowa grafika, ale nie musi.
Autor:
Jet (Jet10985)
Tłumaczenie:
Avara
Skrypt:
Spoiler:
Kod:
#===============================================================================
# Prosty mechanizm 8-kierunkowego ruchu / Simple 8-Directional Movement
# Autor: Jet10985 (Jet)
# Tłumaczenie: Avara
#===============================================================================
# Skrypt ten umożliwia graczowi poruszanie się po przekątnej, jeśli naciśnie
# dwa przyciski kierunkowe (strzałki) w tym samym czasie.
# Przyciski są w tym samym czasie.
# Skrypt ten posiada: 2 opcje konfiguracji.
#===============================================================================
# Nadpisane metody:
# Brak
#-------------------------------------------------------------------------------
# Dopiski do metod:
# Game_Player: increase_steps, move_(up, left, down, right)
#===============================================================================
module Jet8Dir
# Czy chcesz aby była wykorzystywana dodatkowa grafika podczas ruchu gracza
# po przekątnej?
USE_8DIR_SPRITES = true # true - tak ; false - nie
# Jeśli powyższa opcja jest ustawiona na true, wówczas podczas ruchu po
# przekątnej, wykorzystywana jest grafika przypisana do ID pierwszej postaci
# w drużynie. Przypisujemy dodatkową grafikę do postaci w następujący sposób:
# ID_postaci => ["nazwa grafiki", ID_grafiki]
# Po każdej takiej linijce kodu (oprócz ostatniej) musisz wstawić przecinek.
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# Od Avary: Dodatkowe grafiki umieść w folderze Graphics/Characters.
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
DIAG_CHAR_SPRITES = {
#===============================================================================
# DALEJ NIE EDYTUJ, CHYBA ŻE WIESZ CO ROBISZ!
#===============================================================================
class Game_Player
def move_by_input
return unless movable?
return if $game_map.interpreter.running?
case Input.dir8
when 1; move_lower_left
when 2; move_down
when 3; move_lower_right
when 4; move_left
when 6; move_right
when 7; move_upper_left
when 8; move_up
when 9; move_upper_right
end
end
alias jet6742_increase_steps increase_steps unless $@
def increase_steps(*args, &block)
jet6742_increase_steps(*args, &block)
@diag_walk ||= false
update_diag_sprite
end
def move_lower_left(*args, &block)
@diag_walk = passable?(self.x - 1, self.y + 1)
super(*args, &block)
@direction = 2
if @move_failed
move_down
move_left(false) unless $game_map.interpreter.running?
end
end
def move_lower_right(*args, &block)
@diag_walk = passable?(self.x + 1, self.y + 1)
super(*args, &block)
@direction = 6
if @move_failed
move_down
move_right(false) unless $game_map.interpreter.running?
end
end
def move_upper_left(*args, &block)
@diag_walk = passable?(self.x - 1, self.y - 1)
super(*args, &block)
@direction = 4
if @move_failed
move_up
move_left(false) unless $game_map.interpreter.running?
end
end
def move_upper_right(*args, &block)
@diag_walk = passable?(self.x + 1, self.y - 1)
super(*args, &block)
@direction = 8
if @move_failed
move_up
move_right(false) unless $game_map.interpreter.running?
end
end
def update_diag_sprite
return unless Jet8Dir::USE_8DIR_SPRITES
if @diag_walk
f = Jet8Dir::DIAG_CHAR_SPRITES
set_graphic(*f[$game_party.members[0].id]) rescue nil
else
f = $game_party.members[0]
set_graphic(f.character_name, f.character_index)
end
end
end
Screeny:
Spoiler:
Dodatkowe informacje:
Zamieszczam link do paczki dodatkowych grafik 32 podstawowych postaci z RPG Makera VX do powyższego skryptu autorstwa Vibrato.
http://www.mediafire.com/?q3m52dr5r56382h
Podstawa do stworzenia własnej grafiki:
Nie możesz pisać nowych tematów Nie możesz odpowiadać w tematach Nie możesz zmieniać swoich postów Nie możesz usuwać swoich postów Nie możesz głosować w ankietach Nie możesz załączać plików na tym forum Możesz ściągać załączniki na tym forum