| détruire un objet en étant dessus et non dès que l'objet est touché | |
|
|
Auteur | Message |
---|
GMLfan Nouveau
Messages : 4
| Sujet: détruire un objet en étant dessus et non dès que l'objet est touché Dim 12 Nov 2017 - 18:21 | |
| Bonjour à tous Etant débutant avec l'utilisation de GM, veuillez m'excuser par avance si ma question parait stupide. Voilà, mon soucis c'est que j'ai un personnage et je souhaiterai qu'à chacun de ses mouvements, dès lors qu'il rencontre un tile/objet particulier, (en l'occurrence un objet pomme) cet objet en question disparaisse.Pour ce faire j'ai choisi de tout mettre (mouvement de mon perso + condition de collision) dans un step event plutot qu'avec des drag and drop; ceci afin d'éviter que l'objet ne disparaisse avant le déplacement COMPLET de mon perso (ie pas au moment de la collision comme en utilisant un drag and drop de collision) : if keyboard_check(vk_left) { x-= floor(32/32)*32; if place_meeting(x,y,obj_pomme){ with (other){ instance_destroy(); } } }Le problème c'est qu'en faisant cela, ce sont tous mes objets pommes qui disparaissent.... sauriez vous comment détruire seulement la pomme que mon personnage touche?Merci beaucoup pour votre aide NB: Au passage il y a peut etre plus simple pour déplacer mon perso dans mon quadriallage de 32*32 mais je ne sais pas comment on fait pour le faire de façon + simple (en cochant une option par exemple). Bien entendu pour le déplacement aussi je pourrai aussi utiliser du drag and drop mais je préfère tout faire entièrement en GML dans ce cas de figure. N’hésitez pas à me reprendre si mes choix sont mauvais, je suis là pour apprendre j'aime qu'on me reprenne si ce que je fais n'est pas bon :=) |
|
| |
arthuro Utilisateur confirmé: Rang ****
Messages : 1483 Localisation : Paris Projet Actuel : Diagon https://arthursonzogni.com/Diagon
| Sujet: Re: détruire un objet en étant dessus et non dès que l'objet est touché Dim 12 Nov 2017 - 19:11 | |
| Bonjour ! Tu peux sans doute utiliser la fonction instance_place(x,y,objet). Elle retourne l'id de l'instance qui est en x,y. Par exemple, est ce que ceci fonctionne: - Code:
-
var pomme = instance_place(x, y, obj_pomme); if (pomme != noone) { with(pomme) instance_destroy(); }
|
|
| |
GMLfan Nouveau
Messages : 4
| Sujet: Re: détruire un objet en étant dessus et non dès que l'objet est touché Dim 12 Nov 2017 - 19:32 | |
| Bonsoir arthuro, merci pour ta réponse rapide :O Ouaou t'es trop fort ça marche c'est exactement ce que je voulais!! Par contre des fois quand le perso avance il y a des pommes qui sont "sautées", elles ne sont pas toutes détruites (j'en mets plein cote à cote)... Serait ce à cause du type de mouvement que j'ai choisit (le suivit du quadrillage 32x32 de ma room)? Ou la vitesse?
|
|
| |
GMLfan Nouveau
Messages : 4
| Sujet: Re: détruire un objet en étant dessus et non dès que l'objet est touché Dim 12 Nov 2017 - 21:58 | |
| en gros quand je bouge mon perso (en bas en l’occurrence sur la capture d'écran ci dessous), certaines pommes présentes sur la trajectoire du perso ne se destroy pas ;( Je sais pas quoi faire ;( je me sens tellement nul c'est surement super simple ;( |
|
| |
onilink_ Modérateur
Messages : 9180 Localisation : Montpellier Projet Actuel : Planet Centauri
OniDev
| Sujet: Re: détruire un objet en étant dessus et non dès que l'objet est touché Lun 13 Nov 2017 - 10:21 | |
| 1. Quelle est la vitesse de ton perso? 2. As tu définis un masque pour tes objets? 3. Ou as-tu placé le code d'Arthuro? |
|
| |
GMLfan Nouveau
Messages : 4
| Sujet: Re: détruire un objet en étant dessus et non dès que l'objet est touché Mar 14 Nov 2017 - 19:26 | |
| Bonsoir onilink_, désolé pour la réponse tardive, pour répondre à tes question: La vitesse de mon perso est fonction du quadrillage du coup? (ie (32/32)*32 .... quand je mets (16/32)*32 ça ne va plus lol... tu me dira si la division donne toujours des entiers je n'ai pas besoin d'arrondir avec floor...) Le code d'arthuro est là du coup. Un masque euh... je n'ai pas changé la hitbox du perso: et j'ai laissé l'origine du perso à 0,0 pour que le perso suive bien le quadrillage Je souhaite que mon perso ne suive que le quadrillage c'est pour ça que j'ai bidouillé en utilisant ça... peut être existe il une solution + simple, quoi qu'il en soit mon perso saute des cases du coup lol... |
|
| |
onilink_ Modérateur
Messages : 9180 Localisation : Montpellier Projet Actuel : Planet Centauri
OniDev
| Sujet: Re: détruire un objet en étant dessus et non dès que l'objet est touché Mer 15 Nov 2017 - 10:27 | |
| Déjà, floor(32/32)*32, ça ne sert a rien, tu évalues une expression constante. Autant mettre juste 32. (32/32 ça fait 1, floor(1) ça fait 1, et 1*32 ça fait 32). Essayes de changer ton masque en "manual" afin qu'il fasse la taille d'une case, je pense que ton perso va trop vite et ça peut sauter des cases. Pourquoi ne pas faire un mouvement case a case "smooth"? Tu as des fonctions toutes prêtes ici: https://cbna.forumactif.com/t13101-faq-instancesSection "Je veux déplacer mon objet case par case, comment faire?" |
|
| |
Contenu sponsorisé
| Sujet: Re: détruire un objet en étant dessus et non dès que l'objet est touché | |
| |
|
| |
| détruire un objet en étant dessus et non dès que l'objet est touché | |
|