Puzzle Script est un moteur de jeu minimaliste pour créer des puzzles pour HTML5, il a des sources ouvertes. Des exemples de jeux prêts à l'emploi peuvent être trouvés
ici .
Partie 1. Nous créons le premier jeu sur Puzzle Script.
Puzzle Script est un programme en ligne gratuit utilisé pour créer des jeux de puzzle. Elle est surtout connue pour créer des blocs-puzzles comme mon
The Nodus . Dans cette partie, nous allons créer un jeu, après avoir étudié les fonctions de base de Puzzle Script, et dans la prochaine, nous commencerons la programmation.
Accédez au
site Web du moteur. Cliquez sur
Créer un jeu pour ouvrir l'
éditeur de script de puzzle .
Téléchargement d'exemples
Pour commencer, regardons quelques exemples. En haut de l'écran, ouvrez la liste «Charger l'exemple» et sélectionnez le premier exemple appelé «Basique». Cliquez maintenant sur "Exécuter".
L'écran de jeu apparaît. Cliquez dans sa fenêtre et appuyez sur Entrée sur le clavier.
Essayez de jouer au jeu. Votre objectif est de pousser les cases oranges vers les cases cibles noires. Lorsqu'il y a une case sur chaque cible, le niveau sera passé. Vous pouvez appuyer sur Z pour annuler le déplacement ou sur R pour redémarrer le niveau.
Faites le premier jeu
Nous allons maintenant créer plusieurs niveaux. Je vais en créer un avec vous et je conseille aux autres de créer le mien. Cliquez sur "Level Editor" dans le menu supérieur.
Si vous ne voyez pas l'écran de l'éditeur de niveau, cliquez sur «Exécuter» et démarrez le jeu. Une fois au niveau, cliquez à nouveau sur le bouton «Level Editor». Cela vous permettra de modifier le niveau auquel vous étiez juste.
Créer un nouveau niveau
En haut se trouvent les objets du jeu. Lors d'un clic gauche, l'objet sélectionné est dessiné. Le clic droit dessine un objet "d'arrière-plan". Un clic gauche sur le bord de la carte augmente sa taille, un clic droit la réduit.
Pour passer un niveau, vous devez mettre une case sur chacun des objectifs, donc Ă chaque niveau il devrait y avoir un minimum:
Faites un clic droit pour tout transformer en herbe. Cliquez ensuite avec le bouton gauche de la souris sur le bord du niveau pour l'agrandir et enfin dessinez un niveau qui ressemble à celui illustré ci-dessous.
Ajoutez-le Ă la liste des niveaux.
Après avoir créé le niveau, nous l'ajouterons à la liste des niveaux. Dans l'éditeur de niveau, cliquez sur la lettre blanche S à côté de la liste des objets de jeu pour enregistrer le niveau créé.
Un message sur la compilation réussie et une grille de personnages amusants doivent être affichés sous l'éditeur de niveau, comme indiqué ci-dessous.
Ces personnages amusants indiquent le niveau que nous venons de créer. Chaque caractère représente un objet distinct. Sur le côté gauche de l'écran, descendez et trouvez LÉGENDE. La légende fournit une explication de chacun des personnages:
. = Contexte
# = Mur
P = joueur
* = Caisse
@ = Caisse et cible
O = cible
Tout ce qui se trouve sur le côté gauche de l'écran est le code du jeu, divisé en différentes parties, telles que OBJETS ou LÉGENDE. Descendez aux NIVEAUX. Ici, nous voyons les niveaux utilisés dans l'exemple.
Pour ajouter un nouveau niveau, créez une nouvelle ligne vide au bas de la section de niveau. Copiez ensuite les caractères générés pour notre niveau et collez-les là . Tous les niveaux ont été ajoutés.
Nous allons le tester. Après avoir créé un nouveau niveau, vous devez appuyer à nouveau sur le bouton "Exécuter" en haut de l'écran pour redémarrer le jeu avec un nouveau niveau. Parfois, cela ne fonctionne pas, puis vous devez cliquer sur le bouton "Reconstruire", puis à nouveau sur "Exécuter".
Sauvegarder et charger un jeu
Essayez de créer de nouveaux niveaux. Lorsque vous êtes prêt à enregistrer le jeu, remontez au début du code et entrez votre propre nom, le nom de l'auteur et la page d'accueil, puis cliquez sur le bouton "Enregistrer".
Un nombre limité de sauvegardes sont stockées dans le menu «Charger» de votre ordinateur. Cependant, il y a un bouton «Partager» en haut de l'écran. Lorsque vous cliquez dessus, un message avec deux liens Web est généré.
L'un des liens est le code source de votre projet. Le second est un lien vers une version jouable du jeu que vous pouvez partager avec vos amis. Je recommande de créer périodiquement un nouveau lien vers le code source et de l'enregistrer dans un document texte afin d'avoir une version stockée en permanence du projet.
Exportation de jeux
Vous pouvez également exporter le jeu en tant que fichier html5, que vous pouvez ensuite télécharger sur des portails de jeu, tels que
itch.io ,
Kongregate ou
Newgrounds . Cliquez simplement sur «Exporter» et téléchargez le fichier html téléchargé sur le portail de jeu.
Notre exemple de projet se trouve
ici .
Partie 2. Démarrer dans Puzzle Script
Dans cette partie, nous apprendrons comment démarrer la programmation dans
Puzzle Script .
Code
Ouvrez un
exemple de projet . Le code du programme est sur le côté gauche de l'écran, il est divisé en parties: Objets, Légende, Sons, etc. Dans la section Règles, les règles d'interaction des objets sont définies. Allez-y. Il ne doit y avoir qu'une seule ligne de code:
[ > Player | Crate ] -> [ > Player | > Crate ]
Cette ligne signifie que si le joueur est près de la boîte et se déplace dans sa direction, le jeu déplace le joueur et pousse la boîte. Pour expliquer comment cela fonctionne, vous devez comprendre que le code Puzzle Script suit cette structure:
[ ] -> [ ]
Cela signifie ce qui suit:
[ ] -> [ ]
Puzzle Script vérifie les conditions à gauche de la flèche, par exemple, si l'objet du joueur est à côté de l'objet boîte. Si la condition est vraie, alors nous faisons quelque chose, par exemple, poussons la case.
Exemples de conditions
Voici un exemple de condition:
[ object1 | object2 ]
Cet événement vérifie si object1 est à côté de object2. Vous pouvez vérifier si deux objets sont côte à côte en plaçant une
|
|
entrée en appuyant sur Maj + \. Les conditions sont toujours placées
[ ]
.
[ crate | crate ]
Le code ci-dessus vérifie si deux cases sont côte à côte.
[ crate | crate | crate ]
Cette condition vérifie si trois cases sont à proximité.
[ crate target ]
Cette condition vérifie si la case est au-dessus de la cible car la
|
|
entre deux objets. Les objets peuvent être superposés s'ils sont situés dans différentes couches de collisions, que nous couvrirons dans les parties suivantes du didacticiel.
Nous gardons l'égalité
Les règles doivent être équilibrées. La vérification de l'état et l'événement qui la suit doivent être décrits de la même manière. Je vais montrer ce que cela signifie.
[ player | crate ] -> [ player | ]
Cette ligne de code détruit la boîte si le joueur est à côté d'elle. Vous ne pouvez pas écrire:
[ player | crate ] -> [ player ]
car la condition de gauche vérifie la présence d'objets voisins dans deux espaces de grille distincts, mais l'événement ne décrit qu'un seul espace de grille que le joueur occupe. Puzzle Script doit savoir quoi faire avec les espaces qu'il vérifie. Le code correct pour détruire la boîte doit signaler les éléments suivants:
[ | ] -> [ | ]
[ player | crate ] -> [ player | ]
Autrement dit, même les espaces vides dans le code comptent. Cependant, l'entrée suivante est valide:
[ player target ] -> [ player ]
Puisque dans la condition que nous parlons d'un seul espace de grille, l'événement décrit le même espace de grille.
Comment déplacer des boîtes
Revenons Ă la ligne de code d'origine.
[ > Player | Crate ] -> [ > Player | > Crate ]
En d'autres termes:
[ | ] -> [ | ]
Flèche> accentue le mouvement.
Parfois, nous devons écrire des commentaires pour nous souvenir de ce que fait le code. Puzzle Script ignore les commentaires - ils sont réservés à l'utilisateur. Pour écrire un commentaire, vous devez mettre le texte entre crochets. Nous écrivons un commentaire sur notre règle qui décrit ce qu'il fait:
( )
[ > Player | Crate ] -> [ > Player | > Crate ]
Maintenant, sous le code push de la boîte, écrivez ce qui suit:
( )
[ < Player | Crate ] -> [ < Player | < Crate ]
La flèche inversée signifie que si le joueur s'éloigne de la boîte, il tire la boîte. Cliquez sur «Exécuter» pour tester cette action. Vous devriez pouvoir pousser et faire glisser les cases. En programmation, même avec une faute de frappe dans une lettre, l'ordinateur peut ne pas comprendre le code, donc débarrassez-vous de toutes les erreurs. Lorsque vous apportez des modifications au code, cliquez à nouveau sur «Exécuter» pour télécharger les modifications. Si le jeu ne se comporte pas comme il se doit, essayez de cliquer sur «Reconstruire» pour effacer la mémoire du programme, puis cliquez sur «Exécuter».
Parfois, il est nécessaire de désactiver une ligne de code. Transformez-le simplement en commentaire pour économiser pour l'avenir. Commentons le code pour pousser les boîtes, afin que le joueur ne puisse transporter que des boîtes:
( )
([ > Player | Crate ] -> [ > Player | > Crate ])
( )
[ < Player | Crate ] -> [ < Player | < Crate ]
Si cela a fonctionné, commentez le code pour tirer les cases et essayez ce qui suit:
[ < Player | Crate ] -> [ < Player | > Crate ]
Si le joueur s'éloigne de la boîte, le joueur et la boîte se déplaceront dans des directions opposées. Les flèches déterminent dans quelle direction l'objet se déplace ou se déplacera. Maintenant, commentez ceci et essayez ce qui suit:
[ > Player | Crate ] -> [ Player | > Crate ]
La boîte se déplace, mais le joueur reste en place. Expérimentez avec ^ et v (lettre v) pour voir comment les objets se déplaceront.
Erreurs
Écrivons intentionnellement la mauvaise règle et voyons ce qui se passe. Entrez la ligne suivante:
[ < Player | Crate ] -> [ < Player ]
Essayez d'exécuter le programme. Vous devriez voir un message comme celui-ci:
ligne 81: Dans une règle, chaque motif à faire correspondre à gauche doit avoir un motif correspondant à droite de longueur égale (nombre de cellules).
Généralement, Puzzle Script décrit très bien l'erreur. Cependant, Puzzle Script se trompe parfois par lui-même. Dans de tels cas, vous devez parcourir le code vous-même et déterminer où est l'erreur.
Quelques expériences supplémentaires
Essayez d'expérimenter et écrivez les règles vous-même. Voici quelques exemples.
[ > Player | … | Crate ] -> [ > Player | … | > Crate ]
Dans l'exemple ci-dessus, le joueur poussera la case s'il se trouve n'importe où sur la même ligne du niveau et le joueur se déplace vers la case.
[ > Player | Crate ] -> [ Crate | Player ]
Ce code échange le lecteur et la boîte.
[ > Player | Crate ] -> [ Player | Target ]
Dans ce code, si le joueur est près de la boîte et se dirige vers elle, le joueur cessera de bouger, mais la boîte se transformera en cible. La meilleure chose à propos de Puzzle Script est la facilité de création de nouvelles choses et la possibilité d'expérimentation.
Partie 3. Créer des objets
Tous les fragments graphiques dans les jeux sur Puzzle Script indiquent des objets. Pour créer des jeux sur Puzzle Script, vous devez créer vos propres objets. Dans cette partie, je vais vous expliquer comment les créer et les ajouter à mon code.
Informations générales
Ouvrez un
exemple de projet . Le processus de création d'un objet comprend les étapes suivantes:
- Créez-le dans la liste des objets
- Ajout d'un élément à une légende
- Ajout de collisions Ă un calque
Après avoir effectué toutes ces étapes, vous pouvez commencer à utiliser l'objet.
Création d'objets
Plusieurs objets existent déjà . Chaque jeu doit avoir un objet d'arrière-plan. Tous les objets sont créés à partir d'une grille de 5 x 5 pixels et ont au moins une couleur. L'objet d'arrière-plan est illustré ci-dessous.
Background
LIGHTGREEN GREEN
11111
01111
11101
11111
10111
Les nombres indiquent des pixels dans l'image. Chaque numéro correspond à sa couleur. La première couleur a le numéro 0, la seconde - 1, et ainsi de suite jusqu'à 9. Il peut y avoir jusqu'à dix couleurs. Dans notre cas, chaque 1 colore le pixel en vert clair (vert clair) et 0 - en vert (vert). Le résultat ressemble à ceci:
Les objets sont toujours créés comme suit:
- Le titre
- Les couleurs
- Image
Le nom est toujours sur la première ligne. Les couleurs sont toujours sur la deuxième ligne, et l'image prend les 5 lignes suivantes, 5 caractères par ligne, ce qui forme une grille 5 x 5. Ou vous pouvez effectuer les opérations suivantes:
Background
LIGHTGREEN
Ce code créera un objet appelé «Arrière-plan», qui sera une grille de 5 x 5 pixels en vert clair. Si vous ne décrivez pas la grille d'image, nous obtenons alors un bloc de couleur unie, qui peut parfois être utile.
Donner des noms aux objets
Les objets peuvent être appelés comme vous le souhaitez, mais le nom ne peut pas commencer par un symbole et il doit s'agir d'un seul mot sans espaces. Donnez des noms clairs aux objets, mais n'allez pas trop loin. PlayerStill est un bon nom, PlayerThatIsStandingStill est trop long et verbeux.
Les couleurs
Vous devez déclarer les couleurs que vous souhaitez utiliser pour l'objet et les séparer par un espace. Puzzle Script a des couleurs prédéfinies:
- noir
- blanc
- gris
- gris foncé
- gris clair
- gris
- gris foncé
- gris clair
- rouge
- darkred
- lightred
- brun
- brun foncé
- marron clair
- orange
- jaune
- vert
- vert foncé
- vert clair
- bleu
- bleu clair
- bleu foncé
- pourpre
- rose
- transparent
Vous pouvez également définir des couleurs en hexadécimal, ce qui nous donne une gamme de couleurs beaucoup plus large. Vous pouvez utiliser des sites Web comme celui-
ci pour sélectionner des couleurs hexadécimales. Sélectionnez la couleur souhaitée, puis réécrivez le code couleur au-dessus de l'image. Les codes de couleur hexadécimaux sont écrits dans Puzzle Script comme suit:
#51A2BD #ff0000 #ffffff
Le code couleur est toujours précédé du caractère #.
Ajouter un objet à la légende
Après avoir créé l'objet, vous devez l'ajouter à la légende. La légende ressemble à ceci:
. = Background
# = Wall
P = Player
* = Crate
@ = Crate and Target
O = Target
Chaque symbole représente un objet dans un niveau. Autrement dit, lorsque nous voyons une telle grille de caractères:
#p.*.##
#.**.##
#..#..#
##....#
##...o#
#######
il décrit en fait notre niveau:
Chaque objet créé doit se voir attribuer une lettre, un symbole ou un chiffre qui désigne cet objet au niveau. Comme ça:
P = player
Grouper des objets dans la légende
Nous pouvons également créer des groupes d'objets dans la légende. Par exemple, si nous avons plusieurs boîtes multicolores, nous pouvons le faire:
O = OrangeCrate
B = BlueCrate
G = GreenCrate
Cela nous permettra d'utiliser des boîtes au niveau de l'éditeur. Mais pour créer le code, vous pouvez les regrouper dans Legend, comme ceci:
Crates = OrangeCrate or GreenCrate or BlueCrate
Et tous ensemble, cela ressemblera Ă ceci:
=======
LEGEND
=======
O = OrangeCrate
B = BlueCrate
G = GreenCrate
Crates = OrangeCrate or GreenCrate or BlueCrate
Pourquoi faire ça? Parce qu'au lieu de créer de telles règles:
[ > Player | OrangeCrate ] -> [ > Player | > OrangeCrate ]
[ > Player | BlueCrate] -> [ > Player | > BlueCrate ]
[ > Player | GreenCrate] -> [ > Player | > GreenCrate]
vous pouvez simplement écrire:
[ > Player | Crates ] -> [ > Player | > Crates ]
Et ce code fonctionnera pour l'ensemble du groupe d'objets.
De plus, dans la section
Couches de collision , vous pouvez vous référer à la couche dans laquelle se trouve le groupe, plutôt que d'entrer chaque objet individuel.
Couches de collision
Par défaut, la section de la couche de collision est la suivante:
Background
Target
Player, Wall, Crate
Chaque ligne sélectionne des objets dans son propre calque. L'ordre des couches d'objets détermine quels objets seront au-dessus des autres. Les objets de la ligne supérieure seront sur le calque inférieur, la ligne suivante sera sur le calque au-dessus, etc. L'arrière-plan doit toujours être sur la ligne supérieure pour être sur le calque inférieur. Les objets d'un calque ne peuvent pas être superposés. Autrement dit, cela ne peut pas être:
[ player wall ] -> [ player wall ]
Vous pouvez faire interagir des objets dans différentes couches. Par exemple, vous pouvez écrire:
[ > Player | Target ] -> [ > Player | > Target ]
Une expérience
Créez de nouveaux objets. Créez un type de boîtes que vous ne pouvez que pousser. Créez une autre boîte qui ne peut être glissée. Créez une boîte qui disparaît lorsque vous la touchez. En poursuivant les expériences, vous vous rappellerez mieux comment tout se fait.
Partie 4. Conditions de victoire
Tout le monde aime gagner. Nous, en tant que joueurs, voulons gagner. Dans cette partie, nous apprendrons comment programmer les conditions pour gagner un match.
Conditions de victoire
Téléchargez l'
exemple de projet et accédez à la section Code Win Conditions. Vous devriez voir ce qui suit:
All Target on Crate
La partie est gagnée s'il y a une case sur chaque but. Si vous avez 3 cases et 2 buts, vous gagnez en ne plaçant que 2 cases sur les buts. En cas d'échange:
All crate on target
alors chaque case devra être cadrée.
Il peut y avoir une ou plusieurs conditions. En cas de conditions multiples, elles doivent toutes être remplies. Par exemple, nous pouvons avoir les éléments suivants:
All Target on Crate
All Target2 on Crate2
Si le niveau a cible et target2, alors caisse et caisse2, respectivement. Si au niveau il n'y a pas un des objets nécessaires pour remplir une certaine condition de victoire, par exemple, il n'y a pas de cible2, alors cette condition est satisfaite automatiquement.
Différents types de conditions de victoire
Il existe plusieurs types de conditions de victoire.
No Object
Dans ce cas, la victoire vient quand il n'y a pas un tel objet au niveau.
Some Object
Vous gagnez quand il y a au moins un objet du type spécifié au niveau.
Some Object1 on Object2
Au moins un des objets d'Object1 doit se trouver sur Object2.
No Object1 On Object2
Cette condition est l'opposé de
All Target on Crate
. Dans ce cas, nous avons besoin que tous ces objets soient séparés les uns des autres, et non les uns au-dessus des autres. Vous pouvez également combiner différentes conditions de victoire.
Une expérience
Nous expérimenterons différentes conditions de victoire. Essayez de créer un jeu dans lequel la victoire se produit si toutes les cases ne sont pas sur la cible. Ou créez un jeu dans lequel vous devez détruire toutes les boîtes d'un certain type, mais il y a d'autres boîtes poussées sur votre chemin.
Mon exemple de projet terminé peut être consulté
ici .
Partie 5. Commande tardive
PuzzleScript a une commande très utile appelée "tardive". L'ordre d'origine des événements dans le jeu est important, et parfois vous avez besoin d'un code qui est exécuté plus tard pour obtenir les résultats souhaités. Dans cette partie, je vais parler de l'utilisation de la commande
tardive .
Pourquoi en avons-nous besoin
Ouvrez
un exemple de projet , puis collez le code suivant dans le jeu et exécutez-le:
[ player | target ] -> [ player | ]
On peut s'attendre à ce que dès que le joueur se tient à côté du but, le but soit détruit, mais cela ne se produit pas. Au lieu de cela, la cible disparaît dans le parcours une
fois que le joueur se tient à côté d'elle. Essayez donc un autre code:
late [ player | target ] -> [ player | ]
Dès que vous vous tenez à côté de l'objectif, il disparaîtra. Cela s'est produit parce que tout ce qui est désigné comme
tardif se produit après l'exécution de tout le reste du code. Parfois, cela est nécessaire.
Ordre des événements
Voici comment le code de Puzzle Script s'exécute à chaque mouvement.
- Puzzle Script découvre que le joueur veut bouger
- Dans la mesure du possible, les règles sont lues et exécutées de haut en bas.
- Le joueur se déplace si possible
- Des règles tardives s'appliquent
L'ordinateur démarre à partir de la première ligne de code et lit, ligne par ligne. vérifier chaque condition. Ainsi, lorsque vous essayez de vous déplacer, Puzzle Script lit toutes les règles et vérifie si les conditions sont vraies et, dans l'affirmative, il fait quelque chose. Par exemple, la première ligne pourrait ressembler à ceci:
[ player | spikeTrap ] -> [ | spikeTrap ]
Si le joueur n'est pas à côté du piège à pieux, le code continue son exécution. Cela signifie que l'ordre d'écriture des lignes de code est important. Vous pouvez utiliser la commande tardive dans certains cas, que vous apprendrez au fil du temps dans la pratique.
Façons d'utiliser tard dans la pratique
D'après mon expérience, il est préférable d'utiliser la commande tardive lorsque vous vérifiez si les objets sont les uns sur les autres ou les uns à côté des autres, mais il existe d'autres cas. Si vous vérifiez si un objet se trouve sur un autre, l'événement ne sera enregistré qu'au prochain tour, sauf si vous utilisez la commande tardive:
[ player spikeTrap ] -> [ spikeTrap ]
Dans le cas ci-dessus, le joueur ne sera pas tué par un piège à enjeux jusqu'au prochain tour après être entré dans le piège. Pour faire mourir le joueur instantanément, ajoutez simplement la commande tardive,
late [ player spikeTrap ] -> [ spikeTrap ]
Pour redémarrer le niveau entier lorsque le personnage meurt, vous pouvez procéder comme suit:
late [ player spikeTrap ] -> restart
Et le niveau redémarrera lorsque le joueur tombera dans le piège avec des enjeux.
Vous pouvez voir l'exemple de projet terminé
ici .
Partie 6. Travailler avec des effets sonores.
Nous avons fait un grand jeu sur
Puzzle Script , mais maintenant nous devons y ajouter des sons. Comment faire Maintenant, je vais vous le dire!
Génération sonore
Ouvrez un
exemple de projet . Ajoutez-y des sons. Sous l'écran de jeu, vous pouvez voir des carrés noirs avec des symboles blancs. Ils sont utilisés pour générer du son. Chaque personnage génère un type de son unique et une croix supprime les sons créés. Essayez de cliquer sur les carrés et écoutez les sons.
Les chiffres jaunes sont des codes uniques qui doivent être copiés et collés à des endroits du code où des sons sont nécessaires.
Comment utiliser les sons
Une fois que vous avez trouvé le bon son, vous devez l'insérer dans la section
Sons du code du jeu.
Les sons peuvent être utilisés de plusieurs manières. Le plus simple est de créer un nouvel effet sonore (sfx). Ils doivent être numérotés. Nous créons un nouveau sfx, en lui attribuant un numéro de 0 à 10 lors de l'insertion d'un ID de son numérique. Dans la liste Sons, créez un nouveau sfx appelé sfx0 et affectez-lui le son généré:
sfx0 36301705
Pour utiliser le son, vous devez l'insérer dans les règles après l'événement. Attachons le sfx0 nouvellement créé à l'événement de destruction de boîte (l'événement est déjà présent dans l'exemple de projet):
(The player destroys a crate)
[ > Player | CrateVanish ] -> [ Player | ] sfx0
Des sons peuvent également être déclarés pour la lecture avec certains événements, par exemple:
Crate MOVE 36772507
Dans ce cas, le son est émis lorsque vous déplacez la caisse. Générez un nouvel effet sonore pour faire glisser et déposer des objets CratePull et faites-le jouer lorsque vous déplacez CratePull:
CratePull MOVE 12735307
Les sons d'événements ne doivent être déclarés que dans la section Sons: ils n'ont pas besoin d'être mentionnés dans les règles.
Liste des méthodes de reproduction sonore
Vous trouverez ci-dessous une liste des différents sons d'événements que vous pouvez utiliser, tirés de la
documentation Puzzle Script.
Object Action 541566 - joue lorsqu'un objet est exposé à une action pendant un mouvement.
Object Create 641667 - joue lors de la création d'un objet spécifique.
EndGame 5416789 - joue Ă la fin du jeu.
EndLevel 6417822 - joue après la fin du niveau.
Object CantMove 781673 - joue lorsqu'un objet a tenté sans succès de se déplacer dans n'importe quelle direction.
Player CantMove Down Left 464674 - joue lorsqu'un objet a tenté sans succès de se déplacer vers le bas ou vers la gauche.
CloseMessage 344456 - joue lorsque le joueur ferme la boîte de message.
Object Destroy 187975 - joue lorsqu'un objet est détruit.
Object Move 264567 - joue lorsqu'un objet se déplace avec succès dans n'importe quelle direction.
Object Move Down Left Left 765432 - joue lorsque l'objet a réussi à se déplacer vers le bas ou vers la gauche.
Déplacement horizontal de l'objet 345367 - joue lorsque l'objet s'est correctement déplacé horizontalement. Vous pouvez également utiliser Vertical.
Redémarrer 7865435 - joue lorsqu'un joueur appuie sur le bouton de redémarrage R.
SFX0 765743 - peut aller de SFX0 à SFX10. Ce sont des événements sonores spéciaux qui peuvent être exécutés à partir des règles.
ShowMessage 478483 - joue lorsqu'un message est affiché.
StartGame 234626 - joue au début d'une nouvelle partie.
Startlevel 765436 - joue au début de chaque niveau.
TitleScreen 876543 - joue après le chargement de l'économiseur d'écran.
Annuler 436234 - joue lorsqu'un joueur appuie sur la touche d'annulation (Z).
Vous pouvez spécifier les directions de
déplacement et de
cantmove de sorte que lorsque vous vous déplacez dans des directions différentes, différents sons soient reproduits.
Un exemple prĂŞt Ă l'emploi du projet est
ici .
Partie 7. Jouer de la musique
Nous avons appris à créer des jeux sur Puzzle Script, mais ne serait-ce pas formidable de leur ajouter de la musique? C'est possible, et maintenant je vais vous dire comment le faire.
Remarque: il semble qu'au moment où cette fonction dans Puzzle Script soit cassée, passez à la partie suivante.
Que faire
Ouvrez le
projet vide . La musique fonctionne dans Puzzle Script comme suit: vous pouvez insérer un lien vers une seule vidéo de Youtube dans le jeu. PuzzleScript jouera automatiquement tous les sons de cette vidéo. Ouvrez Youtube et sélectionnez n'importe quelle vidéo, ou utilisez ce qui suit:
youtube.com/watch?v= CKAc3nYEatwPour lire de la musique à partir d'une vidéo, nous devons obtenir un identifiant vidéo unique. La partie verte de la ligne ci-dessus est un identifiant unique.
Sous la page d'accueil de l'auteur au début du projet, ajoutez le libellé YouTube, puis un ID vidéo unique, par exemple, comme ceci:
youtube CKAc3nYEatwPour vous assurer que cela fonctionne correctement, cliquez sur «Partager» et cliquez sur le lien du jeu (pas le lien du code source). Pendant les tests à l'intérieur de l'éditeur, la musique Puzzle Script ne peut pas être lue. Si vous voulez que le jeu ait de la musique, vous devez le télécharger en tant que vidéo sur Youtube et insérer un identifiant unique dans votre projet. Chaque projet ne peut avoir qu'une seule vidéo Youtube.
Exemple de projet
Un exemple de projet Puzzle Script est disponible
ici .
Partie 8. Comment utiliser la commande Action
Nous savons déjà comment déplacer, pousser et faire glisser des blocs, mais que faire si nous devons faire quelque chose en appuyant sur une certaine touche, comme un
espace ?
Les possibilités d'entrée dans PuzzleScript sont assez limitées, principalement les touches fléchées, Z pour annuler, R pour redémarrer, et nous ne pouvons pas les changer.
Mais le moteur nous donne une clé supplémentaire pour les actions - en appuyant sur la barre d'espace , ou appuyez sur X .Travailler avec l'équipe Action suit le format décrit ci-dessus. Nous avons utilisé le format de code PuzzleScript de base:[ ] -> [ ]
Si la condition est vraie, nous exécutons l'événement. La commande action est utilisée de la même manière, mais elle a ses propres règles. Cela ressemble à ceci:[ Action ] -> [ ]
Voici un exemple d'utilisation de la commande Action:[ Action Player ] -> [ Crate ]
Premièrement, l' action est toujours le premier mot d'une condition.Deuxièmement, si nous voulons influencer un certain objet dans le jeu, nous devons mentionner cet objet à la fois dans la condition et dans l'événement (si nous mentionnons un autre objet, le programme supprimera l'original et le remplacera par un nouvel objet, et si vous ne spécifiez pas l'objet, alors il va juste prendre sa retraite).Enfin, le mot Action ne doit être utilisé que dans la condition , mais il vaut parfois la peine de l'utiliser à la fois dans la condition et dans l'événement. Je vais en parler ci-dessous.Vérifiez le code ci-dessus dans le projet de jeu. Vous pouvez commencer avec cet exemple . Vous verrez que lorsque vous appuyez sur la barre d'espace ou X, le joueur devient une boîte.La condition dit [ Si nous appuyons sur la touche Action et qu'il y a un objet Player au niveau ] -> puis [ remplacez l'objet joueur par une boîte]Maintenant, essayons le code suivant dans l'exemple de projet:[ Action Player | Crate ] -> [ Player | > Crate ]
Assurez-vous que vous êtes entouré de tous côtés par des cases, comme dans l'image ci-dessus. Vous remarquerez qu'une action n'affecte qu'une seule case à la fois. Je ne connais pas exactement la raison, mais si vous voulez influencer plusieurs objets à l'aide de la commande Action , vous devez le spécifier à la fois dans la condition et dans l'événement.Remplacez le code par la version mise à jour:[ Action Player | Crate ] -> [ Action Player | > Crate ]
Maintenant, nous pouvons pousser toutes les cases à la fois. Si vous devez appliquer une action à plusieurs objets, placez Action dans la condition et l'événement.Partie 9. Vérification de plusieurs conditions
Apprenons à vérifier plusieurs conditions, par exemple, la présence d'une bombe ET d'un bloc destructible.Ouvrez un exemple de projet . Maintenant, ajoutez-y le code suivant:late [Player Switch][DoorClosed] -> [Player Switch][DoorOpen]
Le code suit ce format:[ 1 ] [ 2 ] -> [ 1 ] [ 2 ]
Si la condition 1 est vraie et la condition 2 est vraie, alors l'étape 1 et l'étape 2 sont exécutées. Dans notre cas, dans la condition 1, il est vérifié si le joueur est sur Switch. Si oui, alors la condition 2 est vérifiée, c'est-à -dire la présence au niveau d'une porte fermée? Si la condition est vraie, l'objet DoorClosed se transforme en objet DoorOpen, ouvrant la porte.Supposons que nous ayons besoin que la porte se ferme lorsque le héros quitte l'interrupteur, car nous voulons que le joueur pousse la boîte vers l'interrupteur pour ouvrir la porte. Vous pouvez écrire quelque chose comme ceci:late [Player | Switch][DoorOpen] -> [Player | Switch][DoorClosed]
Si le joueur se tient à côté de l'interrupteur et quelque part au niveau il y a une porte ouverte, alors nous fermons la porte. Enfin, nous avons besoin que la porte reste ouverte si nous poussons la boîte sur l'interrupteur:late [Crate Switch][DoorClosed] -> [Crate Switch][DoorOpen]
Maintenant, la porte restera ouverte pendant que le tiroir est sur l'interrupteur.Vous pouvez voir l'exemple de projet terminé ici .Partie 10. Création de points d'arrêt
Vous avez peut-être une bonne idée pour jouer à Puzzle Script, mais il a besoin de points de contrôle (points de contrôle) pour que le joueur les récupère en cas de décès. Comment faire Assez simple, et maintenant je vais vous expliquer comment.Créer des points d'arrêt
Ouvrez un exemple de projet . Maintenant, nous devons programmer un point d'arrĂŞt. Une seule ligne de code suffit pour cela:late [ Player FlagRed ] -> CHECKPOINT
FlagRed est un point de contrôle. Lorsque le joueur est au-dessus du drapeau, ce code crée un point de contrôle (CHECKPOINT). Si vous n'utilisez pas tard, la fonction de point de contrôle ne fonctionnera pas.Testez le jeu. Passez le point de contrôle, puis un peu plus loin et appuyez sur R. Vous devrez commencer par le point de contrôle.Points de contrôle multiples
S'il y a plusieurs points de contrôle, le jeu utilise le dernier activé par le joueur.Pour éviter de réactiver un point de contrôle déjà utilisé, vous devez le changer en un autre objet. Pour ce faire, créez une copie blanche dans la section OBJETS du code sous le drapeau rouge.FlagWhite
White Orange
.1…
.00..
.000.
.1…
.1…
Maintenant, réécrivez cette ligne dans la légende:Flag = FlagRed or FlagWhite
Nous pouvons créer un groupe d'objets. Dans ce cas, Flag sera soit FlagRed soit FlagWhite. Alors qu'au moins un des objets groupés se voit attribuer un symbole (nous avons attribué à FlagRed un symbole F), nous n'aurons pas besoin d'attribuer de symboles à d'autres objets du groupe, et vous ne pouvez y accéder que dans le code, mais pas dans l'éditeur de niveau. Ensuite, vous pouvez affecter des couches de collision au groupe, ce que nous avons fait. Un accès à un groupe d'objets, par exemple, Flag, fait référence à l'ensemble du groupe. Par conséquent:
[ > Player | Flag ] -> [ > Player | ]
Ce code affectera Ă la fois le drapeau rouge et le drapeau blanc.Modifier l'objet indicateur
Voici comment changer FlagRed en FlagWhite:late [ Player FlagRed ] -> [ Player FlagWhite ]
Si à la fin du tour le joueur est sur le drapeau rouge, alors nous le transformons en blanc. Cependant, vous devez modifier les graphiques d'indicateur après avoir créé le point d'arrêt, car le code est lu de haut en bas. Testez le programme.Changer le deuxième drapeau
Il y a deux drapeaux dans le projet. Assurons-nous que lorsque le deuxième drapeau est activé, l'ancien drapeau blanc devient noir afin qu'il ne puisse plus être utilisé. Nous écrivons ce qui suit:late [ Player FlagRed ][ FlagWhite] -> [ Player FlagRed ][FlagBlack]
Le code dit: si le joueur est sur le drapeau rouge et quelque part dans le jeu il y a des drapeaux blancs, alors vous devez rendre les drapeaux blancs noirs. Puisque le code est lu de haut en bas, nous devons le faire dans l'ordre suivant:late [ Player FlagRed ] -> CHECKPOINT
late [ Player FlagRed ][ FlagWhite] -> [ Player FlagRed ][FlagBlack]
late [ Player FlagRed ] -> [ Player FlagWhite ]
Si vous ne comprenez pas pourquoi le code doit être dans cet ordre, essayez de changer l'ordre des lignes et testez le programme. Pour résoudre vos propres problèmes, vous devez apprendre à prendre du recul et à réfléchir à ce que fait le code. Mais je vais vous donner un indice - lorsque vous jouez, où sont les drapeaux rouges pendant la dernière ligne de code dans l'exemple incorrect suivant?[ > Player | Crate ] -> [ > Player | > Crate ]
[ > Crate | Flag ] -> [ Crate | Flag ]
late [ Player FlagRed ] -> CHECKPOINT
late [ Player FlagRed ] -> [ Player FlagWhite ]
late [ Player FlagRed ][ FlagWhite] -> [ Player FlagRed ][FlagBlack]
Voir l'exemple de projet terminé ici . De plus, je viens de vous montrer la façon la plus simple d'animer. Dans la partie suivante, je parlerai de la création d'animations plus complexes, telles que des explosions.Partie 11. Animations
Il existe deux façons de créer des animations dans PuzzleScript. L'un d'eux utilise le temps réel, mais dans cette partie, je n'en parlerai pas. Un autre est utilisé pour des animations ponctuelles rapides, telles qu'une explosion ou un personnage descendant une échelle verticale.Ouvrez un exemple de projet . Nous allons créer une bombe et une série de plans de l'explosion, puis les animer.Animation d'objets
Pour les animations 2D, vous avez besoin de plusieurs dessins d'un objet passant d'un état à un autre, par exemple, un sprite d'un Mario en cours d'exécution. Il contient 4 images d'animation.Pour simuler la transition d'une image d'animation à une autre, nous allons créer plusieurs objets dans PuzzleScript qui seront des images d'animation, puis utiliser le code pour basculer entre eux.Bombe
Créez un tel objet bombe.Bomb
black yellow grey
..1..
..1..
.000.
00020
.000.
N'oubliez pas de l'ajouter aux calques et à la légende.Pour animer l'explosion, nous devons créer chaque image de l'animation en tant qu'objet séparé, puis basculer entre elles dans le code. Créons des objets d'explosion.Explosion1
black yellow grey red
..1..
..1..
.000.
00320
.000.
Explosion2
black yellow grey red
..1..
..1..
.333.
03330
.333.
Explosion3
black yellow grey red
..1..
.333.
33333
33333
.333.
Explosion4
black yellow grey red
.333.
33333
33333
33333
.333.
Explosion5
black yellow grey red
.333.
33333
33.33
33333
.333.
Explosion6
black yellow grey red
.333.
3...3
3...3
3...3
.333.
Explosion7
black yellow grey red
.....
.....
.....
.....
.....
Il numérotera correctement les objets afin de savoir de quelle image de l'animation nous avons besoin. Après les avoir ajoutés aux couches et à la légende, nous pouvons ajouter plusieurs lignes de code.[Explosion7] -> []
[Explosion6] -> [Explosion7]
[Explosion5] -> [Explosion6]
[Explosion4] -> [Explosion5]
[Explosion3] -> [Explosion4]
[Explosion2] -> [Explosion3]
[Explosion1] -> [Explosion2]
[Bomb] -> [Explosion1]
Essayez d'ajouter ce code, puis placez une bombe au niveau et lancez le jeu. Vous remarquerez qu'à chaque mouvement, l'animation de la bombe change d'une image. En basculant entre les objets, nous créons une animation.L'ordre de basculement entre les animations est critique. Le dernier cadre doit être en haut et le premier en bas. N'oubliez pas que le code est lu de haut en bas. Si les images de l'animation sont dans un ordre différent, nous ne verrons jamais les changements. Nous ne verrons que la dernière image, et dans notre cas, la bombe disparaîtra simplement. Il passera à la première image, puis à la seconde et ainsi de suite, dans une image, avant même que vous ne voyiez le graphique. En plaçant la dernière image au début, à chaque tour, nous verrons le prochain changement.Utiliser à nouveau
Pour tout animer ensemble, il nous faut à nouveau une équipe . Encore une fois signifie que , après avoir lu tout le code PuzzleScript fait une pause, puis dit à nouveau le code, l' accomplissement de toutes les commandes à nouveau . Il peut être utilisé pour la gravité, glisser sur la glace et dans notre cas pour les animations. Il suffit de réécrire le code comme suit:[Explosion7] -> []
[Explosion6] -> [Explosion7] again
[Explosion5] -> [Explosion6] again
[Explosion4] -> [Explosion5] again
[Explosion3] -> [Explosion4] again
[Explosion2] -> [Explosion3] again
[Explosion1] -> [Explosion2] again
[Bomb] -> [Explosion1] again
Testez le jeu. Vous verrez que toute l'animation de la bombe est jouée immédiatement. Si, à votre avis, elle est trop lente ou trop rapide, la vitesse peut être modifiée. Au tout début du texte du programme, sous la page d'accueil, écrivez le code suivant:again_interval 0.1
Cela fait partie de ce que PuzzleScript appelle le prélude . C'est l'endroit où, avant le reste du code, vous pouvez définir des règles supplémentaires qui déterminent le comportement du jeu. Maintenant, l'animation devrait jouer plus vite. Essayez de changer le nombre après again_interval et vérifiez qu'il a changé.Vous pouvez voir l'exemple de projet terminé ici .Partie 12. Gravité
Généralement, PuzzleScript est utilisé pour créer des jeux avec une approche descendante, mais en fait, vous pouvez simuler certains éléments des défileurs latéraux, bien qu'avec des règles PuzzleScript limitées, c'est-à -dire qu'ils seront toujours étape par étape. Dans cette partie, je vais vous expliquer comment implémenter la gravité.Exemple de projet
Ouvrez un exemple de projet . J'ai créé un niveau simple, il a un joueur, une boîte sur le rebord et une porte en dessous. Nous voulons nous assurer que lorsqu'un joueur pousse une boîte d'un rebord, il tombe au sol. Nous voulons également que le joueur tombe au sol lorsqu'il quitte le bord.Étape d'automne 1
Voici la première partie du code que nous utiliserons:down [ Player | no Object ] -> [ | Player ]
down [ Crate | no Object no Player ] -> [ | Crate ]
Essayez de pousser la boîte du bord. Vous remarquerez qu'après avoir bougé, la boîte est suspendue en l'air, mais après un autre mouvement, elle tombe au sol. Ici, quelques choses se produisent.Tout d'abord, parlons du mot clé down . En ajoutant vers le bas , nous limitons la règle au fait qu'elle ne s'applique que dans le sens descendant. C'est pourquoi la boîte descend. Si vous remplacez vers le bas sur la droite , vous verrez que la boîte se trouve coincé dans le mur de droite, comme dans un jeu avec antigravité. Essayez de le faire.Ensuite, nous ferons quelque chose d'inhabituel. Au lieu de vérifier si le joueur est à côté d'un objet spécifique (par exemple, une boîte), nous vérifions s'il est à côté d'un objet généralisé. Si vous regardez la légende dans l'exemple de code, vous verrez que nous avons défini l'objet comme un groupe d'objets, c'est-à -dire qu'à chaque utilisation du mot objet, nous entendons un groupe d'objets. Autrement dit, nous vérifions s'il y a des objets sous le lecteur. Sinon, nous ordonnons au joueur d'occuper cet espace vide et de laisser l'espace précédent, à cause du mot vers le bas, en suivant dans une direction descendante.Mais vous pouvez également remarquer qu'après être entré en collision avec un rebord, la boîte ne tombe qu'au prochain mouvement et qu'elle atteint instantanément le sol. Pour éliminer ce plantage retardé, vous pouvez utiliser le mot-clé late:late down [ Player | no Object ] -> [ | Player ]
late down [ Crate | no Object no Player ] -> [ | Crate ]
Mais comment le faire tomber progressivement, image par image?Étape d'automne 2
Maintenant, nous utilisons le mot-clé aléatoire . Nous réécrivons le code comme suit:random down [ Player | no Object ] -> [ | Player ]
random down [ Crate | no Object no Player ] -> [ | Crate ]
Exécutez le code. Il fonctionne de manière très similaire au code précédent, mais avec une différence importante. La boîte se fige dans l'air, mais chaque fois que le joueur bouge, elle tombe d'une cellule. Cela est dû au mot aléatoire . À strictement parler, random est conçu pour créer des jeux avec des éléments aléatoires, mais il a été utile ici. Il force l'exécution de la ligne de code correspondante une fois par tour. PuzzleScript exécute chaque règle en un seul mouvement autant de fois que possible, et seulement alors le joueur voit les changements graphiques. C'est pourquoi il semble que la boîte tombe instantanément au sol. Mais en utilisant le mot aléatoire, nous lui permettons de ne tomber qu'une seule cellule à la fois.Étape d'automne 3
Maintenant, nous allons ajouter à nouveau le mot-clé :random down [ Player | no Object ] -> [ | Player ] again
random down [ Crate | no Object no Player ] -> [ | Crate ] again
Lancez le jeu. Tout est presque parfait. La boîte se fige pendant un certain temps dans l'air, mais si vous vous déplacez à nouveau, elle tombe progressivement au sol. Nous sommes déjà familiers avec le mot - clé à nouveau , en fait, cela signifie qu'à la fin du cours PuzzleScript lit le code à nouveau, et en essayant de rencontrer toute l'équipe à nouveau comme un cours séparé, puis fait une pause, puis répète à nouveau autant de fois qu'il le peut. L'important ici est qu'il s'arrête à nouveau entre les virages , ce qui nous permet de voir la boîte tomber.Dernière étape
Et la touche finale. Pour que la boîte tombe au sol immédiatement après avoir été poussée du bord, nous devons ajouter une autre ligne de code au-dessus de celle que nous venons d'écrire:[moving Player] -> [moving Player] again
random down [ Player | no Object ] -> [ | Player ] again
random down [ Crate | no Object no Player ] -> [ | Crate ] again
Le mot-clé mobile utilisé entre crochets [] devant le lecteur signifie que nous vérifions si le joueur se déplace. Cela signifie que si un joueur bouge, nous lui ordonnons de continuer à bouger et de diriger à nouveau l'équipe . Ensuite, tout ce qui utilise à nouveau le mot-clé fonctionnera immédiatement ; dans notre cas, c'est l'animation de la chute de la box.Vous pouvez voir l'exemple de projet terminé ici .Partie 13. Vérification du sens de déplacement
Indication de direction
Il arrive parfois que vous deviez vérifier quelque chose dans une seule direction. Par exemple, vous devez faire des blocs qui ne peuvent être poussés que horizontalement, ou créer un canard qui ne peut marcher qu'à gauche.Quoi qu'il en soit, nous pouvons indiquer que les événements ne se produisent que dans certaines directions.Ouvrez PuzzleScript, créez un jeu basé sur l'exemple de base et remplacez-le par Rules par le code suivant:[ Left Player ] -> [ Crate ]
Lancez le jeu et voyez ce qui se passe.Si vous essayez d'aller à gauche, le joueur se transformera en boîte. Ceci est un bon exemple du fonctionnement de la direction.Nous sommes déjà habitués au format dans lequel j'ai expliqué le code PuzzleScript:[ ] -> [ ]
Si l'événement est vrai, l'événement se produit.Mais maintenant, quand nous devons vérifier les directions, il suivra les nouvelles règles:[ Movement Direction Object Affected ] -> [ New State of Object ]
C'est notre code précédent:[ Left Player ] -> [ Crate ]
vérifie si le joueur se déplace vers la gauche ( gauche ). Si c'est le cas, nous remplaçons le joueur par l'objet boîte.Types de destinations
Vous pouvez choisir parmi les types de destinations suivants:- En haut
- Vers le bas
- Gauche
- À droite
- Horizontal (vérifie s'il y a un mouvement horizontal)
- Vertical (vérifie s'il y a un mouvement vertical)
Partie 14. Création de mouvements personnalisés
Pour une raison quelconque, le jeu peut nécessiter un mouvement personnalisé. Les canards ne peuvent marcher qu'à gauche, les boîtes ne peuvent être poussées qu'à l'horizontale, etc. C'est très simple à faire. Jetons un autre regard sur le format de code PuzzleScript de base:[ ] -> [ ]
Si la condition est vraie, un événement se produit. Pour créer un déplacement personnalisé, vous devez procéder comme suit:[ Condition ] -> [ Movement Direction Object To Move ]
Voici Ă quoi ressemblerait l'exemple:[ Player | Crate ] -> [ Player | Left Crate ]
Téléchargez PuzzleScript , ouvrez l'exemple de base , collez ce code et voyez ce qui se passe. Allez dans la boîte autour de laquelle il n'y a pas de murs.Vous verrez que lorsqu'un joueur est près de la boîte, la boîte est poussée vers la gauche. Cependant, puisqu'il n'y a pas de mot - clé Late , cela se produit dans le cours après avoir fait le premier pas vers celui-ci.Lors de la spécification dans l' événement, en plus de l'objet, la direction du mouvement , par exemple Gauche , PuzzleScript essaiera de déplacer l'objet dans la direction spécifiée. C'est pourquoi la boîte, et non le joueur, se déplace vers la gauche - la gauche est à côté de la caisse .Rappelez-vous ce code de la partie précédente?[ ] -> [ ]
Si vous indiquez la direction du mouvement dans la condition à côté de l'objet, il vérifie si cet objet se déplace dans cette direction. C'est une différence importante. Vous pouvez le réécrire comme ceci:[ ] -> [ ]
Mouvements personnalisés autorisés
Des mouvements personnalisés peuvent être créés avec l'un de ces mots:- En haut
- Vers le bas
- Gauche
- À droite
Vous ne pouvez pas utiliser Horizontal ou Vertical , car PuzzleScript ne comprendra pas dans quelle direction vous souhaitez déplacer l'objet, ou pour ce faire, de nombreuses solutions de contournement sont nécessaires. Il est nécessaire d'indiquer une direction spécifique.Partie 15. Vérification des cellules à côté des objets
Parfois, il est nécessaire de vérifier ce qui se trouve à côté de l'objet. C'est assez facile à faire.
Jetons un autre regard sur le format de code PuzzleScript:[ ] -> [ ]
c'est[ ] -> [ ]
Pour vérifier le côté de l'objet, nous devons ajouter un élément. Le format est le suivant:[ object1 | object2 ] -> [ object1 | object2 ]
Avant la condition, nous vérifions de quel côté de l'objet nous voulons effectuer la vérification.À l'intérieur de la condition, nous supposons qu'au moins deux cellules sont nécessaires. Une cellule est, en fait, tout objet qui se trouve dans le même espace et non côte à côte.[ ]
[ | | ]
La première cellule est l'objet dont nous vérifions les côtés. La deuxième cellule est l'objet dont nous vérifions la présence. Essayez les exemples suivants:Left [ Player | Crate ] -> [ Player | ]
Le code ci-dessus supprime les cases si elles sont dans le carré à gauche du lecteur.Left [ Crate | Crate ] -> [ Player | Crate ]
Ce code vérifie si la case est à gauche d'une autre case. Si c'est le cas, la case dont le côté est coché deviendra le nouvel objet du joueur.Left [ Crate | Crate ] -> [ Crate | Player ]
Dans le code ci-dessus, il y a le mĂŞme contrĂ´le, mais la case Ă gauche devient l'objet du joueur.Left [ Crate | Crate | Crate ] -> [ Crate | Player | Crate ]
Ce code utilise également un modèle similaire. La case immédiatement à gauche de la case cochée devient un joueur si 3 cases sont côte à côte horizontalement.Left [ Crate | Crate | Crate ] -> [ Crate | Crate | Player ]
Si 3 cases sont côte à côte horizontalement, alors celle la plus à gauche devient un joueur.Si vous testez chacun de ces exemples, vous commencerez à comprendre le modèle. La première cellule est l'objet que nous vérifions pour voir la suite. Les cellules suivantes, du plus proche au plus éloigné, sont les objets que nous recherchons.Mots clefs
- Up - vérifie un objet
- Down - vérifie sous l'objet
- Gauche - vérifie à gauche de l'objet
- Droite - vérifie à droite de l'objet
- Horizontal - vérifie à gauche et à droite de l'objet
- Vertical - vérifie au-dessus et au-dessous de l'objet