La bicyclette

15 Réponses • 1984 Vues

Préambule

Je sais bien que beaucoup d'entre vous sont des utilisateurs chevronnés de PSP, et ont déjà programmé la bicyclette dans leur projet, à l'aide d'un script (ou pas), et que vous trouvez cela évident. Ce tutoriel s'adresse plutôt à ceux qui débutent, et qui, comme moi, n'ont aucune connaissance en script, et se sont dit, en lisant sur les évènements communs du vélo de course et du vélo de cross le commentaire "Dans une prochaine version" : "Oh flûte ! Ces objets ne sont pas programmés, comment vais-je faire pour inclure la bicyclette dans mon projet, moi qui n'y connais rien en script ?"

Je précise aussi que je n'utilise pas PSP mode, c'est pourquoi mes screen seront en anglais. Normalement, vous devriez retrouver facilement les équivalents en Français.

Je vais vous expliquer ma méthode pour rendre la bicyclette fonctionnelle. C'est une méthode parmi d'autres, un exemple, j'ai d'ailleurs remplacé le vélo de course par la "bicyclette" dans mon projet qui ne comporte qu'un seul vélo. Avec cette base, libre à vous de modifier ce que vous souhaitez pour créer votre propre évènement commun.

1) Créer un interrupteur qui autorise ou non l'utilisation de la bicyclette dans une map

Vous l'avez sans doute remarqué dans le starter kit, dans chaque map, il existe un évènement qui active ou non interrupteur "VOL AUTORISEé".



C'est le même principe pour la bicyclette. Selon si vous êtes à l'intérieur ou à l'extérieur, dans ce même évènement, dans chaque map, vous ajouterez une commande qui active ou non un interrupteur "VELO OK" (je l'ai appelé comme ça, mais ce n'est qu'un exemple).

En pratique, je vous conseille de créer un évènement commun "extérieur" et un évènement commun "intérieur" (et d'autres si besoin du style "grotte", etc...) avec tous les interrupteur que vous gèrerez à l'avenir pour ne pas avoir à modifier toutes les map à chaque fois que vous inventerez un nouvel évènement commun (du style "TUNNEL autorisé", etc...). Ainsi, dans chaque map, il vous suffira de créer un évènement (que je vous conseille de placer au même endroit à chaque fois, par exemple en haut à gauche) en processus parallèle, dans lequel vous appellerez l'évènement commun adéquat :





A noter que j'ai ajouté une commande pour effacer l'évènement une fois qu'il s'est activé dès l'entrée de la map. Cela servira plus tard, je vous expliquerai le moment venu...

2) Modifier l'évènement commun BICYCLETTE

Comme dit plus haut, je n'ai qu'un seul vélo dans mon projet. J'ai donc remplacé l'évènement commun VELO COURSE par BICYCLETTE. Ce n'est qu'un exemple, libre à vous de faire différemment.

Dans l'évènement commun BICYCLETTE, créer une condition pour que la bicyclette ne soit utilisable que si l'interrupteur "VELO OK" est sur ON :
- Dans la branche où cette condition est réalisée, la suite des évènements aura lieu (Cf. plus bas).
- Si cette condition n'est pas réalisée, un texte s'affiche, par exemple "Impossible ici".



Créer un interrupteur "Sur le vélo" :
- Il sera mis sur ON lorsque le joueur montera sur la bicyclette.
- Il sera mis sur OFF lorsque le joueur descendra de la bicyclette.
- La suite de l'évènement dépend donc de cet interrupteur.

Dans la branche "VELO OK = ON" de la condition précédente, nous allons ajouter une autre condition, selon si l'interrupteur "Sur le vélo" est en ON ou en OFF. Pour simplifier, la condition sera "Sur le vélo = OFF".



Dans la branche "Sur le vélo = OFF", nous ferons en sorte que lorsque le joueur n'est pas sur la bicyclette, alors le joueur monte sur la bicyclette. Les commandes sont les suivantes :
- Changer l'apparence du héros (avec le chara qui représente le héros sur le vélo).
- Changer la vitesse du héros en 6 (au lieu de 4).
- Switcher l'interrupteur "Sur le vélo" en ON.

Dans la branche "Else" (ou "sinon"), c'est l'inverse, lorsque le joueur est sur la bicyclette, alors il descend de la bicyclette :
- Changer l'apparence du héros avec le chara piéton.
- Changer la vitesse du héros pour qu'elle revienne sur 4.
- Switcher l'interrupteur "Sur le vélo" en OFF.



Ce qui donne :



ATTENTION : Ne pas oublier d'attribuer l'évènement commun à l'objet concerné (sinon, ça marche pas ! :p)



3) Mettre la musique de la bicyclette

Je m'excuse par avance, je ne saurais pas vous dire où télécharger la musique de la bicyclette, qui n'est pas sur le starter kit de PSP. A une époque, toutes les musiques de Pokémon Rubis et Saphir étaient téléchargeables sur Pokébip, et elles ne le sont plus. Si quelqu'un sait où la trouver... ^^

Donc partons du principe que vous possédez cette musique, ou que vous en avez créé une, pourquoi pas.

J'avais une technique très compliquée pour restituer la musique de la bonne map lorsque le joueur descend de la bicyclette, que je vous aurais détaillé avec plaisir il y a même pas deux jours, et elle s'est considérablement simplifiée grâce à un simple script, qui se trouve sur l'évènement commun SURF, et que FLORENT_ (que je remercie beaucoup), m'a expliqué dans un autre topic où j'ai posé la question.

Alors c'est très simple :

Dans la branche "Sur le vélo = OFF" de la condition que l'on vient de créer :
- Mémoriser la musique actuelle.
- Joueur la musique de la bicyclette.
- Déclencher un nouvel interrupteur "Musique VELO" en ON.



Cet interrupteur "Musique VELO" signifie que la musique du vélo est entrain d'être jouée, et il sera mis sur OFF dès que ce ne sera plus le cas. A chauqe changement de map, c'est la musique de la nouvelle map qui se joue à la place de celle de la bicyclette. Il faut donc qu'à chaque map l'interrupteur "Musique VELO" soit mis sur OFF.
Pour cela, nous avons vu tout à l'heure qu'il fallait un évènement dans chaque map appelant un évènement commun dans lequel se modifient tous les interrupteurs (Cf. plus haut). Dans chacun de ces évènements communs, ajouter une commande qui met sur OFF l'interrupteur "Musique VELO".
C'est pour cet interrupteur qu'il est important que l'évènement disparaisse à l'entrée de chaque map. Ainsi, l'interrupteur "Musique VELO" ne se met en OFF que lorsque le joueur change de map.



Pourquoi cet interrupteur ? Eh bien il était surtout utile pour mon ancienne technique super compliquée, et qui permettait de rétablir la musique de la map uniquement si on n'avait pas changé de map... Cela dit, il peut toujours servir pour d'autres cas où vous auriez besoin de déterminer si c'est la musique de la bicyclette qui est entrain de se jouer ou non (par exemple si vous voulez rétablir la musique de la bicyclette et non celle de la map actuelle, on peut imaginer plein de choses)...

De même, je ne sais pas s'il y a toujours grand intérêt à mémoriser la musique actuelle avant de monter sur la bicyclette avec la nouvelle méthode, mais on ne sait jamais, vous pourriez avoir besoin de la rétablir.


Dans la branche "Sur le vélo = ON" (ou plutôt la branche "else"), nous allons rétablir la musique de la map lorsque le joueur descend du vélo. Pour cela, il suffit d'insérer le script (commande "insérer un script") dont je vous ai parlé et qui est le même que dans l'évènement commun SURF :
$game_map.autoplay



4) Descendre automatiquement de la bicyclette lorsqu'on entre dans un bâtiment

Dans les lieux où la bicyclette n'est pas autorisée, donc dans l'évènement commun "INTERIEUR" par exemple, ajouter les commandes suivantes :
- Changer l'apparence du héros en piéton.
- Changer la vitesse du héros en 4.
- Switcher l'interrupteur "Sur le VELO" en OFF.
- Switcher l'interrupteur "Musique VELO" en OFF.



Il est important qu'une musique soit définie pour chaque map, même une maison dans une ville dans laquelle la musique est censée rester la même.



5) Faire en sorte qu'il n'y ait pas de gag lorsqu'on se met à surfer

Oui, si vous n'en tenez pas compte, lorsque vous utiliserez SURF alors que vous êtes à vélo, le joueur va continuer à se déplacer avec la même vitesse que sur le vélo. Ce sera d'autant plus bizarre lorsqu'il reviendra sur terre. Vous essayerez, c'est rogolo...

Pour résoudre ce premier problème, il suffit de rajouter deux commandes dans l'évènement commun SURF, en dessous de l'étiquette "Saut" :
- Mettre l'interrupteur "Sur le VELO" sur OFF.
- Changer la vitesse du héros en 4.



Enfin, vous constaterez une autre anomalie tout aussi rigolote, lorsque vous utilisez la bicyclette alors que vous êtes entrain de Surfer, eh bien... le joueur monte effectivement sur sa bicyclette, sur l'eau !

Pour corriger cette anomalie, insérer dans l'évènement commun de la bicyclette une condition par script, avec comme script le même que vous trouverez dans l'évènement commun SURF et qui signifie que le joueur est sur l'eau :
$game_player.terrain_tag == 7

Si la condition est réalisée : Bicyclette impossible.
Dans la branche "Sinon", copier-coller le reste de l'évènement commun de la bicyclette tel qu'on l'a vu tout au long de ce tuto, pour donner à peu près ça :



A présent, j'espère que la bicyclette n'a plus aucun secret pour vous ! :)
Si vous avez des questions, ou des idées d'amélioration (ou un tuyau pour avoir une musique de bicyclette pour ceux qui ne l'ont pas), n'hésitez pas !

MAJ 03/04/16
Après avoir ajouté le sciprt des chaussures de sport de Palbolsky dans mon projet, je peux vous en dire plus sur les interférences.

Alors déjà, comme pour Surf, il faut désactiver l'interrupteur 20 (celui des chaussures de sport) lorsque le joueur monte sur la bicyclette, et le réactiver lorsqu'il descend.

Par ailleurs lorsque vous passez d'une map à une autre en bicyclette, pour éviter tout problème...
Si jamais vous avez ajouté cette commande à l'entrée d'une map :

Remplacez le par ça :

« Modifié: 03 avril 2016, 16:58:40 par Symbioss »

PSP Tuto Making

Elogio

Utilisateurs bannis ou désinscrits

Super tutoriel!
Mais est-ce que c'est exactement le même procédé pour les rollers/chaussures de course?
Merci ! :)

Mais est-ce que c'est exactement le même procédé pour les rollers/chaussures de course?
Je ne pense pas. Le principe des chaussures de courses est de laisser une touche appuyée pour courir. Donc ça ne doit pas fonctionner exactement de la même manière.

EDIT : Pour les chaussures, il y a un script sur le forum : http://communityscriptproject.com/forum/index.php?topic=328.0
(mais je ne sais pas si ma technique pour la bicyclette interagit avec ce script, car je ne l'ai pas essayé)

« Modifié: 19 décembre 2015, 22:53:36 par Symbioss »

Ota

Programmeur

Merci mais une question me perturbe si je déclenche mon vélo sera t'il encore la quand je passerai dans une autre map ou je serait obligé de le réactivé ?

« Modifié: 25 décembre 2015, 15:58:38 par Otaku »

Tu restes sur le vélo en changeant de map si le vélo est autorisé dans cette map, et il faut mettre un évènement spécifique dans les map où le vélo est interdit pour que le joueur en descende automatiquement (Cf. partie 4).
En revanche la musique de la nouvelle map prend le dessus.

Ota

Programmeur

Pas grave pour le musique je pense qu'on peut mettre celle du vélo en prio
Dans le vrai jeu, la musique de la map reprend le dessus au changement de map.

Si tu veux que la musique du vélo persiste, il suffit d'utiliser mon interrupteur "Musique VELO", ne le mettre en OFF que dans les maps où la bicyclette est interdit, et déclencher la musique du vélo dans chaque map s'il est en ON.
Merci beaucoup ! J'ai rarement vu un tutoriel aussi précis et complet !
J'ai créer un événement de ce style :



Dans les jeux officiels, on peut redescendre du vélo en appuyant sur B.
Mais là c'est un peu plus dur... Saurais tu comment faire ?

Nuri Yuri

HostMaster

Citer
Dans les jeux officiels, on peut redescendre du vélo en appuyant sur B.
Ah bon ? '^'

Pour faire ton truc :
Évent commun en processus parallèle : Interrupteur "Sur le vélo" activé.
Commandes :
<> Condition : Si la touche B est appuyée
    <> Appeler l'évènement commun Bicyclette
    <>
 : Fin condition
<> Attendre 1 frame
<>
ln(yo) = <3
Petit problème...
Le bouton ne fonctionne pas. alors j'ai toucher à tout les autres touches mais toujours pas...

Nuri Yuri

HostMaster

T'as essayé d'appuyer sur Echap ?
ln(yo) = <3
J'ai même essayer sur échap...
Ah désolé, je n'ai pas réussi à faire en sorte qu'on puisse utiliser une touche du clavier. :/
C'est pour sa ! Je recherche un moyen de descendre du vélo en appuyant sur une touche. Comme sa tu pourra rajouter ça à ton Tuto

There was an error while thanking
Thanking...