Ozzma - Sro 28 Pa¼, 2009 09:08 Temat postu: Ruch w 8 kierunkachCześć Ultimowicze
Dzisiaj skrypt, który umożliwia poruszanie się bohatera, nie jak dotychczas w 4 kierunkach a w ośmiu. Do standardowych prawa, lewa, góry i dołu dochodzą skosy. Skrypt ten w oryginale został znaleziony na jednej z japońskich stron. Ja go jedynie lekko uprościłam.
alias initialize_KGC_Dash_8DirMove initialize
def initialize
initialize_KGC_Dash_8DirMove
@temp_dash_speed = nil
@temp_walk_speed = nil
end
end
# www.ultimateam.pl
class Game_Party < Game_Unit
def decrease_steps
@steps -= 1
end
end
class Game_Character
def direction_8dir
return @direction
end
alias set_direction_KGC_Dash_8DirMove set_direction
def set_direction(direction)
last_dir = @direction
set_direction_KGC_Dash_8DirMove(direction)
if !@direction_fix && direction != 0
@direction_8dir = direction
end
end
alias move_lower_left_KGC_Dash_8DirMove move_lower_left
def move_lower_left
move_lower_left_KGC_Dash_8DirMove
@direction_8dir = 1 unless @direction_fix
end
alias move_lower_right_KGC_Dash_8DirMove move_lower_right
def move_lower_right
move_lower_right_KGC_Dash_8DirMove
@direction_8dir = 3 unless @direction_fix
end
alias move_upper_left_KGC_Dash_8DirMove move_upper_left
def move_upper_left
move_upper_left_KGC_Dash_8DirMove
@direction_8dir = 7 unless @direction_fix
end
alias move_upper_right_KGC_Dash_8DirMove move_upper_right
def move_upper_right
move_upper_right_KGC_Dash_8DirMove
@direction_8dir = 9 unless @direction_fix
end
end
class Game_Player < Game_Character
alias initialize_KGC_Dash_8DirMove initialize
def initialize
initialize_KGC_Dash_8DirMove
reset_move_speed
end
def direction_8dir
@direction_8dir = @direction if @direction_8dir == nil
return @direction_8dir
end
def reset_move_speed
@move_speed = KGC::Dash_8DirMove::DEFAULT_WALK_SPEED
end
# www.ultimateam.pl
if KGC::Dash_8DirMove::ENABLE_8DIR
def move_by_input
return unless movable?
return if $game_map.interpreter.running?
if @reserved_move != nil
case @reserved_move
when :down
move_down if passable_l?(2)
when :left
move_left if passable_l?(4)
when :right
move_right if passable_l?(6)
when :up
move_up if passable_l?(8)
end
@reserved_move = nil
return
end
last_steps = $game_party.steps
case Input.dir8
when 1
if !passable_l?(2) && passable_l?(4)
move_up
move_right
end
@direction = 8
else
return
end
@direction_8dir = Input.dir8
if $game_party.steps - last_steps == 2
$game_party.decrease_steps
end
end
def passable_l?(d)
if $imported["TilesetExtension"]
return passable?(@x, @y, d)
else
case d
when 1
return passable?(@x-1, @y+1)
when 2
return passable?(@x, @y+1)
when 3
return passable?(@x+1, @y+1)
when 4
return passable?(@x-1, @y)
when 6
return passable?(@x+1, @y)
when 7
return passable?(@x-1, @y-1)
when 8
return passable?(@x, @y-1)
when 9
return passable?(@x+1, @y-1)
end
end
return false
end
end
dir = @character.direction_8dir
case dir % 2
when 0
if @last_slant
self.bitmap = Cache.character(@character_name)
@last_slant = false
end
else
unless @last_slant
self.bitmap = Cache.character(@character_name_slant)
@last_slant = true
end
dir = SLANT_ANIME_TABLE[dir]
end
sy = (index / 4 * 4 + (dir - 2) / 2) * @ch
self.src_rect.set(sx, sy, @cw, @ch)
end
end
end
# www.ultimateam.pl
Cyklop - Pi± 30 Pa¼, 2009 14:05 Fajne, dużo lepiej chodzi siÄ™ po mapie. PrzydaÅ‚by siÄ™ jeszcze jakiÅ› char z różnymi kierunkami żeby widać byÅ‚o że idzie na ukos. Ale skrypcik konkretny i nie kłóci siÄ™ z tymi 10 co mam do tej pory :PPSarc - Pon 09 Lis, 2009 20:10 Niewygodnie siÄ™ tym porusza...Cyklop - Czw 12 Lis, 2009 12:15 Bo to skrypt dla masochistów, dla tych którzy kochajÄ… niewygodÄ™ :P:P Mi siÄ™ podoba x2 :DCreeperCrisis - Pon 14 Cze, 2010 19:42 Mam pytanko (również odÅ›wieżę temat ) mam specjalny rysunek do chodzenia na ukos:
Co mam zrobić, aby zadziałał. Ayene - Pon 14 Cze, 2010 19:48 Nazwij chara imieniem postaci i dodaj do nazwy znak '#'CreeperCrisis - Pon 14 Cze, 2010 19:50 a imieniem postaci czy obrazka bo dałem nazwę postaci i dalej chodzi tak samo napisałem "#edinus"Ayene - Pon 14 Cze, 2010 20:17 Najpierw nazwa postaci, dopiero później #, czyli 'edinus#'Amelanduil - Wto 10 Sie, 2010 15:28 CC, widzę, że masz battlery z kaduki :D
Skrypt dobry, użyÅ‚bym go, chociaż wtedy do kilku postaci musiaÅ‚bym dodać charset, co daÅ‚oby łącznie 4 charsety na jednÄ… postać... ale to nie problem, bardziej przeszkadza to, że faktycznie jakoÅ› dziwnie siÄ™ porusza + postać może poruszać siÄ™ tam, gdzie normalnie nie mogÅ‚aby (utrudnia pracÄ™ mapmakerowi :D)bartek2940 - Pon 18 Pa¼, 2010 16:08 ZnalazÅ‚em ukosy wielu oryginalnych postaci.
Tu macie zapisujcie sobie, a do łączenia jest nawet program do znalezienia na forum lub w googlach.
Strona z ukosami:
UkosyItaki - Pon 18 Pa¼, 2010 18:12 Może siÄ™ przyda matijoe - Czw 30 Gru, 2010 11:07 fajny skrypt potrzeba wiÄ™cej takich skryptówKrystianBoss - Sob 12 Lut, 2011 21:48 Cześć czy mugÅ‚by mi ktoÅ› wytÅ‚umaczyć jak to dodać bo dodaje i mam kupe bÅ‚edów ja mam to caÅ‚e zkopiować i wkleić nad mein ???
i jaką dać tego nazwęShlizer - Sob 12 Lut, 2011 21:57 @up to jakaś podpucha prawda?
generalnie jeśli rozumujesz tak, jak piszesz to zacznij od słownika j. polskiego.. (tłumacząc po Twojemu: kupe zrozumisz a muglbys sie czegoz nauczyc)