Aide pour un jeu de match-3

Bonjour !
J’ai découvert GD il y a une semaine, et je me suis dit qu’il me permettrait peut-être de réussir à créer un jeu de match-3 alors que j’étais coincé en Ruby.
Bref, j’apprends peu à peu à manipuler le logiciel, et j’ai déjà réussi à lui faire afficher divers éléments de l’écran de jeu, et à lui faire générer des pions choisis aléatoirement : j’ai créer un unique objet “pion” avec plusieurs animations, chacune contenant l’image d’un des pions du jeu.

J’ai également créé des variables pour que chaque pion ait une abscisse comprise entre 1 et 8 (le n° de colonne quoi), une ordonnée (le n° de ligne) et une couleur (le n° de l’animation).

Il me faudrait maintenant pouvoir vérifier si pour un pion donné, le pion d’à côté a la même couleur. Y a-t-il un moyen de référer a un objet par ses variables ? Si oui lequel ? Si non, avez-vous une idée d’une meilleure approche pour ce qui est de la génération des pions ?

Je vous remercie d’avance de prendre un peu de votre temps pour réfléchir à mon problème.

Bonjour,

Je ne sais pas si j’ai bien compris ce que tu cherches à faire.
Mais, il existe les variables d’objets qui sont des variables qui appartiennent à chaque objet. On peut imaginer par exemple une variable d’objet vie appartenant à des objets “soldat”. Dans cet exemple, chaque soldat possède sa propre vie.

Je ne connais pas le jeu dont tu veut parler.
mais a ce que tu en dis, (et a ce que j’en ai compris)
Il y a des pion répartis sur une gille et définis par leur couleur

Peut-être une occasion d’utiliser l’extension tableaux?
(je ne sais pas si elle gère les tableaux en 2D actuellement… )

edit : ahhh, c’est ça le jeu dont tu parlait

Si, elle gère les tableaux à 2 dimensions de nombres et de textes.

@victor : oui ^^ J’avais bien compris et c’est ce que j’ai fait, pour reprendre ton exemple avec les soldats, c’est comme si j’avais créé plusieurs soldats avec chacun une variable vie et une variable munition, et que je voulais que le soldat à qui il reste 1 munition tire sur le soldat à qui il reste 1 pt de vie (ouais, ils sont cons, ils se tuent entre eux…)

@hypneos : je vais essayer de regarder cette extension et voir ce qu’elle peut faire (effectivement, ça semble être une bonne piste, vu que c’est avec un tableau 2D que je gérais mes pions en Ruby). Merci !

EDIT : Oui ! le tableau 2D était la bonne solution ! Merci à vous deux d’avoir répondu.

Bonjour, voilà, j’ai un nouveau soucis pour mon jeu :
J’ai fait un bouton pause, de sorte que le joueur puisse stopper le jeu (musique + éventuellement chronomètre) au besoin.
J’ai un évènement pour mettre en pause et un pour sortir.
Si je fais :
–Conditions évènement 1–
le curseur est sur bouton_paus
le bouton left de la souris est appuyé

–Conditions évènement 2–
le curseur est sur bouton_paus
le bouton right est appuyé
Ca marche très bien

Mais si je fais :
–conditions évènement 1–
le curseur est sur bouton_paus
le bouton left de la souris est appuyé
la variable pause est = à 0
–actions évènement 1–
…actions diverses…
Faire =1 à la variable pause

–conditions évènement 2–
le curseur est sur bouton_paus
le bouton left de la souris est appuyé
la variable pause est = à 1
–actions évènement 2–
…actions inverses de l’évènement 1…
Faire =0 à la variable pause
Là, rien ne se passe… Enfin, si, j’ai l’impression que ça passe en pause, mais juste une fraction de seconde, et quelque soit la rapidité ou la longueur de mon clic gauche.

En soi, c’est pas bien grave puisque je sais comment contourner le problème. Mais je me dis que ça va se représenter pour la sélection d’un pion, quand pour les sous évènements, je vais vouloir tester si une variable (appelons-là “select”) est 0 ou 1 et agir en fonction.
de plus, ça pourrait aussi poser problème si quelqu’un d’autre joue à mon jeu, et ne passe pas par la scène des règles avant de commencer à jouer. Il va mettre en pause, et pas comprendre pourquoi la pause ne s’arrête pas quand il reclique sur le bouton.
Est-ce que vous avez une solution à me proposer pour que ça marche en utilisant le clic gauche pour les deux conditions ?
Merci d’avance !

Ton “clic” est plus lent que GD

Le logiciel a le temps de vérifier les deux évenements avant que tu ne lache le bouton

Il faudrait mettre un délai à la première condition…

Tu peut replacer ta variable par un chrono :

cela attendra que le chrono ai atteint au moins une seconde.

Ce n’ai peut-être pas la meilleure solution, ou la plus adaptée à tes besoins, mais…

PS: J’ai l’impression d’avoir laissé passer quelques fautes de français, merci de me signaler si ça recommence

On en revient à ce dont j’avais parlé dans “aide à la création” aussi, les fronts montant.
Pour régler le problèmes je serais plus partant pour implanter 3 valeurs à ta variable:

Condition 1 identique

Condition 2 ( à créer )
-Si variable = 1 ET clique gauche = NON appuyé
Alors variable = 2

Condition 3 ( à modifier )
Remplace -Si variable = 2 par: Si variable = 2

ça devrai être plus simple comme ça non ?

Merci à Mariotetri et Hypnéos. je pensais bien que le problème devait être lié à la vitesse de traitement trop rapide rapport à mon clic.
J’essaierai vos deux méthodes pour voir celle qui me convient le mieux et j’éditerai ce message pour vous dire ce qu’il en est.

PS : Hypneos, je t’envoie la correction de tes fautes par MP, parce que là, c’est un peu hors sujet.

EDIT : Alors j’ai testé les deux méthodes. Celle d’hypneos ne dispense pas de la création d’une variable… donc du coup, j’ai préféré celle de mariotetri avec un petit rajout : il faut encore une valeur supplémentaire à la variable(mettons 3 ^^), quand on fait le clic qui quitte la pause, et faire un quatrième évènement qui teste cette nouvelle valeur et que le bouton de la souris ne soit pas appuyé avant de remettre la variable à 0. Encore merci à vous deux.

Exact, mais je n’ai juste pas jugé utile de le préciser… A moins que je n’ai désiré te tendre un piège xD

                                           Daidalos 1 _ 0 hypneos

C’est moi qui y gagne, au final, na!
j’ai triplé mes chances de réussite au bac de français (+0.02%) :stuck_out_tongue:

sinon, mariotetri, pourrions-nous avoir plus d’informations?
je suis friant de ce genre de jeux

Euh… Je veux bien mais de quoi tu me parles exactement. Paske je suis pas vraiment le créateur du sujet là xD.

oups, la gaffe j’ai confondu les deux pseudos (^~^)7

je voulais, bien sur parler à Daidalos, mais j’étais absorbé par l’origine du pseudo de mariotetri
(ouais, je venais juste de comprendre, chui un peu lent à la détente parfois)