Description d'une partie d'un objet

Pour discuter des langages que nous utilisons pour réaliser nos jeux : problèmes, solutions, suggestions...

Modérateurs: Stormi, Otto Grimwald

Description d'une partie d'un objet

Messagepar Adrien le Mar Fév 09, 2010 11:41 pm

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??
Avatar de l’utilisateur
Adrien
Très Ancien
 
Messages: 1101
Inscription: Mar Aoû 24, 2004 9:23 am
Localisation: Montpellier, France

Re: Description d'une partie d'un objet

Messagepar Otto Grimwald le Mer Fév 10, 2010 12:12 am

Tu posais l'autre coup la question de ce que pouvait apporter Inform 7 :twisted:
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 :

Code: Tout sélectionner
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 :
Code: Tout sélectionner
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: Tout sélectionner
[ 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;
      }
];


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...

Avatar de l’utilisateur
Otto Grimwald
Très Ancien
 
Messages: 3031
Inscription: Mar Aoû 24, 2004 12:02 pm

Re: Description d'une partie d'un objet

Messagepar Adrien le Mer Fév 10, 2010 9:18 am

Bien vu, merci!

Effectivement sur Inform 6 c'est plutôt relou....... grumflglflg...
Avatar de l’utilisateur
Adrien
Très Ancien
 
Messages: 1101
Inscription: Mar Aoû 24, 2004 9:23 am
Localisation: Montpellier, France

Re: Description d'une partie d'un objet

Messagepar Akien le Mer Fév 10, 2010 5:45 pm

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 ;)
Avatar de l’utilisateur
Akien
Grand Ancien
 
Messages: 298
Inscription: Mer Mai 09, 2007 1:31 pm
Localisation: En Allemagne, en France ou au Danemark, ça dépend

Re: Description d'une partie d'un objet

Messagepar Otto Grimwald le Mer Fév 10, 2010 5:55 pm

Il y a un exemple ici :
http://www.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."
Avatar de l’utilisateur
Otto Grimwald
Très Ancien
 
Messages: 3031
Inscription: Mar Aoû 24, 2004 12:02 pm


Retourner vers Questions techniques et aide pour votre code

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité

cron