Fonctions
Dès qu'un script dépasse vingt lignes, entasser toutes les instructions dans OnTick ou OnKeyDown devient illisible. Une fonction (appelée méthode en C# quand elle est rattachée à une classe) te permet de nommer une opération, de lui transmettre des paramètres et de l'appeler à la demande.
L'anatomie d'une méthode
Une méthode se compose de quatre éléments fondamentaux :
private bool EstPresDeLaCible(Vector3 positionCible, float distanceMax)
{
Ped player = Game.Player.Character;
if (player == null || !player.Exists())
{
return false;
}
float distance = player.Position.DistanceTo(positionCible);
return distance <= distanceMax;
}
- Le modificateur d'accès (
private) : Dans une classe de script, presque toutes les méthodes d'aide doivent êtreprivate. Seules les méthodes destinées à être appelées depuis l'extérieur doivent être publiques. - Le type de retour (
bool) : La valeur que la méthode renvoie à son appelant. Si elle n'a rien à renvoyer, on utilisevoid. - Le nom (
EstPresDeLaCible) : En PascalCase, commençant par un verbe décrivant l'action ou la question posée. - Les paramètres (
(Vector3 positionCible, float distanceMax)) : Les données nécessaires pour accomplir le travail.
Les méthodes void : exécuter une action
Quand une méthode réalise une action sans produire de résultat calculé, son type de retour est void :
private void AppliquerMeteoEnsoleillee()
{
World.TransitionToWeather(Weather.ExtraSunny, 5.0f);
GTA.UI.Notification.PostTicker("Météo : plein soleil.", false);
}
Ton gestionnaire d'événements devient alors limpide et concis :
private void OnKeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.F6)
{
AppliquerMeteoEnsoleillee();
}
}
Le principe de responsabilité unique
Une méthode doit accomplir une seule tâche et la faire proprement. Si tu as une méthode nommée CreerVoitureEtArmerPedEtLancerMission(), tu as regroupé trois responsabilités distinctes en un bloc rigide. Si la voiture échoue à apparaître, toute la mission est compromise, et isoler l'erreur devient un calvaire.
Découpe plutôt :
CreerVehicule(...)ArmerGardeDuCorps(...)LancerMission(...)
Puis orchestre ces étapes depuis une méthode coordinatrice.
Dans la leçon suivante, nous étudions la saisie clavier : intercepter les touches du joueur et éviter les déclenchements parasites.