Page 1 sur 1

[RESOLU] Bouton pause et aléatoire faussé

Publié : 29 Juil 2018 17:27
par Halariar
Bonjour à tous, je n'ai pas l'habitude de poster car bien souvent je trouve la solution à mes problèmes facilement grâce à la communauté mais je n'ai pas trouvé de réponses pour mon cas cette fois-ci.

Dans mon application mobile je passe les étapes du jeu en appuyant n'importe où sur l'écran (Input.GetMouseButtonDown(0)). J'ai un bouton pause en haut à droite de l'écran et j'aimerais pouvoir appuyer dessus sans que cela compte comme un appui sur l'écran, enfin que ça ne passe pas à l'étape suivante dans mon jeu. Un petit trick pour contourner ce problème ?

Autre problème, j'utilise la fonction random.range pour obtenir des valeurs aléatoires mais les nombres sont vraiment très (mais alors vraiment trop) souvent "mauvais". Par exemple ça m'arrive d'avoir 3 fois d'affilée le même nombre en faisant 3 fois random.range(0, 10) et dans un jeu de hasard c'est assez flagrant et embêtant. Donc existe-t-il un moyen simple pour avoir des aléatoires un peu plus propres ?

Voilà merci d'avance (et désolé si ça a peut-être déjà été répondu). :hello:

Re: Bouton pause et aléatoire faussé

Publié : 29 Juil 2018 18:09
par Deceleris
Salut !

Pour ton premier problème ce n'est pas trop compliqué, une boolean te permet de détecter quand le joueur pointe un élément d'interface. Ainsi au moment ou il clique tu peut checker si il est pas en train de cliquer sur un boutton, cette bool tu la récupère en faisant EventSystem.current.IsPointerOverGameObject();

Pour ton second problème il va falloir que tu te creuse la tête, il n'y a pas de fonction miracle, tu veut qu'en gros qu'un chiffre ne sorte pas plusieurs fois d'affilé ? alors fait en sorte de stocker le chiffre précédant, et de comparer avec le nouveau avant de procéder :perv:

Bonna chança

Re: Bouton pause et aléatoire faussé

Publié : 29 Juil 2018 21:27
par Halariar
Merci c'est exactement ce que je cherchais ! Je l'ai implémenté ça marche nikel sauf que il y a des moments où j'ai d'autres textes en plus du bouton pause sur le canvas et du coup je ne peux plus avancer car je ne peux pas cliquer autre part que sur le texte (il prend presque tout l'écran). Il n'y aurait pas une fonction qui détecterait uniquement le bouton et pas tous les éléments d'UI ?

Pour l'aléatoire le problème n'est pas seulement qu'un nombre tombe plusieurs fois d'affilée, je trouve que certains nombres ne tombent quasiment jamais et que d'autres si.

Re: Bouton pause et aléatoire faussé

Publié : 29 Juil 2018 22:26
par Deceleris
Tout les éléments d'uis comme les images ou les textes, qui affichent un élément en tout cas, possèdent dans l'inspecteur une variable boolean "Raycast target", et il me semble que si tu la décoche, l'élément n'est plus détecté par la sourie, et donc n'est plus concerné par "IsPointerOverGameObject (). Je te garanti rien.

Sinon pour ton aléatoire je pense que le problème vient de toi :mrgreen:

Il est pas impossible que tu aies 10, 100 ou même 1 milliard de fois le même chiffre d'affilé, ou même qu'un nombre n'apparaisse jamais car, c'est de l'aléatoire. Bon même si dans les fait c'est très peut probable :mrgreen:

Si t'a vraiment l'impression que ton system d'aléatoire est pété, tu peut toujours compter les nombre de fois qu'un nombre apparaît, et si disproportion il y a, il faudra se pencher plus sur le problème oui

Bonne chance :hehe:

Re: Bouton pause et aléatoire faussé

Publié : 30 Juil 2018 16:23
par Halariar
Ahah parfait c'est tout bon maintenant :super:

Oui j'ai pensé à appliquer une loi des grands nombres pour voir un peu ce que ça donnerait mais bon c'est pas non plus gravissime et j'ai bien d'autres choses à faire dans mon jeu avant de passer du temps là-dessus, c'était surtout pour savoir si d'autres personnes avaient aussi la même impression que moi et si il y avait un petit truc à faire pour améliorer ça.

Merci en tout cas !

Re: Bouton pause et aléatoire faussé

Publié : 30 Juil 2018 16:56
par boubouk50
Halariar a écrit :
30 Juil 2018 16:23
Ahah parfait c'est tout bon maintenant :super:
Lorsque ton problème trouve sa solution, merci de passer le sujet en résolu pour informer les autres membres. Il te suffit d'éditer le premier message du thread et d'éditer le titre en ajoutant [RESOLU] en début de celui-ci. Je m'en occupe cette fois-ci.