Auteur: Salamandar
Fonction: 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. (En gros ce script est une alternative au dash mode)
Utilisation: Sur les cartes où vous voulez rendre disponible cette option, mettez un event en processus.
Screen:
Dans l'event créée, mettez ceci:
- Code:
-
# 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
Bon, alors pour l'utiliser :
Sur les cartes où vous voulez rendre disponible cette option, mettez un event en processus paralléle ou vous mettrez ceci :
P.S :
Vous pouvez aussi mettre un event commun en processus paralléle mais je en garentie pas l'absence de bugs !Dedans, mettez :
- Code:
-
$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)