AccueilAccueil  FAQFAQ  RechercherRechercher  S'enregistrerS'enregistrer  MembresMembres  Connexion  

Partagez | 
 

 index (ind) des objets

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


Messages : 5

MessageSujet: index (ind) des objets   Lun 29 Fév 2016 - 15: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 **
avatar

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

MessageSujet: Re: index (ind) des objets   Lun 29 Fév 2016 - 16: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)

_________________
Vous voulez un jeu pas comme les autres? Voici DeFRaG :
 
Revenir en haut Aller en bas
http://kabcorp.fr
onilink_
Modérateur
avatar

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

MessageSujet: Re: index (ind) des objets   Lun 29 Fév 2016 - 16: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

MessageSujet: Re: index (ind) des objets   Lun 29 Fév 2016 - 17: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
avatar

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

MessageSujet: Re: index (ind) des objets   Lun 29 Fév 2016 - 20: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é




MessageSujet: Re: index (ind) des objets   

Revenir en haut Aller en bas
 
index (ind) des objets
Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» objets de la Marine
» 19.00$ à 20.00$ indexé!! C'est quoi ça??
» les objets nécessaires à l'homme....et dans la vraie vie
» -Les Pages Oranges- INDEX
» Vente objets Noukie's et Musti

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: