Description d'une partie d'un objet

Quel est selon vous le meilleur moyen de décrire un sous-élément dans un objet?!
Peut-être que c’est super évident et que je passe à côté d’un éléphant sans le voir, mais là comme ça, ben j’ai pas trop d’idée…

Genre dans Catapole, il y a cette lampe… qui contient une grille (le « tamis ») qui n’a pas d’usage particulier, mais ça serait bien de pouvoir mettre un texte spécial quand on l’examine.
Encore que dans le cas de la lampe, ptet qu’en en faisant un containeur transparent, je peux arranger la chose de manière assez logique.

Mais pour d’autres objets??

Tu posais l’autre coup la question de ce que pouvait apporter Inform 7 :smiling_imp:
Il y a un truc pas mal dans I7 qui s’appelle « is part of », ce qui permet de créer ce genre d’association, et si on déplace le parent (à supposer que c’est possible), cela déplace l’enfant avec.

Mais je ne dis pas cela pour te faire bisquer, car I7 utilisant comme support I6, on peut examiner ce qui a été créé pour l’implémenter dans le code intermédiaire en I6 :

Property component_child; ! new in I7: forest structure holding "part of" relation Property component_parent; ! new in I7 Property component_sibling; ! new in I7

ensuite pour un objet, par exemple la lampe du phare dans mon jeu qui contient une ampoule :

Object -> O60_lampephare "" /.../ with name 'lampephare' /.../ with component_child O61_ampoule

Il y a une fonction pour attacher ou détacher une partie d’un objet :

[code]
[ MakePart P Of First;
if (parent(P)) remove P; give P ~worn;
if (Of == nothing) { DetachPart(P); return; }
if (P.component_parent) DetachPart(P);
P.component_parent = Of;
First = Of.component_child;
Of.component_child = P; P.component_sibling = First;
];

[ DetachPart P From Daddy O;
Daddy = P.component_parent; P.component_parent = nothing;
if (Daddy == nothing) { P.component_sibling = nothing; return; }
if (Daddy.component_child == P) {
Daddy.component_child = P.component_sibling;
P.component_sibling = nothing; return;
}
for (O = Daddy.component_child: O: O = O.component_sibling)
if (O.component_sibling == P) {
O.component_sibling = P.component_sibling;
P.component_sibling = nothing; return;
}
];[/code]

Ainsi si on veut attacher un objet à un autre il suffit d’appeler :

MakePart(objet1,objet2);

C’est pas garanti qu’il ne faille pas autre chose, mais au moins cela donne une piste de travail et de recherches…

Bien vu, merci!

Effectivement sur Inform 6 c’est plutôt relou… grumflglflg…

Pour ma part j’ai toujours rêvé de pouvoir observer les mains du personnage principal, ses pieds, etc…
Je voulais justement poser la même question :wink:

Il y a un exemple ici :
inform-fiction.org/I7Downloa … rce_5.html

Par contre c’est indiqué que le joueur ne peut examiner une partie de son corps, mais peut-être que depuis 2006 cela a évolué, car je peux créer des objets en disant « … is part of the player. »