Guide de construire de deux fonctions d'événements avancés

3

Taggé

Statistiques

9,206 visites, 9,721 vues

Outils

Partager

License

This tutorial is licensed under CC BY 4.0. Please refer to the license text if you wish to reuse, share or remix the content contained within this tutorial.

Published on 2 Aug, 2014. Last updated 25 Feb, 2019

Construire 2 offre des fonctionnalités avancées dans la fiche de l'événement. Ceux-ci peuvent permettre aux utilisateurs d'experts pour tirer le meilleur parti du système de l'événement, ce qui permet une logique plus complexe que normalement possible avec les événements standard. Ce tutoriel présente les caractéristiques d'événements qui sont destinés à un usage avancé ou travailler différemment à des événements normaux, avec quelques trucs et astuces.

Ce tutoriel est destiné aux utilisateurs expérimentés. Assurez-vous de lire [Comment fonctionnent événements] [1] si vous ne l'avez pas déjà, comme ce tutoriel s'appuie sur ces bases.

Conditions spéciales

L'objet du système a trois conditions qui fonctionnent différemment à des conditions normales. Pour plus d'informations, voir [Conditions de système] [2] dans le manuel.

Trigger fois en vrai

Cette condition fait effectivement un continu véritable événement dans un déclencheur. Il teste "si ne pas atteindre cette condition dernier tick". Habituellement, il est placé comme la dernière condition à un événement, parce que si elle est la première condition, il doit être atteint immédiatement et donc jamais satisfait de son test.

Un des endroits Trigger fois est utile est de jouer des sons. Considérons le cas suivant:

[Un mauvais cas pour la lecture audio.] [8]

C'est une erreur commune - rappelez-vous que l'événement est exécuté à chaque tick, qui est d'environ 60 fois par seconde sur la plupart des ordinateurs -. Et les résultats dans le son en cours de lecture et rejoué en continu tant que la variable de santé du joueur est égale à 0 Souvent, les sons de résultats terrible. Au lieu de cela, nous voulons jouer un effet sonore de la première fois que le compteur de la santé est égal à 0 Ajout Trigger fois parvient.:

[A correctement joué son effet.] [9]

Maintenant le son ne jouera la première fois santé atteint 0. Elle ne jouera plus jusqu'à santé changements à autre chose puis revient à 0, quand il va jouer un seul son à nouveau.

Une astuce utile est de mettre Trigger fois par lui-même dans un groupe d'événements:

["Déclenchez une fois" dans un groupe.] [10]

Si le groupe est activé et désactivé pendant le jeu, ce sera exécuter l'événement une fois lorsque le groupe est activé. Il agit comme une sorte de «groupe Le permis« déclencheur.

Choisissez tous

Comme décrit dans Comment Événements travail , les événements travaillent généralement par filtrage instances qui ne remplissent pas les conditions. Un sous-ensemble d'instances sont laissés qui répondent à toutes les conditions, les actions exécutées sur les cas.

Choisissez tout est la seule condition qui fonctionne en sens inverse: il restaure tous les objets, les conditions suivantes afin choisis dans tous les cas à nouveau. Il est difficile de trouver un exemple simple intuitive, mais il peut être utile pour les utilisateurs avancés d'avoir à traiter avec sous-événements profondément imbriquées où il est pratique pour réinitialiser les objets ramassés.

Autres

L'événement Autres fonctionne si l'événement précédent n'a pas fonctionné. Il ne peut pas être placé après un déclenchement, et doit être le premier état ​​à l'événement. Si l' Autres n'est pas au bon endroit, il apparaît en rouge, indiquant que vous devez le déplacer, comme indiqué ci-dessous. Vous ne pouvez pas prévisualiser ou exportez votre projet si Autres conditions sont au mauvais endroit, car la logique n'a pas de sens.

[Une condition est mal placé 'Else'.] [3]

Un lieu commun Autres est utile, c'est quand basculer un drapeau ou variable. Souvent les nouveaux utilisateurs font l'erreur suivante pour passer une variable, dans ce cas, lorsque vous appuyez sur l'espace:

[Un mal configuré bascule.] [4]

Remarquez comment si Mémento est 0, il est mis à 1, mais le prochain événement met immédiatement à 0 nouveau, parce que Mémento est égal à 1! (C'est là que l'ordre des événements est important: rappelez-vous les événements courent de haut en bas.) Cet événement n'a pas l'effet escompté et Mémento reste à 0, peu importe combien de fois l'espace est enfoncée.

Une solution est de mettre Mémento à 1 - Mémento . Cependant, ceci ne fonctionne que pour les nombres, et n'est pas toujours très lisible. Autres peut résoudre le problème:

[L'événement de basculement fixe.] [5]

Maintenant en appuyant sur Espace bascule correctement Mémento entre 0 et 1, car le Autres ne fonctionne que si l'événement précédent n'a pas fait.

Appuyant sur X est un [raccourci clavier] [6] pour ajouter un événement Autres après l'événement sélectionné.

Note Autres ne pas ramasser des objets. Il littéralement signifie «dernier événement n'a pas couru". Prenons l'exemple suivant:

[A l'utilisation trompeuse d'Else.] [11]

L'intention peut être de rendre les monstres sur l'écran tournent vers le joueur, et faire le reste orientée vers le bas de 90 degrés. Il ya deux problèmes avec cela. Tout d'abord, l'événement Autres ne fonctionnera pas du tout si toutes les monstres sont à l'écran, depuis le premier événement a courir si l' Autres ne fonctionne pas. Deuxièmement, même si l' Autres événement ne s'exécute, il ne prend pas spécifiquement les monstres qui sont hors de l'écran: elle affecte tous les monstres, car il ne prend pas les instances. Dans ce cas, il est préférable de remplacer simplement le Autres avec un inversé Est à l'écran état, comme indiqué ci-dessous. Cela aura l'effet escompté sur les instances et sur ​​les hors écran.

[Une alternative à l'utilisation d'autre.] [12]

Autres peuvent également être enchaînés pour "else-if" blocs en ajoutant des conditions supplémentaires pour l' Autres événement, puis en ajoutant un autre Autres Si après cela. Ceci est illustré ci-dessous.

[Sinon, si la chaîne.] [7]

Ce peut être lu:

Si ItemCount est 0: définir le texte à "Vous n'avez pas d'articles!"

Sinon, si ItemCount est 1: «Vous avez un article" définir le texte à

Autre: définir le texte à "Vous avez beaucoup d'articles!"

Cela imite ailleurs si les chaînes de langages de programmation.

Bien boucles

Une autre condition de système est intéressant, c'est la boucle Bien . Les autres boucles (répéter, pour, for-each) sont relativement simples, mais Bien fonctionne un peu différemment et ainsi de son propre mérite mention.

Bien gère l'événement infiniment jusqu'à ce que:

- Une condition suivante il devient fausse, ou

- L'action Arrêter boucle de système de est utilisé.

Le plus souvent il sera utilisé avec une condition qui la suit, comme ceci:

[Un exemple boucle while.] [17]

Cela permet de garder de déplacer le lecteur 1 pixel vers le haut jusqu'à ce qu'il ne chevauche 'Ground'. Il se produit instantanément, donc se répétera autant de fois qu'il le faut jusqu'à ce que «chevauchement de Ground 'devient fausse.

Veillez à ne pas créer accidentellement des boucles infinies. Si la condition ne devient jamais fausse pendant la boucle, ou le «Bien» condition est utilisé seul sans un 'Stop boucle' action, il sera bloqué alors qu'il boucle à l'infini.

»Et« blocs contre »ou« blocs

Événements normaux utilisez 'et' logique: tous les conditions doivent être remplies pour les actions à exécuter. En d'autres termes, "condition 1 ET 2 ET état ​​de la condition 3 ..." doit être vrai. En revanche, 'Ou' blocs exécutés pour tout de leurs conditions qui sont vraies. En d'autres termes, ils courent si "condition 1 OU 2 OU l'état de la condition 3 ..." sont vraies. Prenons l'exemple suivant:

[Choisir conditions dans un bloc 'Or'.] [13]

Le but ici est d'arrêter n'importe quel monstre qui est à gauche de X = 500 ou ci-dessus Y = 500. Dans ce cas, si toutes les instances répondent à l'état, l'événement se déroule. Les cas sélectionnés pour l'événement seront ceux correspondant soit état.

Notez comment dans les blocs ordinaires "ET", les conditions suivantes filtrent cas ne répondant pas à l'événement - progressivement réduire le nombre d'instances d'élite. En revanche, "OU" blocs ajouter cas de réunion de l'événement - progressivement augmenter le nombre d'instances d'élite.

Par défaut les blocs d'événements sont la normale »Et« type. Ils peuvent être activés à et de »ou« blocs par un clic droit sur la marge de l'événement et de sélection Marque d'Or 'bloc , ou en appuyant sur la [raccourci clavier] Y [6].

Normalement, un seul déclencheur peut être placé dans un événement. Toutefois, cela ne s'applique pas aux blocs »ou«. Déclencheurs multiples peuvent être ajoutés à l'événement un «ou», et les actions de fonctionner lorsque l'un des déclencheurs dans le feu de l'événement. Par exemple, ci-dessous montre un événement qui joue un son si soit le C touches du clavier A, B ou sont pressés:

[Une 'Or' événement avec déclencheurs.] [15]

Notez que depuis blocs normaux («et») ne peuvent pas contenir plusieurs déclencheurs, cet événement ne peut pas être retourné pour un «et» bloc jusqu'à ce que tous, mais l'un des déclencheurs sont supprimés.

Utilisation de sous-événements, vous pouvez combiner »ou« blocs »et« avec des blocs de créer une logique plus avancé. Par exemple:

[Une avancée Or 'exemple.] [16]

Cela jouera un son sur appuyant sur A, B ou C, aussi longtemps que le contrôle ou Maj sont également organisées vers le bas. Vous pouvez également: "Si (A ou B enfoncé pressé ou C enfoncé) ET (contrôle est en panne ou Maj est enfoncée): jouer son".

Si le deuxième événement n'était pas un bloc 'Or », il serait lu" de contrôle est arrêté et le décalage est vers le bas ". Par conséquent, un son jouerait si vous maintenez la touche Ctrl + Maj et appuyez sur A, B ou C. En variante: "Si (A ou B enfoncé enfoncé OU C enfoncée) et (de contrôle est arrêté et le décalage est vers le bas): jouer son". Donc, en utilisant sous-événements peut vous aider à prendre la logique conditionnelle plus avancé.

Autres fonctions avancées utiles

ID uniques (UID) et instance identifiants (IID)

UID et IID sont souvent utiles pour les utilisateurs avancés, par exemple la cueillette de pointe.

Un UID peut être utilisé comme une "référence" à un objet. Un UID peut être stockée dans une variable et l'objet plus tard repris avec le Choisissez par Unique ID état.

IID peuvent être utilisés pour récupérer les expressions de l'instance spécifique. Par exemple, Sprite (1). X retournera coordonnée X de la deuxième Sprite (depuis Construct 2 utilise des indices de base zéro). Pour plus d'informations, voir expressions Object dans la saisie manuelle sur [expressions] [19]. IID peuvent également être utilisées pour sélectionner des cas à l'aide du Choisissez nième occurrence l'état du système, mais méfiez-vous que l'IID n'est pas une référence permanente à un objet: pour qu'un UID doit être utilisé à la place.

Pour plus d'informations, voir [UID et IID dans le manuel] [18].

Le plus avancé de tous ...

Si vous avez une expérience de programmation précédente ou tout simplement pour passer à l'étape suivante, vous pouvez utiliser le [Javascript SDK] [20] pour écrire vos propres plug-ins et les comportements pour Construct 2. La page [aperçu] [21] a une liste des liens pour vous aider à apprendre Javascript.

  • 0 Comments

Want to leave a comment? Login or Register an account!