| [RÉSOLU] place_free() d'un objet precis identifié avec son id. | |
|
|
Auteur | Message |
---|
Caly Utilisateur confirmé: Rang ****
Messages : 1285 Localisation : Haute Normandie Projet Actuel : Capturer, apprivoiser et dresser des Pokémons sauvages pour faire des spectacles de rue et en faire mon métier.
| Sujet: [RÉSOLU] place_free() d'un objet precis identifié avec son id. Mar 13 Sep 2011 - 21:54 | |
| Bonsoir, Je ne connais pas très bien le gml, et ça fait moins d'une semaine que je code dans ce langage. Je n'aime pas trop coder directement dans mes objets mais le faire dans des fonctions. J'ai donc bien compris que les fonctions se créées dans "script". Donc voici mon soucis, j’appelle une fonction dans mon objet "obj_hero" mais la fonction manipule l'objet "obj_block_magique". Mon soucis est de savoir si j'ai la place pour créer mon "block". Voici ma fonction: - Code:
-
// S'il y a deja un block dans la room. if(instance_number(obj_block_magique) >= 1) //on detruit le block with obj_block_magique instance_destroy();
// Auqu'un block n'est dans la room. else { // On creer un block et on récupére son ID block = instance_create(mouse_x,mouse_y,obj_block_magique); // Si le block touche quelque chose de solid on le suprime. if( place_free(block.x,block.y) ) // On supprime le block. with obj_block_magique instance_destroy(); }
Je pense que c'est juste une histoire de syntaxe que je ne connais pas mais impossible de trouver une réponse sur les source d'infos que j'ai consulté. Un grand merci d'avance.
Dernière édition par Caly le Mar 13 Sep 2011 - 23:07, édité 1 fois |
|
| |
onilink_ Modérateur
Messages : 9183 Localisation : Montpellier Projet Actuel : Planet Centauri
OniDev
| Sujet: Re: [RÉSOLU] place_free() d'un objet precis identifié avec son id. Mar 13 Sep 2011 - 22:00 | |
| Pourquoi if( place_free(block.x,block.y) ) ? Ça c'est plutot le bloc qui touche rien de solide :p Met plutot if( !place_free(block.x,block.y) ) En tout cas ça va, pour un 'débutant' gml t'as l'air de bien t'y faire a GM |
|
| |
Caly Utilisateur confirmé: Rang ****
Messages : 1285 Localisation : Haute Normandie Projet Actuel : Capturer, apprivoiser et dresser des Pokémons sauvages pour faire des spectacles de rue et en faire mon métier.
| Sujet: Re: [RÉSOLU] place_free() d'un objet precis identifié avec son id. Mar 13 Sep 2011 - 22:20 | |
| Merci pour la réponse onilink_.
Oui un petit oublis pour la négation. Mais je ne comprend pas trop le résultat.
Sur if( place_free(block.x,block.y) ) je peut créer le "block" où je veux et sur un if( !place_free(block.x,block.y) ) je ne peut créer aucun "block".
Je ne comprend pas.
On ne peut pas faire quelque chose de ce genre "block.place_free()" ? Car je pense que le problème viens de là, en ne marquant que "place_free" on ne sais pas trop sur qu'elle instance on exécute la fonction vus que j’appelle le script à partir d'un autre objet.
Nb: le GML étant un langage orienté objet et ressemblant au C ça va je m'en sort assez facilement faut juste que j’apprenne les variables/global/constantes/fonctions etc du langage, avec le temps ça viendra, enfin je l’espère... |
|
| |
onilink_ Modérateur
Messages : 9183 Localisation : Montpellier Projet Actuel : Planet Centauri
OniDev
| Sujet: Re: [RÉSOLU] place_free() d'un objet precis identifié avec son id. Mar 13 Sep 2011 - 22:51 | |
| En fait on gml on peut pas faire instance.methode()
T'est obligé de faire with(instance) methode()
Bref pas super pratique. |
|
| |
Caly Utilisateur confirmé: Rang ****
Messages : 1285 Localisation : Haute Normandie Projet Actuel : Capturer, apprivoiser et dresser des Pokémons sauvages pour faire des spectacles de rue et en faire mon métier.
| Sujet: Re: [RÉSOLU] place_free() d'un objet precis identifié avec son id. Mar 13 Sep 2011 - 23:06 | |
| Merci onilink_ tu viens de résoudre mon problème . Je n'avais pas trop compris à quoi servait "with" en gros c'est un pointeur d'objet, c'est assez bien à savoir vus qu'en ne travaillant que sur des fonctions je vais en avoir grandement besoin. Parcontre block = instance_create(mouse_x,mouse_y,obj_block_magique); fait que block est une variable inconue, mais bon je verais ça plus tard quand j'optimiserais mon code, là pour le moment ça fonctionne c'est le principal. Voici le code final: - Code:
-
// S'il y a deja un block dans la room. if(instance_number(obj_block_magique) >= 1) //on detruit le block with obj_block_magique instance_destroy();
// Auqu'un block n'est dans la room. else { // On creer un block instance_create(mouse_x,mouse_y,obj_block_magique); // Si le block touche quelque chose de solid on le suprime. with obj_block_magique if( !place_free(x,y) ) // On supprime le block. instance_destroy(); }
Un grand merci pour ton aide onilink_ |
|
| |
onilink_ Modérateur
Messages : 9183 Localisation : Montpellier Projet Actuel : Planet Centauri
OniDev
| Sujet: Re: [RÉSOLU] place_free() d'un objet precis identifié avec son id. Mar 13 Sep 2011 - 23:11 | |
| A ton service Et si tu veux récupérer la variable block depuis le with tu peut utiliser le mot clé other : other.block |
|
| |
Caly Utilisateur confirmé: Rang ****
Messages : 1285 Localisation : Haute Normandie Projet Actuel : Capturer, apprivoiser et dresser des Pokémons sauvages pour faire des spectacles de rue et en faire mon métier.
| Sujet: Re: [RÉSOLU] place_free() d'un objet precis identifié avec son id. Mar 13 Sep 2011 - 23:12 | |
| Bha, encore merci; tu viens encore de résoudre mon problème, je vais aller lire la doc sur "other". En tout cas merci. Je vais pouvoir optimiser le code tout de suite. |
|
| |
Contenu sponsorisé
| Sujet: Re: [RÉSOLU] place_free() d'un objet precis identifié avec son id. | |
| |
|
| |
| [RÉSOLU] place_free() d'un objet precis identifié avec son id. | |
|