AccueilAccueil  FAQFAQ  RechercherRechercher  Dernières imagesDernières images  S'enregistrerS'enregistrer  Connexion  
Le deal à ne pas rater :
Pokémon EV06 : où acheter le Bundle Lot 6 Boosters Mascarade ...
Voir le deal

 

 Problème de côté

Aller en bas 
4 participants
AuteurMessage
Bahamut
Pas mal



Messages : 39

Problème de côté   Empty
MessageSujet: Problème de côté    Problème de côté   EmptyVen 13 Avr 2012 - 17:19

Bonjour à tout le monde,
pour mon jeu de plateforme j'ai fais un ennemi qui, quand mon personnage a le dos tourné (quand j'appuis sur gauche sur le clavier), avance vers moi, mais le problème c'est que si je passe derrière lui, et que j'appuie sur gauche, l'ennemi avance alors qu'il devrait s'arrêter...
Bon, je me suis peut-être pas bien exprimé mais si quelqu'un a compris sinon je réexpliquerais, il peut m'expliquer comment faire ? Merci !
J'ai essayer avec une variable mais je n'ai pas réussi non plus...
Revenir en haut Aller en bas
Johny Wessmuller
Utilisateur confirmé: Rang *



Messages : 233

Problème de côté   Empty
MessageSujet: Re: Problème de côté    Problème de côté   EmptyVen 13 Avr 2012 - 17:59

Je crois que j'ai compris.
En gros tu as un jeu en 2d vue du côté, le perso avance dans les stages vers la droite parce que c'est là bas qu'est la sortie, c'est ça ?
Du coup quand tu dis que le perso a le dos tourné quand tu mets gauche, c'est par rapport à son objectif, me trompe-je ?

Ton ennemi et ton perso jouent un peu le rôle d'un fantôme et de Mario, non ?

Bref, d'après moi ton pb, c'est que quand tu dis au fantôme d'avancer lorsque tu appuie sur gauche.
Alors que tu veux qu'il avance lorsque tu lui tourne le dos, or s'il est vrai que l'appuie sur la touche bas induit tourner le dos à l'objectif, tourner le dos à l'objectif n'induit pas tourner le dos au fantôme.
Donc il faut que tu remplace la condition touche bas par une condition qui teste directement si tu fais dos au fantôme.

Comment savoir si tu fais dos au fantôme ?
Tu fais dos au fantôme si tu regarde vers la droite alors que tu es à sa droite, où si tu regardes vers la gauche alors que tu es à sa gauche.

Comment savoir si tu es à sa droite ou à sa gauche ?
En testant si mario.x-fantome.x est plus grand ou plus petit que 0 (si c'est plus grand tu es à sa droite)
Comment savoir vers où tu regardes ?
Je te conseille de faire comme ceci, c'est ce que je fais. Dans create, tu crées une variable droite que tu initialise à true puisque je suppose qu'à la base ton perso regarde vers la droite.
Puis dans ton step tu met if keyboard_check_pressed(vk_left) droite=false;
if keyboard_check_pressed(vk_right) droite=true;
Ou de manière équivalente dans le Event - Key Press de la touche droite tu met la variable droite à true
et dans celui de la touche gauche tu le mets à false.

Donc le fantôme te suit dans les cas suivants
1)if((mario.x-fantome.x<=0)&&!droite)
2)if (droite&&(mario.x-fantome.y>=0))

De rien.

[edit]Par contre détaille tes problèmes stp

_________________
C'est bon je suis passé tu peux mettre résolu
Revenir en haut Aller en bas
Bahamut
Pas mal



Messages : 39

Problème de côté   Empty
MessageSujet: Re: Problème de côté    Problème de côté   EmptyVen 13 Avr 2012 - 18:37

Salut, merci de m'avoir répondu mais je comprend pas trop la fin quand tu dis :
1)if((mario.x-fantome.x<=0)&&!droite)
2)if (droite&&(mario.x-fantome.y>=0))
Peux-tu m'expliquer stp ?
Revenir en haut Aller en bas
Bahamut
Pas mal



Messages : 39

Problème de côté   Empty
MessageSujet: Re: Problème de côté    Problème de côté   EmptyVen 13 Avr 2012 - 18:44

Je fais habituellement du D&D, il n'y a pas moyen de faire ça sans code ?
Revenir en haut Aller en bas
Johny Wessmuller
Utilisateur confirmé: Rang *



Messages : 233

Problème de côté   Empty
MessageSujet: Re: Problème de côté    Problème de côté   EmptyVen 13 Avr 2012 - 19:03

Si, excuses, je me suis un peu emballé à la fin.

Je te le fais en français parce qu'il n'y a pas d'image de D et D
Tu dis
1)si mario.x-fantome.x>=0 ET si droite==true ( if droite==true est équivalent à if droite)
2)si mario.x-fantome.x<=0 ET si droite==false (if droite==false est équivalent à if !droite)

Le ET s'écrit && en gml. En D&D tu n'as qu'à imbriquer les conditions pour ne pas faire de ET.
Sinon tu copies ce que je t'ai écris, sans le if, dans une condition.

Pour la petite anecdote j'ai programmé en D&D jusqu'à très tard, malgré les conseils de ceux qui m'aidaient quand j'avais un problème, et je te conseille le gml à 100%.

Si tu écris bien ton code en l'indentant bien comme il faut, en l'aérant bien, en mettant des noms de variable explicites, c'est plus clair que le D&D. C'est un coup à prendre, mais C'EST un coup A PRENDRE.
Et même pour que l'on t'aide, il est préférable que tu programmes en gml.

Il te faudra juste apprendre les noms des fonctions, tu n'imagines même pas tous les avantages que ça te donnera.

_________________
C'est bon je suis passé tu peux mettre résolu
Revenir en haut Aller en bas
Bahamut
Pas mal



Messages : 39

Problème de côté   Empty
MessageSujet: Re: Problème de côté    Problème de côté   EmptyVen 13 Avr 2012 - 19:15

J'ai recopié ce que tu as écrit mais il indique une erreur..
Revenir en haut Aller en bas
Johny Wessmuller
Utilisateur confirmé: Rang *



Messages : 233

Problème de côté   Empty
MessageSujet: Re: Problème de côté    Problème de côté   EmptyVen 13 Avr 2012 - 19:37

Euh, tu as changé mario en le nom de ton objet perso et fantome en le nom de ton ennemi ?
Est-ce que tu as bien créé la variable droite et fait ce que je t'ai dit avec ?

Quand je disais de copier dans une condition, c'était copier ça (mario.x-fantome.x<=0)&&!droite dans une condition
et ça droite&&(mario.x-fantome.y>=0) dans une autre.
La première dira : si tu es à gauche de l'ennemi ET que tu regardes vers la gauche
La seconde dira : si tu es à droite de l'ennemi ET que tu regardes vers la droite

S'il y a toujours une erreur, copie là ici, ou même envoie ton gmk.

Sinon, sache que j'ai arrêté le D&D lorsque je me suis rendu compte qu'il m'empêchait de progresser.

_________________
C'est bon je suis passé tu peux mettre résolu
Revenir en haut Aller en bas
Bahamut
Pas mal



Messages : 39

Problème de côté   Empty
MessageSujet: Re: Problème de côté    Problème de côté   EmptyVen 13 Avr 2012 - 19:53

Enfaite j'ai mis sa :
Event - Key Press si j'appuie sur gauche fleche_d (MasterHiggins.x-Bestioleacoquille.x<=0)&&!droite
Event - Key Press si j'appuie sur droite fleche_d droite&&(MasterHiggins.x-Bestioleacoquille.y>=0)

MasterHiggins c'est le nom du personnage et Bestioleacoquille c'est le nom de l'ennemi.
Revenir en haut Aller en bas
Johny Wessmuller
Utilisateur confirmé: Rang *



Messages : 233

Problème de côté   Empty
MessageSujet: Re: Problème de côté    Problème de côté   EmptySam 14 Avr 2012 - 12:17

Salut

Les conditions font partie des fonctionnalités de base de la programmation, tout comme les variables. Tu les utilises même sans le savoir quand tu mets un event Event - Key Press par exemple, c'est comme si tu disais SI on se met à appuyer sur cette touche ALORS et là tu mets ce que tu veux qu'il se passe, en tout cas, c'est FORCEMENT comme ça que c'est retranscrit par game maker, et c'est pour ça que on peut faire la même chose sans utiliser Event - Key Press mais en mettant une condition if keyboard_check_pressed() dans le step.(if indique une condition et keyboard_check_pressed est le nom en gml de la fonction qui signifie que l'on commence à appuyer sur une touche, le if keyboard_check_pressed(nomDeLaToucheEnGml) est donc la traduction en gml de Event - Key Press touche).

Voilà pour le petit cours, mais je te conseille fortement d'avoir un minimum de base en programmation si tu veux progresser, de toutes façons tu seras obligé à un moment de faire un peu de théorie parce que la pratique sans les connaissances ne mène pas très loin.
Aussi je te conseille par exemple de lire au moins la partie 1 "Partie 1 : [Théorie] Les bases du débutant" de ce cours de C http://www.siteduzero.com/tutoriel-3-14189-apprenez-a-programmer-en-c.html qui l'un des cours les plus visités de programmation en français. Même si tu ne souhaite pas apprendre le C, ce qui est expliqué dans ce cours (à part la syntaxe du language qui lui est évidemment propre) te donnera de bonnes bases qui te seront utiles dans n'importe quel langage (donc même en D&D).

Donc, ces fameuse conditions, qu'est-ce que c'est en D&D ?
Il y en a plusieurs, en voici qq unes :
Problème de côté   Action_if : Si l'expression que tu écris dans le champ est vraie
Problème de côté   Action_iffree S'il n'y aurait pas collision à la position (à indiquer) avec un objet (solide ou non solide, à indiquer)
Problème de côté   Action_ifvariableSi la variable (à indiquer) a une valeur plus petite/plus grande/égale (à indiquer) à (à indiquer)
Problème de côté   Action_elseSinon

Toutes les icônes bleues de cette forme indiquent une condition. La plus utile est celle avec un point d'interrogation, car tu peux remplacer n'importe quelle autre condition par celle-ci si tu connais la traduction en gml de ce que tu veux tester. L'autre plus utile est le else.
Pour faire un test, tu met donc une icône de ce type contenant ce que tu veux tester, et tu met juste en dessous ce qui se passe si la condition est vérifiée. Si tu veux qu'il se passe plusieurs choses, tu les met entre Problème de côté   Action_begin et Problème de côté   Action_end.

Bref, avec ce que je t'ai montré, on voit qu'il y a au moins deux façons de faire ce que je t'ai dit.
En mettant (MasterHiggins.x-Bestioleacoquille.x<=0)&&!droite dans un Problème de côté   Action_if
et en mettant droite&&(MasterHiggins.x-Bestioleacoquille.y>=0) dans un autre Problème de côté   Action_if.
Ou bien en faisant :
Problème de côté   Action_ifvariableMasterHiggins.x-Bestioleacoquille.x et cocher larger than (strictement pus grand) et cocher NOT (donc plus petit ou égal) et dans value tu mets 0
Problème de côté   Action_begin
Problème de côté   Action_ifvariabletu mets equal to, après tu peux mettre !droite dans variable et true dans value, ou tu peux mettre droite dans variable et true dans value et cocher NOT, ou tu peux mettre droite dans variable et false dans value.
Problème de côté   Action_begin
Apres tu mets ce que tu veux qu'il se passe
Problème de côté   Action_end
Problème de côté   Action_end

Ca c'est pour le premier. Pour le second, c'est :
Problème de côté   Action_ifvariableMasterHiggins.x-Bestioleacoquille.x et cocher smaller than (strictement plus petit) et cocher NOT (donc plus grand ou égal) et dans value tu mets 0
Problème de côté   Action_begin
Problème de côté   Action_ifvariabletu mets equal to, après tu mets mettre droite dans variable et true dans value, on ne va pas tous les faire.
Problème de côté   Action_begin
Apres tu mets ce que tu veux qu'il se passe
Problème de côté   Action_end
Problème de côté   Action_end

De rien

_________________
C'est bon je suis passé tu peux mettre résolu
Revenir en haut Aller en bas
supmaster004
Utilisateur confirmé: Rang *****
supmaster004


Messages : 2188
Localisation : x=23.256842 y=43.456879
Projet Actuel : Faire des parodies de jeux en 1h

Problème de côté   Empty
MessageSujet: Re: Problème de côté    Problème de côté   EmptySam 14 Avr 2012 - 13:24

Oh my god, so much D&D -_-

_________________
Spoiler:

L'IRC du cbna: IRC du cbna
projets terminés: prédation mouse vs keyboard ACII OC_ nintendo nightmare fuyez lavanville
Revenir en haut Aller en bas
Bahamut
Pas mal



Messages : 39

Problème de côté   Empty
MessageSujet: Re: Problème de côté    Problème de côté   EmptySam 14 Avr 2012 - 13:44

Merci ça marche mais uniquement du côté droit donc quand je passe derrière lui, que dois-je mettre quand je suis devant lui ?
Revenir en haut Aller en bas
Johny Wessmuller
Utilisateur confirmé: Rang *



Messages : 233

Problème de côté   Empty
MessageSujet: Re: Problème de côté    Problème de côté   EmptySam 14 Avr 2012 - 14:08

Je t'ai donné les deux conditions. La première c'est quand ton perso est à gauche.
La seconde c'est quand il est à droite.

Donc tu sais déjà dans laquelle tu as fait une erreur. Indique ce que tu as fait dans celle-ci pour que l'on puisse t'aider.
Mais sinon, essaie de comprendre ce que je t'ai expliqué, et comme ça tu pourras ben t'aider toi même.
Ou même envoie ton gmk. Bon je serai pas là cette semaine (et là je vais faire un foot) mais je laisse les autres te répondre.

_________________
C'est bon je suis passé tu peux mettre résolu
Revenir en haut Aller en bas
Johny Wessmuller
Utilisateur confirmé: Rang *



Messages : 233

Problème de côté   Empty
MessageSujet: Re: Problème de côté    Problème de côté   EmptySam 14 Avr 2012 - 14:19

Par exemple, est-ce que tu comprends pourquoi
MasterHiggins.x-Bestioleacoquille.x>=0
signifie que ton perso est à droite, et pourquoi
MasterHiggins.x-Bestioleacoquille.x<=0
signifie qu'il est à gauche ?

Déjà, commence par lire ça
http://www.lecbna.org/pages/tuto_list.php?subaction=showfull&id=1196110485&archive=&start_from=&ucat=11&
puis ça
http://www.lecbna.org/pages/tuto/Initiation-GM/index.html
puis ça
[edit(j'avais mis un mauvais lien)]http://www.lecbna.org/pages/tuto_list.php?subaction=showfull&id=1208882768&archive=&start_from=&ucat=11&
et sache que pour les coordonnées (x,y), voici comment ça marche (l'unité est le pixel) : Problème de côté   9541

Il y a des tas de tutos ici : http://www.lecbna.org/pages/tuto_list.php

_________________
C'est bon je suis passé tu peux mettre résolu
Revenir en haut Aller en bas
Bahamut
Pas mal



Messages : 39

Problème de côté   Empty
MessageSujet: Re: Problème de côté    Problème de côté   EmptySam 14 Avr 2012 - 15:06

J'ai compris !...Et j'ai réussi ! gnii
Merci d'avoir pris du temps pour me montrer cette documentation et ces explications de game maker !
supmaster004 fleche_d Il y'a écrit que je suis débutant et que je ne comprend pas très bien TOUTES les actions du D&D donc je préfère tout comprendre avant de me lancé dans le codage happy1 .
Revenir en haut Aller en bas
chopsuey
Utilisateur confirmé: Rang ***
chopsuey


Messages : 523
Localisation : saint etienne
Projet Actuel : All work and no play makes Jack a dull boy
All work and no play makes Jack a dull boy
All work and no play makes Jack a dull boy
...

Problème de côté   Empty
MessageSujet: Re: Problème de côté    Problème de côté   EmptySam 14 Avr 2012 - 17:16

Non supmaster004 a écrit: ho mon dieu plein de glisser déposer -_-
Revenir en haut Aller en bas
Bahamut
Pas mal



Messages : 39

Problème de côté   Empty
MessageSujet: Re: Problème de côté    Problème de côté   EmptySam 14 Avr 2012 - 17:59

Ah je croyais qu'il avait dit : "Oh mon dieu tellement de Drag and Drop" C'est comme ça que je traduis sa moi.
Revenir en haut Aller en bas
Johny Wessmuller
Utilisateur confirmé: Rang *



Messages : 233

Problème de côté   Empty
MessageSujet: Re: Problème de côté    Problème de côté   EmptySam 14 Avr 2012 - 18:15

De rien et drag and drop se traduit par glisser et déposer je crois. D'un autre côté, comme je te l'ai expliqué il n'a pas tort sur le fond.
[edit] N'oublies pas ma signature awesome

_________________
C'est bon je suis passé tu peux mettre résolu
Revenir en haut Aller en bas
Bahamut
Pas mal



Messages : 39

Problème de côté   Empty
MessageSujet: Re: Problème de côté    Problème de côté   EmptySam 14 Avr 2012 - 18:21

Oui je sais...
Revenir en haut Aller en bas
Contenu sponsorisé





Problème de côté   Empty
MessageSujet: Re: Problème de côté    Problème de côté   Empty

Revenir en haut Aller en bas
 
Problème de côté
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Côté animation....
» détection du coté du perso pour tirer
» [Résolu] Recuperer la variable de l'objet d'a coté ?
» problème de tire + problème destroy.
» Action en fonction du coté où l'objet sort de la vie_RESOLU

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
Forum Le CBNA :: Développement :: Entraide débutants-
Sauter vers: