Rechercher - Liste des utilisateurs
Version complète : Afficher un compteur sur la vue du joueur
Accueil » FunDelphi » Afficher un compteur sur la vue du joueur
1 2 3
intello
Quelle est le language fundelphi
pour afficher (un compteur par exemple) quelque chose au dessus du labyrinthe afin que lorsque le joueur se déplace , elle reste affichée à son emplacement

Merci

sjrd
Je ne comprends pas bien ton besoin :/ Tu veux afficher une petite image, ou du texte, qui se déplace avec le joueur, c'est ça ? Ou bien tu veux que ça reste toujours au même endroit sur l'écran.

La première proposition ressemble à la bouée, par exemple, qui se déplace avec le joueur. La deuxième, c'est plutôt comme les barres d'écoulement du temps dans Temple de l'Eau.

Pourrais-tu, éventuellement, préparer une image de ce à quoi tu voudrais que ça ressemble, au final ? Ca m'aiderait beaucoup à comprendre ce que tu veux.
sjrd
Tu peux faire ça comme ceci :
unit CounterOnView;

components
  CounterOnViewPlugin: TCounterOnViewPlugin;

plugin TCounterOnViewPlugin
  hint 'Plugin qui affiche un compteur en haut à gauche de l''écran';

  property MsgFormat: string;
  property Counter: Integer;
  property BackColor: TColor32;
  property FontColor: TColor32;

  on AfterConstruction do
  begin
    inherited;

    MsgFormat := '%d';
    BackColor := clWhite32;
    FontColor := clBlack32;
  end;

  on DrawView do
  var
    Text: string;
    Extent: TSize;
    TextX, TextY: Integer;
  begin
    Bitmap.Font.Name := 'Arial'; {don't localize}

    Text := Format(MsgFormat, [Counter]);

    Extent := Bitmap.TextExtent(Text);
    TextX := 8;
    TextY := 8;

    Bitmap.FillRectTS(TextX-2, TextY, TextX+Extent.cx+2, TextY+Extent.cy,
      BackColor);

    Bitmap.RenderText(TextX, TextY, Text, 0, FontColor);
  end;
end;

end.

Ca va écrire la valeur de Counter en haut à gauche de l'écran. Tu peux modifier les couleurs du texte et du fond dans l'inspecteur d'objet, en sélectionnant le plugin.

Si tu veux afficher "Le compter vaut 3 !" à la place de juste "3", il suffit, dans l'inspecteur d'objet, de mettre "Le compter vaut %d !" dans la propriété MsgFormat. Le %d sera remplacé par la valeur du compteur.
intello
ET que faut il rajouter Pour que le compteur affiche le tag du joueur ??
sjrd
Eh bien il faut remplacer la ligne :
Text := Format(MsgFormat, [Counter]);

par
Text := Format(MsgFormat, [Player.Tag]);


Désolé pour le délai de réponse, j'ai été très occupé ces derniers jours.
intello
Et pour augmenter le tag du joueur de façon permante (Lorsqu'il est à 1 , il monte à 2; lorsqu'il est à 2, il monte à 3...) ??

(L'équivalent de
Player receives 1 Tag;
)
sjrd
Player.Tag := Player.Tag + 1;

Mais du coup, tu vois, j'aurais utilisé le Counter de CounterOnViewPlugin :
CounterOnViewPlugin.Counter := CounterOnViewPlugin.Counter + 1;

En utilisant Counter dans Format() comme j'avais mis au début.

C'était ça le but du Counter, a priori.
intello
A propos de ce compteur (j'aurais dû le dire + tôt) lorsqu'on affiche un message ou fait d'autre commandes que je n'ai pas pu identifier, le compteur grossit . Peut -on empêcher cette action ???

Merci de la réponse (à venir).
sjrd
Gné ? C'est pas possible, ça

Peux-tu m'indiquer précisément une suite d'événements qui conduisent à ce que le compteur augmente alors que tu ne l'as pas demandé ?
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