En deux parti la première sert pour le saut en lui même la deuxième a empêcher votre perso de sauter sur les décors et en dehors de la map (ce qui est assez problématique)
Auteur : ?
Pour VX peut être aussi Xp
Configuration :
Vous pouvez changer la longueur de saut assez facilement (même pas besoin de si connaitre en Ruby !)
Ligne 20 à 30 vous avez :
- Citation :
when 2
jump_y = 2
jump_x = 0
when 4
jump_x = -2
jump_y = 0
when 6
jump_x = 2
jump_y = 0
when 8
jump_y = -2
jump_x = 0
Modifier simplement les 2 -2 et autre pour augmenter ou réduire la distance de saut, le chiffre que vous mettrez étant le nombre de case de déplacement, voilà c'est pas sorcier !
portion de code :
- Citation :
#===================================
# DRodrigues Jump System
#Mini traduction fr par Monos
#===================================
#--------------------------------------------------------------
#Jump key, change la touche "x" par celui que vous voulez. (Touche RM pas touche clavier):
Jump_Button = Input::X
#Numéros de l'interrupteur qui doit être activé pour que le saut puisse être réalisé.
Switche_Active = 1
#--------------------------------------------------------------
class Jump_System < Game_Character
def initialize
update
end
def update
if $game_switches[Switche_Active] == true
if Input.trigger?(Jump_Button)
case $game_player.direction
when 2
jump_y = 2
jump_x = 0
when 4
jump_x = -2
jump_y = 0
when 6
jump_x = 2
jump_y = 0
when 8
jump_y = -2
jump_x = 0
end
$game_player.jump(jump_x,jump_y)
end
end
end
end
class Scene_Map
alias jump_update update
alias jump_main main
def main
@jumping = Jump_System.new
jump_main
end
def update
@jumping.update
jump_update
end
end
et le script de correction, portion de Code :
- Citation :
#=================================
# ■ Game_Character - Jump Check
#------------------------------------------------------------------------------
Game_Event
#===============================
class Game_Character
def jump(x_plus, y_plus)
if x_plus.abs > y_plus.abs
x_plus < 0 ? turn_left : turn_right
elsif x_plus.abs > y_plus.abs
y_plus < 0 ? turn_up : turn_down
end
new_x = @x + x_plus
new_y = @y + y_plus
if (x_plus == 0 and y_plus == 0) or passable?(new_x, new_y)
@x += x_plus
@y += y_plus
distance = Math.sqrt(x_plus * x_plus + y_plus * y_plus).round
@jump_peak = 10 + distance - @move_speed
@jump_count = @jump_peak * 2
@stop_count = 0
straighten
end
end
end