Rechercher - Liste des utilisateurs
Version complète : Plug-in
Accueil » Créer des labyrinthes » Plug-in
1
DerF_44
Petit détail d'ordre esthétique à propos du GaugeDisplayPlugin :
J'ai enfin réussi à faire fonctionner les chronos !!!
Et, évidemment, ça me donne plein d'envies d'exploiter la chose !!
Maintenant je voudrais savoir si il y a moyen de changer la couleur de la barre de progression (Gauge) sans “trifouiller” le GaugeDisplay.pas !???… Et, dans le cas contraire, je dois donc refaire une unité .pas ???..
Merci..

J'en profite pour résumer ici les indications de sjrd nécessaires pour construire un chrono :
(au cas où quelqu'un serait intéressé, vue que j'ai passé 3 plombes à retrouver le message s'y rapportant !!!)

Fichier|Unités utilisées, ajouter, dans l'ordre, les unités suivantes :
- GaugeDisplay
- Stopwatches
- GenericStopwatches
- StopwatchSquares


Dans l'inspecteur d'objet du Plugin Chronomètre, spécifier le Delay en millisecondes (1sec = 1000)..
Dans l'inspecteur d'objet du Plugin GaugeDisplayPlugin cliquer sur les "" de la propriété Gauges, puis sur le petit "+" en bas de l'inspecteur d'objet.
Dans la propriété RelatedComponent, écrire LoseStopwatchPlugin

Attacher les 2 plugins au joueur, en sélectionnant le joueur, puis, dans l'inspecteur d'objets, en mettant True en face de LoseStopwatchPlugin et de GaugeDisplayPlugin.

Dans la palette des composants, une nouvelle catégorie : Chronomètres.
Un bouton pour créer un effet qui déclenche un chrono, et un qui l'arrête…
En créer un de chaque, et dans leur propriété Stopwatch, sélectionner LoseStopwatchPlugin.
(Possibilités d'associer un message à afficher au démarrage/à l'arrêt via la propriété StartMessage/StopMessage,
mettre l'image de son choix en modifiant leur Painter).

DerF_44
Oups… Des fois je me demande si j'ai bien mon compte de neurones !!!…
Donc, ok, j'ai vu comment on pouvait changer les couleurs de la Gauge !!!
(J'avais zappé à quel point FunLaby est vraiment bien foutu !!.)

Donc, pour ceux que ça intéresse c'est par ici :
Dans l'inspecteur d'objet du Plugin GaugeDisplayPlugin cliquer sur les “…” de la propriété Gauges, puis sur 0 - TGaugeDescription en bas de l'inspecteur d'objet… Cliquer sur les "" des BackgroundColor, BorderColor, LeftColor et RightColor afin d'obtenir une palette de couleurs.
Trop bien !!

Alors, puisque je suis là, mon autre question :
Y'aurait-il moyen d'obtenir autre chose que la défaite du joueur en cas de dépassement du temps chrono !??
(Je me doute bien que oui, mais je veux dire relativement simplement !!????)
Genre déplacer le joueur par exemple !?…
Bon, décidément il temps que j'aille me coucher je crois : En bidouillant le GenericStopwatches.fnd ça m'a l'air assez facile non !?…
Du coup tout ça amène une suggestion d'amélioration pour une prochaine version :
Pouvoir choisir quel effet sera déclenché si le joueur dépasse le temps imparti !!!

(Désolé d'avoir posé tant de lignes pour si peu !)

DerF_44
Je cherche une petite formule magique à utiliser dans un .fnd perso pour augmenter le temps d'un chrono en cours dans le genre :
effect TTimeBonus
name 'Ajout de temps';

on Execute do
begin
Player(TStopWatchesPluginPlayerData).Delay := Player.Delay + 1000;
end;
end;

Dois-je déclarer dans les uses Stopwatches, GenericStopwatches ??…

Merci.
sjrd
DerF_44
Fichier|Unités utilisées, ajouter, dans l'ordre, les unités suivantes :
- GaugeDisplay
- Stopwatches
- GenericStopwatches
- StopwatchSquares
Il devait déjà être vieux, ce message ! Parce dans le “dans l'ordre” n'a plus aucune espèce d'importance depuis FunLabyrinthe 5.2
DerF_44
Bon, décidément il temps que j'aille me coucher je crois : En bidouillant le GenericStopwatches.fnd ça m'a l'air assez facile non !?…
Oui l'idée c'est qu'il faut se faire son petit plugin dans son labyrinthe, inspiré de TLoseStopwatchPlugin. Il suffit d'écrire ce qu'on veut dans on Expire do. Pas besoin d'aller modifier GenericStopwatches en tant que tel, bien sûr !
DerF_44
Du coup tout ça amène une suggestion d'amélioration pour une prochaine version :
Pouvoir choisir quel effet sera déclenché si le joueur dépasse le temps imparti !!!
Ben c'est ça, il suffit d'un petit FunDelphi à soi. En fait ça va vraiment dépendre très fort de chaque labyrinthe, ce que c'est censé faire à l'expiration. Il est impossible de généraliser ça.
sjrd
DerF_44
Je cherche une petite formule magique à utiliser dans un .fnd perso pour augmenter le temps d'un chrono en cours
En tant que tel, ce n'est pas possible avec l'implémentation courante de Stopwatches.pas.
Il faut contourner en arrêtant et en redémarrant le plugin.

(non testé
var
RemainingTime: Cardinal;
begin
RemainingTime := SomeStopwatchPlugin.GetPlayerData(Player).RemainingTime;
SomeStopwatchPlugin.GetPlayerData(Player).Delay := RemainingTime + 10000;
SomeStopwatchPlugin.Start(Player);
end;
Le 10000 pouvant bien sûr être remplacé par le nombre de ms voulu.

Ceci fonctionne, mais a l'inconvénient que, visuellement, la gauge va de nouveau être remplie (mais diminuera plus vite).
DerF_44
C'est Ok !!..
Après quelques mésaventures dont un plantage de l'éditeur suite à une suppression de l'unité GenericStopwatches (que je voulais remplacer par un .fnd perso) et une impossibilité de réouvrir mon projet (!) je suis parvenu à mieux capter les subtilités des chronos et à (re)faire un petit projet test…
J'ai donc un effet qui ajoute un bonus temps, réglable par la property “Bonus”..
Voici le code : (Le plugin initial “LoseStopwatchPlugin” est remplacé ici par un plugin perso “LoseStopPlugin”)
effect TBonusT
name 'bonus temps';
image 'étoile';
property Bonus : Integer;
on Execute do
var
RemainingTime: Cardinal;
begin
RemainingTime := LoseStopPlugin.GetPlayerData(Player).RemainingTime;
LoseStopPlugin.GetPlayerData(Player).Delay := RemainingTime + Bonus;
LoseStopPlugin.Start(Player);
end;
end;

Et ça fonctionne nickel !.. C'est exactement ce que je voulais !!!
Merci beaucoup !!.

(Pour ma curiosité : C'est quoi un “Cardinal” ?)
sjrd
Un Cardinal c'est comme un Integer sauf qu'il ne peut pas être négatif. Il peut aller de 0 à 2^32 - 1 inclus. Un Integer va de -2^31 à 2^31 - 1 inclus.
DerF_44
Ok, merci.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB