AccueilAccueil  FAQFAQ  RechercherRechercher  S'enregistrerS'enregistrer  MembresMembres  Connexion  

Partagez | 
 

 détruire un objet en étant dessus et non dès que l'objet est touché

Voir le sujet précédent Voir le sujet suivant Aller en bas 
AuteurMessage
GMLfan
Nouveau


Messages : 4

MessageSujet: détruire un objet en étant dessus et non dès que l'objet est touché   Dim 12 Nov 2017 - 17:21

Bonjour à tous Smile

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 Smile

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 :=)
Revenir en haut Aller en bas
arthuro
Utilisateur confirmé: Rang ****
avatar

Messages : 1336
Localisation : Grenoble / Méribel
Projet Actuel : CBNA

MessageSujet: Re: détruire un objet en étant dessus et non dès que l'objet est touché   Dim 12 Nov 2017 - 18: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();
}

_________________

D'autres jeux :
In The Cube
In the cube 2
Revenir en haut Aller en bas
GMLfan
Nouveau


Messages : 4

MessageSujet: Re: détruire un objet en étant dessus et non dès que l'objet est touché   Dim 12 Nov 2017 - 18: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?

Revenir en haut Aller en bas
GMLfan
Nouveau


Messages : 4

MessageSujet: Re: détruire un objet en étant dessus et non dès que l'objet est touché   Dim 12 Nov 2017 - 20: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 ;(

Revenir en haut Aller en bas
onilink_
Modérateur
avatar

Messages : 8923
Localisation : Montpellier
Projet Actuel : Planet Centauri
OniDev

MessageSujet: Re: détruire un objet en étant dessus et non dès que l'objet est touché   Lun 13 Nov 2017 - 9: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?

_________________
                 
Revenir en haut Aller en bas
GMLfan
Nouveau


Messages : 4

MessageSujet: Re: détruire un objet en étant dessus et non dès que l'objet est touché   Mar 14 Nov 2017 - 18: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...
Revenir en haut Aller en bas
onilink_
Modérateur
avatar

Messages : 8923
Localisation : Montpellier
Projet Actuel : Planet Centauri
OniDev

MessageSujet: Re: détruire un objet en étant dessus et non dès que l'objet est touché   Mer 15 Nov 2017 - 9: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:
http://cbna.forumactif.com/t13101-faq-instances
Section "Je veux déplacer mon objet case par case, comment faire?"

_________________
                 
Revenir en haut Aller en bas
Contenu sponsorisé




MessageSujet: Re: détruire un objet en étant dessus et non dès que l'objet est touché   

Revenir en haut Aller en bas
 
détruire un objet en étant dessus et non dès que l'objet est touché
Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 1 sur 1

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