Bonjour !
Nouvelle question !
Dans mon jeu, j'essaye d'économiser le nombre de sprites pour alléger le jeu (pour l'instant j'ai déjà gagné presque 1,5 Go !), notament en utilisant davantage les labels pour tout ce qui est des textes.
Concernant les boutons, j'en ai plein qui ont le même "fond", seul le texte dessus change.
Au début j'ai pensé mettre un Label sur chaque bouton, et faire que lorsque la souris survole un bouton, le label au-dessus de celui-ci change la couleur de son texte. En gros le texte est noir, et lorsque la souris le survole, il devient blanc.
Après, je me suis dit qu'on peut économiser les labels en utilisant directement le texte du bouton !
Niveau "placement", c'est plutôt bien centré, donc ça marche.
J'essaye d'écrire une fonction générique que je peux mettre dans le "repeatedly execute" du "global script" pour qu'en gros, quand ma souris survole un bouton qui a du texte, ce texte devient blanc, mais lorsqu'elle ne le survole plus, le texte redevient noir.
J'ai commencé ceci, mais le jeu plante direct en mentionnant un fameux null pointer referenced :
- Code:
-
function SourisSurBouton()
{
GUIControl *bouton=GUIControl.GetAtScreenXY(mouse.x, mouse.y);
if (bouton.AsButton.Text != "New Button" && bouton != null) // les boutons pour lesquels je n'utilise pas l'aspect "texte" (ils ont juste une image) sont ceux dont le paramètre texte est par défaut, soit "New Button" dans l'éditeur
{
for (int i=0 ; i < bouton.OwningGUI.ControlCount ; i++)
{
if (bouton.OwningGUI.Controls[i].AsButton != null) bouton.OwningGUI.Controls[i].AsButton.TextColor=0;
}
bouton.AsButton.TextColor=30;
}
}
Est-ce que quelqu'un aurait une idée de comment mettre ça en place ? Ma maîtrise des pointeurs n'est pas encore parfaite
EDIT : Par ailleurs, avec la police "CrackHouse", lorsque je fais l'alignement du texte du bouton "milieu-centré", le texte n'est pas vraiment centré, mais ça ne le fait pas pour d'autres polices comme "Gorri Sans" ou "Helvetica". Une idée du pourquoi ? Et comment résoudre ce problème ?