Accélaration progressive du perso

Publié le par Cidragon6

Ecrit par Salamandar

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 !


Voici le script à coller au dessus de main
:

 



#----------------------------------------------------------------------------------------------------------------------------
#
# 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



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 :



$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...

Publicité

Publié dans Scripts RPG Makers XP

Pour être informé des derniers articles, inscrivez vous :
Commenter cet article
J
Salut vieux, jai un devblog, mais vu que je suis tres souvent en train de programer, jai pas le temp de me batir une communauter.Je suis ladministrateur d'un serveur d'Ultima Online francais gratuit presentement en conception, je recherche du monde qui pourrait mettre mon lien sur leur blog-site etc, cela maiderais beaucoup beaucoup.voila mon lienhttp://www.crystalworld.over-blog.com/Plus sa va avancer, plus le monde pourras simpliquer dans la conception du serveur, et lorsque le serveur seras en ligne, il y auras des prix pour ceux qui jouerons et qui se serons impliquer.Merci a lavance.MSN: jocan2003@hotmail.com
Répondre
C
Pas de probléme, je vais mettre ton lien en page d'accueil et un peu partous;