Bonjour !
J'ai une question à propos de cette sacrée fonction repeatedly execute !
Son existence est très réjouissante, car elle permet de faire beaucoup de choses, et ça c'est super. Seulement, je me demande à quel point on peut lui demander des choses sans avoir peur d'alourdir la fluidité du jeu.
Par exemple, j'utilise cette fonction dans le "repeatedly execute always" du global script (donc cette fonction est appellée tout le temps même quand le jeu est en pause) :
- Code:
-
function repeatedly_execute_always()
{
GUIControl *bouton=GUIControl.GetAtScreenXY(mouse.x, mouse.y);
GUI *guicheck=GUI.GetAtScreenXY(mouse.x, mouse.y);
if (bouton != null && bouton.AsButton!=null && bouton.AsButton.Text != "New Button")
{
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;
}
else if (guicheck!=null)
{
for (int f=0 ; f < guicheck.ControlCount ; f++)
{
if (guicheck.Controls[f].AsButton != null) guicheck.Controls[f].AsButton.TextColor=0;
}
}
}
Cette fonction me permet d'avoir des boutons de GUI dont le texte se colore en blanc lorsque la souris passe dessus, et redeviennent noirs lorsque la souris est ailleurs.
Dans certains cas rares, certains boutons restent blancs car cette fonction ne marche que pour le GUI en cours d'affichage. Des fois, j'ai plusieurs GUI affichés de différentes tailles, et si par exemple en cliquant sur un bouton un des GUI disparaît, le bouton sur lequel j'ai cliqué restera avec le texte blanc car il m'aurait fallu repasser sur son GUI pour qu'il redevienne noir.
Du coup, je m'imagine augmenter cette fonction en faisant que lorsqu'on n'est pas avec la souris sur un bouton de GUI, cela va scanner tous les boutons de tous les GUI de mon jeu et leur rendre la couleur du texte noire.
Mais faire une telle chose serait peut-être fatale pour la fluidité ?
Ou alors, faire un système où la fonction n'est appellée que les n cycles de jeu, pour qu'elle ne fonctionne pas non stop et pour soulager l'ordi qui travaillera sans cesse ?
En clair, je me demande à quel point on peut demander des choses complexes dans ce repeteadly execute. C'est valable pour mon problème de texte de GUI noir ou blanc, mais à terme, je pourrais avoir envie de l'utiliser pour autre chose, mais je voudrais pas que le jeu rame sur des ordis un peu lents...