mouse_x et mouse_y sont les variables de coordonnés de la souris.
Merci c'est exactement ce que je cherchais.
Rassurez moi, l'apparence du score est changeable non ?
je crois pas nn
Tu ne crois pas mais tu as un doute.
Il ne faut pas que tu te serve du "score" de GM c'est vraiment nul.
Il faut le faire toi même.
Tu utilises une variable (pas "score" bien sûr)
Cette variable est = à 0 au début puis tu l'augmente quand il le faut.
Pour afficher le score tu peux faire un draw_text:
draw_text(x,y,"score: "+string(variable du score))
Anisi il y aura écrit par exemple:
score: 234
Bon je vais certainement passer pour un relou mais comment faire le lien avec l’événement d'un objet ?
J'aimerais que le score justement augmente à chaque fois qu'on clique sur un objet. Mais je ne peux pas mettre cette fonction dans l’événement en question, je ne peux que la mettre dans un événement draw.
Car là si je mets juste le code que tu viens de mettre, ça met le score avec 0, mais le score ne sait pas à quel moment il doit augmenter. A moins que j'ai encore pas fait gaffe à un détail ou je ne sais quoi.. Putain j'ai vraiment du mal, normalement Game Maker c'est censé nous simplifier la vie mais je comprends quand même pas.
Tu veux bien que ce score apparaisse en continu ? qu'il soit présent à l'écran tout le temps et pas seulement quand tu clics sur les objet ?
Tu créer un objet score et dans son draw (ou le draw-gui si tu es sur studio c'est plus pratique) le draw_text pour pouvoir afficher ce score.
j'ai pas pensé à le préciser mais utilise une variable "global" les variables global contrairement au "local" ne sont pas affecté à un objet. Une variable est par défaut local par exemple x est une variable local de l'objet en question. Pour qu'une variable devienne global il suffit décrire devant "global." exemple global.Score=0
Tu augmente cette variable quand tu clic sur tes objets: global.Score+=1
Merci, j'ai mis du temps à savoir ou fallait mettre tel ou tel truc. Au final j'ai réussi mais j'ai pas fait totalement comme tu m'as dit.
en fait pour changer l apparence il faut que tu prenne de sprites de chiffres qui te conviennent et que tu creer toi même ta variable score manuellement
tuliusdetritus -> Oui mais t'as beau dire ça, moi je ne connais quasi rien donc ça ne m'avance pas Puis oui je savais qu'on pouvais mettre des sprites à la place mais je ne sais pas comment et je pense que ce serait trop long..
Bonjour, j'ai un petit problème avec les graphismes. Je viens de faire un essai avec des tiles faites vite fait. Je les ai faites en 32*32, puis regroupées sur un tileset (bref normal).
Sauf que le résultat est assez bof à cause des sortes de "vides" entre les carrés, des petits espaces bien dégueux. A quoi peuvent-ils être dus? A la résolution?
Un screen:
C'est surement à cause de la view. Essaye avec un port on screen et un view in room identique.
Effectivement ça résout le problème. Du coup, j'allais poster une question par rapport à un éventuel zoom possible sans effets néfastes, mais j'ai préféré une autre solution: Pour l'environnement extérieur, ça convient, et pour les intérieurs vu que je veux être plus prêt du perso, je vais lui attribuer un sprite plus grand et le tileset sera également plus grand.
salut étant débutant (quelques heures sur game maker), j'ai un petit problème d'affichage.
Lorsque j'ajoute l'event draw à mon perso avec un sprite "coeur"
j'arrive à les afficher,et mon perso perd 1 coeur quand il se fait toucher et en récupère 1 lorsqu'il ramasse une pièce. "C'est bien" me direz-vous sauf que mon personnage devient invisible
Comment qu'on fait ?
Une question toute bête, comment fait on pour coder une exception ?
Je voudrais faire en sorte qu'on puisse juste cliquer sur un élément, que tout le reste risque de mettre fin à la partie (ou fasse apparaître un message, mais ça je sais comment, c'est juste le coup de la zone)
@skainsoft
C'est normal, utiliser l'event draw annule l'affichage classique.
écrit ça dans un execute code dans l'event draw et ton sprite réapparaitra:
draw_sprite_ext(sprite_index,image_index,x,y,image
_xscale,image_yscale,image_angle,-1,image_alpha)
(Normalement c'est en une seul ligne bien sûr)
@-Braid
Dans ton event clic sur l'objet ajoute une condition:
if permission_de_cliquer==1
{
...
}
Tu peux même le faire en D&D ça.
dans le create de l'objet initialise cette variable à 0
A toi de définir la valeur de cette variable à 1 pour l'instance choisit.
Vue le peut d'infos que tu donnes je ne peux t'aider plus.
Ben en fait pour être plus clair, dans le jeu actuel, je veux faire en sorte qu'on puisse cliquer que sur un objet, tout le reste de la map est non cliquable,enfin si mais si le joueur clique sans faire exprès en dehors de l'objet, donc sur la zone non cliquable, je ferais apparaître un message et se sera la fin du jeu.
Le seuil problème c'est que je ne sais pas comment coder ça, le fait qu'on puisse cliquer que sur un objet.
A la limite peut être que je peux créer un objet ayant la même taille que le fond, tout en étant transparent, ce qui lancera le message si on clique dessus, et mettre l'autre objet par dessus...
Je vais essayer de chercher avec la base que tu m'as donné.
J'ai crée un fond invisible, si on clique sur ce fond, le message apparaît.
J'ai ensuite mis l'objet en premier plan mais si on clique sur l'objet ça "traverse", ça active le fond et ça lance quand même le message.
Donc j'ai voulu jouer l'apprenti sorcier en faisant
if instance_activate_object(button_game) == 1
{
instance_deactivate_object(fond)
}
Mais en fait ça ne sert à rien, ça ne marche pas, j'ai essayé ua moins
Ben c'est pas compliqué alors.
à placer dans le step de l'objet cliquable.
if mouse_check_button_pressed(mb_left)
{
test_id=instance_position(mouse_x,mouse_y,obj_joue
ur)
// cette variable renfermera l'id de l'objet si il se trouve à la position de la sourie lors du clic.
if test_id!=id // test_id ne renferme pas l'id de l'objet
{
// alors c'est que tu n'as pas cliqué sur cette objet
}
}
Bon eh bien même en cliquant sur l'objet, ça prend en compte le fond et ça met quand même le message, je pense voir pourquoi tu voulais mettre ce code, mais comme d'habitude quelque chose m'échappe et ça ne fonctionne pas...