Cette page vous donne les différences entre la révision choisie et la version actuelle de la page.
ags38 17/12/2008 23:22 | ags38 30/01/2012 11:29 version actuelle | ||
---|---|---|---|
Ligne 2: | Ligne 2: | ||
---- | ---- | ||
- | ====Comprendre les bloquages de scripts==== | + | ====Comprendre les blocages de scripts==== |
Vous verrez certaines commandes listées comme "bloquant l'exécution", où l'exécution du script est | Vous verrez certaines commandes listées comme "bloquant l'exécution", où l'exécution du script est | ||
Ligne 34: | Ligne 34: | ||
Regardons la situation la plus commune dans laquelle se pose un problème. | Regardons la situation la plus commune dans laquelle se pose un problème. | ||
- | Supposons que se déclenche l'interaction // Look at inventory item // (//Regarder l'objet d'inventaire//) | + | Supposons que se déclenche l'événement //Look at inventory item// (//Regarder l'objet d'inventaire//) |
qui exécute un code pour afficher un message.\\ | qui exécute un code pour afficher un message.\\ | ||
- | |||
Supposons aussi que vous ayez du code à la fin de votre fonction on_mouse_click pour | Supposons aussi que vous ayez du code à la fin de votre fonction on_mouse_click pour | ||
- | que le personnage reste sur place après avoir exécuté les interactions de la fonction on_mouse_click.\\ \\ | + | que le personnage reste sur place après avoir exécuté les événements de la fonction on_mouse_click.\\ |
- | Vous allez découvrir que le code à la fin de on_mouse_click est en fait appelé // avant // l'interaction avec | + | Vous allez découvrir que le code à la fin de on_mouse_click est en fait appelé //avant// l'événement correspondant à |
l'inventaire. Regardons pourquoi : \\ \\ | l'inventaire. Regardons pourquoi : \\ \\ | ||
{{:threads4.gif}} \\ \\ | {{:threads4.gif}} \\ \\ | ||
- | Rappelez vous qu'AGS n'exécute pas les interactions automatiquement. Plutôt, la fonction | + | Rappelez vous qu'AGS n'exécute pas les événements automatiquement. Plutôt, la fonction |
on_mouse_click gére le clic de la souris et appelle ProcessClick pour exécuter | on_mouse_click gére le clic de la souris et appelle ProcessClick pour exécuter | ||
- | les interactions appropriées.\\ \\ | + | les événements appropriées. Ce faisant, AGS remarque que l'événement Look At Item (//Regarder l'Objet d'Inventaire//) |
+ | de la clé est associé à une fonction.\\ | ||
Mais, oh non ! les scripts des objets d'inventaire sont dans le script global et le fil global | Mais, oh non ! les scripts des objets d'inventaire sont dans le script global et le fil global | ||
- | est bloqué à cause de l'appel de on_mouse_click. Donc, le script appelé lors de l'interaction avec | + | est bloqué à cause de l'appel de on_mouse_click. Donc, le script appelé lors de l'événement avec |
l'objet d'inventaire est ajouté à la pile du fil et on_mouse_click finit de s'exécuter. Le | l'objet d'inventaire est ajouté à la pile du fil et on_mouse_click finit de s'exécuter. Le | ||
- | script d'interaction avec l'inventaire suivra après.\\ \\ | + | script d'événement avec l'inventaire suivra après.\\ \\ |
- | Vous pourriez penser que cela signifie que les interactions avec les objets et les zones interactives (//hotspots//) | + | Vous pourriez penser que cela signifie que les événements avec les objets et les zones interactives (//hotspots//) |
peuvent s'exécuter à l'intérieur de on_mouse_click, vu qu'ils utilisent le fil de la pièce, | peuvent s'exécuter à l'intérieur de on_mouse_click, vu qu'ils utilisent le fil de la pièce, | ||
comme ceci :\\ \\ | comme ceci :\\ \\ | ||
{{:threads5.gif}} \\ \\ | {{:threads5.gif}} \\ \\ | ||
+ | |||
Cependant, ce n'est pas le cas. C'est toujours le fil global qui apelle ProcessClick, | Cependant, ce n'est pas le cas. C'est toujours le fil global qui apelle ProcessClick, | ||
donc le script de la pièce va en fait être exécuté sur le fil global quand celui-ci | donc le script de la pièce va en fait être exécuté sur le fil global quand celui-ci | ||
Ligne 62: | Ligne 63: | ||
toujours, même si les autres fils sont bloqués.\\ \\ | toujours, même si les autres fils sont bloqués.\\ \\ | ||
{{:threads6.gif}} \\ \\ | {{:threads6.gif}} \\ \\ | ||
- | J'espère que cela aide à expliquer les bloquages de scripts dans AGS. | + | |
+ | J'espère que cela aide à expliquer les blocages de scripts dans AGS. | ||
Si ce n'est pas clair, parlez-en sur le forum technique. | Si ce n'est pas clair, parlez-en sur le forum technique. | ||
{{tag>français révision}} | {{tag>français révision}} |