[RESOLU] Problèmes multiples

Bonjour, j’ai un problème sur la création de mon écran d’accueil et son menu (liste des problèmes au second paragraphe).
Le fond d’écran s’affiche bien correctement, mais j’ai peur que ca change si je modifie la résolution.
Je mets en pièce jointe les images de ce que j’ai fait, ce sera peut-être plus simple à comprendre.
Mon écran d’Accueil utilise trois calques, 1 pour l’image de fond, 1 pour les boutons, et 1 pour le curseur.
Les boutons se modifient si le curseur de la souris passe dessus (2sprites d’animation par bouton, chacun en direction nulle à zéro avec Normal de coché). Ca c’est bon puisque c’est ce que je désire obtenir.
Le curseur de la souris est correctement modifié (j’ai pu m’apercevoir à mes dépens qu’on ne peut utiliser les curseur et qu’on doit convertir les extensions .cur en extensions images).
Au niveau du curseur le fonctionnement me convient aussi. J’ai assigné une variable de scène à chacun de mes bouttons.

Ce que je n’arrive pas à faire, c’est changer de scène ou quitter le jeu. Je désire pour cela le valider avec un clic gauche de souris ou par l’appui sur la touche Entrée lorsque le bouton voulu est sélectionné.
Le second problème que je rencontre concerne le changement de la sélection d’un bouton lorsque j’utilise les flèches haut et bas :

  • Les boutons se sélectionnent à la vitesse de l’éclair et clignotent (ca va trop viiiite !!! :smiley: )
  • Le bouton Nouvelle partie est sélectionné, j’utilise la touche clavier flèche haut, le bouton suivant qui est sélectionné (avant que ca ne défile trop rapidement) est Quitter au lieu de Crédits (avec la souris ca marche, crédits est sélecgtionné si je passe le curseur dessus)
  • De charger je passe à Nouvelle partie si j’utilise le bouton flèche bas au lieu d’arriver sur le bouton Quitter
  • De Quitter je passe à Nouvelle partie si j’appuie sur la touche clavier flèche bas
  • Un clic sur le bouton Quitter ne quitte pas le jeu. La pression de la touche Entrée non plus même si le bouton Quitter est sélectionné.
  • Le bouton Credits n’est jamais sélectionné en utilisant les touches fléches haut ou bas avec le clavier, mais est sélectionné si on mets la souris dessus. Les touches flèche haut et flèche bas du clavier selectionnent bien respectivement les boutons Quitter et Nouvelle partie.

J’en conclus donc que le problème est situé entre la chaise et l’écran (donc que c’est moi qui merde :smiley: ). J’ai beau réfléchir mais je galère à trouver d’ou proviennent les erreurs. Le fait de regarder les exemples m’aide un peu mais ce qui m’inquiète le plus c’est comment quitter ou changer de scène, car tous les exemples que j’ai regardé ne comprennent qu’une scène.

Afin d’être le plus clair possible sur l’explication de mes problèmes, je mets en pièce jointe mes écrans ainsi que la configuration des évènements que j’ai effectuée.
Je reste disponible pour vous apporter des détails supplémentaires si vous le désirez, en espérant que vous puissiez m’apporter de l’aide. Cela me fera sûrement gagner un temps fou si vous pouvez m’aider.
En vous remerciant par avance, je souhaite à tous les visiteurs du forum une bonne journée.Mes bugs pour mon jeu…png

Lorsque tu testes le jeu dans Game Develop, les actions de changement de scènes, de fermeture du jeu et de mise en plein écran ne marchent pas.

Je vois bien ton soucis, c’est le même problème que si tu veux jouer un son en cliquant sur un bouton (sans qu’il ne tourne en boucle si le gars reste cliquer dessus.

Rajoute un chrono !

En condition

La variable machin est = a 1 la touche up est appuyé la valeur du chrono "bouton" est superieur à 1 seconde

et tu utilises remettre à zero le chronomètre dans les évènements.

Un seul chrono suffit pour tout !

PS : ia moyen de faire mieux niveau programmation, genre avec une incrémentation de variable et un petit algorythme qui calcul la position

T’imagines si tu dois faire ça pour plein d’objet ? Ou faire plein de modif ? ^^ Mais bon ça fonctionne c’est le principal :stuck_out_tongue:

Oui, changer de scène coupe les sons, donc le problème est réglé :smiley:

J’ai pas compris ce que t’as dit crone (enfin le rapport) lui le problème c’est que le bouton clignote trop vite :astonished:

Merci beaucoup pour toutes ces réponses, j’ai réussi à avancer. J’ai un autre problème (excuser mon niveau de newb). J’ai maintenant plusieurs scènes. Celle sur laquelle je bosse m’embête au niveau souris. J’utilise un menu avec curseur vertical. Quand je clique sur la flèche du bas, c’est bien pris en compte, la barre latérale descend au centre (2), mais des que je lâche le clic de la souris, ca remonte (1). Je voudrais qu’elle reste fixée au centre après un clic de souris même si je lâche le clic gauche.
Je me prends la tête dessus depuis un bon moment déjà mais je ne vois toujours pas mon erreur/ce que j’oublie.

Comme d’habitude je vous mets une image en pièce jointe afin d’être explicite.
D’avance, merci beaucoup.

[attachment=0]probleme.PNG[/attachment]

Ton screenshot est incomplet : il nous faut aussi voir les actions qui remettent la barre en haut (lorsque tu cliques sur la flèche haut).

Ce serait plus logique si tu vérifiais la valeur Y de ta barre latérale, plutot que t’embêter avec une variable texte dont tu n’es pas sûr de son initialisation.

Je te conseillerais aussi de mettre “+456” au lieu de “=456”.
Tu pourrais donner un mouvement plus naturel avec une valeur moindre, genre “+50”.
Et là encore, mets un chrono, sinon le clic souris sera pris en compte 2 000 fois.

Pense que GD raisonne en centième de seconde : chaque 1/100s (plus ou moins), tous les évènements sont vérifiés.
Ils faut donc que tu ralentisses ceux qui dépendent des actions de l’utilisateur.

Tout ça donnera :

Si Chronometre BarreLaterale supérieur à 0.5 Si clic gauche remettre le chronometre BarreLaterale à zéro Si BarreLaterale.Y < (FlecheBas.Y-49) et CurseurSouris en collision avec FlecheBas BarreLaterale.Y + 50 Si BarreLaterale.Y > (FlecheHaut.Y+49) et CurseurSouris en collision avec FlecheHaut BarreLaterale.Y - 50

Tu peux aussi moins te prendre la tête, et faire un menu avec onglet.
Comme ça, pas de barre latérale à gérer. :stuck_out_tongue:

Les chronomètres fonctionnent donc de cette manière (GD raisonne en centième de seconde)?
Merci j’y vois un peu plus clair maintenant.

Faire un menu avec onglet ne correspond pas à ce que je désire faire ( Trop d’éléments à insérer dans les onglets (12 éléments donc 12 onglets), cela rendrait la taille des onglets trop petite et illisible, et esthétiquement par rapport aux scènes précédentes ca donnerait un mauvais rendu. La barre latérale m’est aussi indispensable car j’ai plusieurs paragraphes coupés en trois parties, et le texte des paragraphes est déja petit).

Par souci de répondre à Victor et de clarifier les évènements que j’ai inséré, je rajoute tous ceux qui contiennent des actions sur la barre latérale ou les boutons de flèches haut et bas.
Merci pour vos indications, je continue à chercher.

J’ai essayé de mettre +456 au lieu de =456 et dans ce cas, la barre latérale disparait.

[attachment=0]problemevenements.PNG[/attachment]

La barre latérale ne disparait pas, elle est à y = 456 * 1000.
Donc hors de l’écran.

La première chose à faire, c’est de rajouter un chronomètre, parce que sinon, tu n’auras jamais le temps de voir comment GD réagit à ton clic de souris.

Ensuite, lorsque tu mets “au lancement de la scène”, tu devrais le mettre en premier évènement, pas au milieu des autres.

Le problème de ta barre latérale qui reste en haut, c’est que tu dis à GD : “vérifies en permanence que si la barre est en haut, la variable V_positionbarrelateralepleine reçoit “haut””.

Entre le moment où tu cliques avec la souris, et le moment où GD fait passer la variable à “milieu”, cet évènement la déjà fait repasser à “haut”.
Faut virer ces trois évènements (avant le 59), ou leur mettre un chronomètre pour qu’ils ne soient vérifiés que toutes les secondes par exemple.
Ca laissera un peu plus de temps à GD de modifier les variables et de réagir en conséquence.

Autre souci, vérifier en permanence que la souris n’est pas sur un élément, c’est moyen …
Il faudrait pouvoir s’en passer, ou au moins rajouter un chronomètre pour que la vérif soit faite toutes les 2 secondes.

Evènement 63, tu refais la même action qu’en 60.
Ca sert à rien, vires le 63.2 et 64.2.

Je te conseillerai aussi de faire :

Si bouton gauche cliqué et chrono supérieur à 0.5 remettre le chrono à zéro |-> si curseur en collision avec flechehaut mettre l'anim modifier la position de barrelatérale |-> si curseur en collision avec flechebas mettre l'anim modifier la position de barrelatérale

Ensuite, tu pourras virer le 66 et 67, puisque tout sera géré à partir ce clic de souris.

→ Principe des poupées russes.

EDIT :

J’ai fait un truc qui approche de ce que tu veux obtenir.
Je n’ai utilisé qu’un seul objet interactif, mais le principe est le même avec plusieurs.
A chopper ici : http://www.megaupload.com/?d=WX2I59VG

NON !!! :wink:

Voilà comment GD fonctionne : (enfin, je pense)

Effacer l’affichage du jeu ==> Gestion des objets et des chronomètres ==> Automatismes ==> Lecture des événements ==> Automatismes ==> Affichage des objet ==> Et on recommence (Effacer l’affichage du jeu).

Et donc, c’est pas forcément 100 fois par seconde que les événements sont lu. Toute la boucle que j’ai écrite précédemment est exécutée X fois (X = nombre d’image par seconde).
EDIT : Cette boucle est exécutée le plus vite possible, sauf s’il y a une limitation du FPS.

Ca revient au même.
Que ce soit 1000, 10 000 ou 20 fois, c’est bien trop rapide pour un être humain.
J’ai mis 100 pour être gentil et donner un nombre simple à retenir.
Par ailleurs, ça fait une image tous les 1.7 centièmes en 60 ips. On n’est pas très loin du 1/100s …

Merci mtarzaim pour lefichier. Je l’ai regardé et essayé d’ajouter des chronomètres sur ma scène. Maintenant, grâce à vous la première scène fonctionne parfaitement tel que je le désirais (avec toutes les touches de haut en bas et de bas en haut qui s’activent à vitesse “humaine”. J’ai tout de même du mettre un chronomètre de 0,09 pour obtenir la fluidité que je désirais, marrant !).

La seconde scène avec la barre latérale fonctionne aussi maintenant, même si j’ai galéré à comprendre et corriger mes erreurs.
Ca m’a tout de même permis de m’apercevoir que j’ai absolument rien compris aux chronomètres.
Merci pour l’aide que vous m’avez apporté.

Cordialement,