Se connecter

Informatique

Création de Jeux

Sujet : J'aide les personne dans Game maker
chopsueys
Niveau 16
01 juillet 2014 à 21:12:40

mouse_x et mouse_y sont les variables de coordonnés de la souris.

-Braid
Niveau 24
02 juillet 2014 à 02:54:10

Merci c'est exactement ce que je cherchais.

Rassurez moi, l'apparence du score est changeable non ? :(

tuliusdetritus
Niveau 3
02 juillet 2014 à 17:39:45

je crois pas nn

-Braid
Niveau 24
02 juillet 2014 à 17:55:57

Tu ne crois pas mais tu as un doute.

chopsueys
Niveau 16
03 juillet 2014 à 01:44:46

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

-Braid
Niveau 24
03 juillet 2014 à 05:20:17

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.

chopsueys
Niveau 16
03 juillet 2014 à 10:28:44

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

-Braid
Niveau 24
03 juillet 2014 à 15:02:15

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.

tuliusdetritus
Niveau 3
03 juillet 2014 à 17:57:02

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

-Braid
Niveau 24
03 juillet 2014 à 18:02:26

tuliusdetritus -> Oui mais t'as beau dire ça, moi je ne connais quasi rien donc ça ne m'avance pas :noel: 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..

MoiNonPlus5
Niveau 6
05 juillet 2014 à 01:51:49

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: https://www.noelshack.com/2014-27-1404517835-test1.png

chopsueys
Niveau 16
05 juillet 2014 à 10:49:55

C'est surement à cause de la view. Essaye avec un port on screen et un view in room identique.

MoiNonPlus5
Niveau 6
05 juillet 2014 à 19:43:55

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.

Pseudo supprimé
Niveau 9
06 juillet 2014 à 17:37:04

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 :question:

Comment qu'on fait ?

-Braid
Niveau 24
10 juillet 2014 à 14:50:06

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)

chopsueys
Niveau 16
10 juillet 2014 à 15:54:07

@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.

-Braid
Niveau 24
10 juillet 2014 à 16:35:24

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é.

-Braid
Niveau 24
10 juillet 2014 à 16:55:46

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 :noel:

chopsueys
Niveau 16
10 juillet 2014 à 18:08:47

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
}
}

-Braid
Niveau 24
10 juillet 2014 à 22:34:28

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...

Sujet : J'aide les personne dans Game maker
   Retour haut de page
Consulter la version web de cette page