AccueilAccueil  FAQFAQ  RechercherRechercher  Dernières imagesDernières images  S'enregistrerS'enregistrer  Connexion  
Le deal à ne pas rater :
Sortie PlayStation 5 Pro : où précommander la console PS5 Pro ?
Voir le deal

 

 index (ind) des objets

Aller en bas 
3 participants
AuteurMessage
tchicoheckard
Nouveau



Messages : 5

index (ind) des objets Empty
MessageSujet: index (ind) des objets   index (ind) des objets EmptyLun 29 Fév 2016 - 16:35

Bonjour à tous,

Voilà, je ne comprends pas bien comment utiliser les fonctions qui ont comme attribut (ind). Exemple object_get_sprite (ind)

Présentement, je veux que mon personnage puisse ouvrir une porte quand il est placé devant, et tourné vers elle. Pas de problème pour vérifier la position de mon objet-joueur par rapport à la porte, mais j'aimerai vérifier si le sprite actuel de l'objet_joueur est bien le bon (celui tourné vers le haut). Mais je ne sais pas quoi mettre dans le (ind) de la fonction obj_get_sprite(ind). Avec le nom de l'objet, ça ne fonctionne pas.
J'ajoute que j'ai déjà rencontré le problème pour des "instances d'index (ind)" et "sprite d'index (ind). Je ne comprends vraiment pas ce (ind)...

Merci d'avance
Revenir en haut Aller en bas
Kabcorp
Utilisateur confirmé: Rang **
Kabcorp


Messages : 315
Localisation : Savoie
Projet Actuel : trop...

index (ind) des objets Empty
MessageSujet: Re: index (ind) des objets   index (ind) des objets EmptyLun 29 Fév 2016 - 17:14

ind représente l'index d'un objet.

Si obj_player a une sprite spr_player:

Sprite=object_get_sprite(obj_player);
(La fonction te retournera spr_player)

Le fait d'utiliser des noms comme obj_player dans ses fonctions n'est pas bon si il y a plusieurs obj_player.

Chaque objet est Instancié et possede un IDentifiant. Si ton ID du obj_player est 100002, alors tu peux demander:
Sprite=object_get_sprite(100002);
(La fonction te retournera spr_player)
Revenir en haut Aller en bas
http://kabcorp.fr
onilink_
Modérateur
onilink_


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

index (ind) des objets Empty
MessageSujet: Re: index (ind) des objets   index (ind) des objets EmptyLun 29 Fév 2016 - 17:44

Et bien entendu on utilise jamais un ID sous sa forme constante, mais on enregistre l'id d'une instance a sa creation pour l'utiliser ensuite.
Par ex:

player_ins = instance_create(x, y, ObjectPlayer)


PS:
par contre object_get_sprite attend un IND d'object, pas un ID d'instance.
Pour avoir le sprite d'une instance suffit de faire instance.sprite_index
Revenir en haut Aller en bas
tchicoheckard
Nouveau



Messages : 5

index (ind) des objets Empty
MessageSujet: Re: index (ind) des objets   index (ind) des objets EmptyLun 29 Fév 2016 - 18:38

Merci à vous pour ces réponses, ça m'a bien éclairé.

Mais du coup, comment connaître l'index IND d'un objet? Pour pouvoir par exemple changer le sprite d'un objet au moment voulu, avec la fonction object_set_sprite (ind, sprite) ? J'ai d'ailleurs du mal à cerner ce qu'est l'index d'un objet (vu que si je comprends bien, l'index d'un objet n'est pas la même chose que l'ID d'une instance)
Revenir en haut Aller en bas
onilink_
Modérateur
onilink_


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

index (ind) des objets Empty
MessageSujet: Re: index (ind) des objets   index (ind) des objets EmptyLun 29 Fév 2016 - 21:25

L'index d'un objet, c'est l'identifiant unique crée par GM quand tu crées un nouvel objet dans le sous dossier des objects. Le premier vaut 0, le second 1, etc... Et si t'en supprime un ça va faire un "trou".
Tu peux obtenir l'ind d'un objet avec son nom tout bêtement.

Par exemple dans un draw affiche: draw_text(x, y, object3) bah t'auras logiquement 3.

Quand tu instancie un objet par contre, ça va générer un id unique, mais unique pour TOUTES les instances.
Donc si tu fais
ins1 = instance_create(x, y, object0)
ins2 = instance_create(x, y, object1)
bah t'auras 100000 et 100001 normalement, mais pas deux valeurs identiques.

Ça te permet donc d'identifier chaque instance comme une entité unique sans jamais confondre avec une autre.
Et a partir de cet id tu peux obtenir des infos sur l'objet, ou même obtenir l'ind de l'object avec ins.object_index.

Quand on change un sprite, généralement on change le sprite de l'instance, changer le sprite de l'objet ça veut pas dire grand chose vu que l'objet est un "moule" qui va servir a créer les instances. Donc si tu changes le sprite d'un objet toutes ses instances futures auront ce sprite.
Si tu changes le sprite d'une instance, ça va changer le sprite que pour cette instance.

D'ailleurs y a une nuance importante entre object et instance, c'est with.
with(object_ind) { foo() } va executer foo() pour toutes les instances de object_ind.
with(instance_id) { bar() } va lancer bar() que pour l'instance passé a with.

Revenir en haut Aller en bas
Contenu sponsorisé





index (ind) des objets Empty
MessageSujet: Re: index (ind) des objets   index (ind) des objets Empty

Revenir en haut Aller en bas
 
index (ind) des objets
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Comment faire un index de jeu
» sound et image index
» Grouper des objets
» Existerait-il un index de toutes les commandes GML ?
» [Résolu] Plusieurs objets d'un objet en plusieurs objets

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: