Ce script permet de faire accélérer le héros progressivement, c'est à dire de plus en plus vite, sachant que si il s'arrète, il perd tout son élan ![color:f413=white:f413]Tout d'abord, voila le script en lui-même. Collez-le dans un nouveau script au dessus de Main, avec n'importe quel nom:
- Code:
-
#----------------------------------------------------------------------------------------------------------------------------
#
# Script d'acceleration, pas Salamandar.
# Ce script permet de faire accelerer le héros, qui ira donc de plus en plus vite
# tant qu'il ne s'arrête pas.
# Il est une alternative au dash mode.
#
# Utilisation : Sur les cartes où vous voulez rendre disponible cette option, mettez
# un event en processus //. Vous pouvez aussi mettre un event commun en proc. //,
# mais je en garentie pas l'absence de bugs ! ;-)
# Dedans, mettez :
#
# script : $nom=Acceleration.new(vitesse_de_départ, vitesse_accélération, accélération_max)
# boucle
# $nom.acceleration
# $nom.arrêt
# attendre 1 frame
# fin de boucle
#
# "nom" est remplaçable par n'importe quoi.
# "vitesse_de_départ" est la vitesse a laquelle votre héros commencera son accélération. Au dessus de 6, c'est inutile, car il sera déjà au max !
# "vitesse_accélération" est la vitesse a laquelle votre héros atteindra la vitesse maximale. Je conseille un nombre entre 0 et 1.
# "accélération_max" est la vitesse que votre héros ne pourra pas dépasser. 6 est inutile car il ne pourra jamais aller plus vite !
#
# Toutes ces valeurs peuvent être en décimales, les vitesse ne sont pas limitées entre 1 et 6 !
# Bon amusement ! ;-)
#
#----------------------------------------------------------------------------------------------------------------------------
class Acceleration
def initialize(vitesse_de_départ, vitesse_accélération, accélération_max)
@vitesse_de_départ=vitesse_de_départ #attribution des arguments
@accélération=vitesse_accélération
@accélération_max=accélération_max
end
def acceleration #cette fonction concerne le départ
if $game_player.moving? #condition : Si le héros est en train de bouger...
if $game_player.move_speed<@accélération_max #...tant que la vitesse est en dessous de la vitesse max...
$game_player.move_speed+=@accélération #...augmenter la vitesse a chaque frame
end
end
end
def arrêt #cette fonction concerne l'arrêt
if Input.press?(Input::LEFT) #Si aucune touche n'est pressée...
else
if Input.press?(Input::RIGHT)
else
if Input.press?(Input::UP)
else
if Input.press?(Input::DOWN)
else
$game_player.move_speed=@vitesse_de_départ #...alors on remet le héros a sa vitesse de départ.
end
end
end
end
end
end
Comment l'utiliser ?
Sur les cartes où vous voulez rendre disponible cette option, mettez un event en processus //. Vous pouvez aussi mettre un event commun en proc. //, mais je en garentie pas l'absence de bugs ! ;-)
Dedans, mettez :
$nom=Acceleration.new(vitesse_de_départ, vitesse_accélération, accélération_max)
boucle
script : $nom.acceleration
script : $nom.arrêt
attendre 1 frame
fin de boucle
"nom" est remplaçable par n'importe quoi.
"vitesse_de_départ" est la vitesse a laquelle votre héros commencera son accélération.
A 0, il partira sans vitesse de base, c'est plus réaliste.
"vitesse_accélération" est la vitesse a laquelle votre héros atteindra la vitesse maximale.
Moi, je met 0.1, c'est assez réaliste. Je vous conseille de mettre un nombre entre 0 et 1 car au dessus de 1, l'acceleration est trop
rapide et on ne le voit même pas...
"accélération_max" est la vitesse que votre héros ne pourra pas dépasser.
6 est le maximum, car on ne peut pas aller plus vite.
Petit rappel : Les vitesse rondes de rmxp sont :
1 : Très lent
2 : Lent
3 : Modéré
4 : Normal
5 : Rapide
6 : Très rapide
Mais vous pouvez tout aussi bien mettre un vitesse décimale, qui sera donc située entre deux de ces paliers.
Exemple : Je veux que mon héros parte sans vitesse initiale (donc 0), qu'il accelere assez rapidement (à 0.5), et qu'il ne puisse pas
dépasser la vitesse 4.
Je met donc en première ligne :
$nom=Acceleration.new(0, 0.5, 4)
Finalement, la première ligne est la seule à modifier... ^^