Contrôles Guide: Entrées joueur et Logic
Les contrôles couvrent les entrées du joueur et le système de contrôle logique en jeu (Processors et instructions de control) utilisé pour commander les unités et les bâtiments. Une bonne utilisation des contrôles accélère la micromanagement, automatise les convoyeurs et les machines, et révèle des comportements avancés via le Processor de Logic.
Contrôles du joueur (PC et mobile)
Unité du joueur
- Déplacement : WASD / touches fléchées sur PC ; glisser l’écran sur mobile.
- Interagir : clic gauche (PC) / tap (mobile) pour tirer ou placer des bâtiments.
- Miner : clic gauche sur un minerai (PC) ou tap sur un minerai (mobile) pour miner.
- Posséder : Ctrl + clic gauche (PC) ; tapoter une unité (mobile) pour la posséder.
- Réapparition : appuyer sur la touche de réapparition pour retourner au core le plus proche.
- Accélérer : appuyer sur la touche de boost pour sprinter/booster l’unité ; sur mobile, glisser l’écran à l’opposé de l’unité pour booster.
- Cargo : ramasser et déposer du cargo avec les touches pick/drop ; sur mobile, tapoter et maintenir pour ramasser ou déposer.
Bâtiments et construction
- Placer un bâtiment : clic gauche (PC) ou tap (mobile).
- Supprimer/désélectionner : clic droit (PC) ou utiliser l’interface hammer/delete sur mobile.
- Mettre en pause/reprendre la construction : utiliser la touche de pause de construction.
- Sélection de région/reconstruction : utiliser les touches de sélection de région et de rebuild pour travailler avec plusieurs blocs et schémas.
- Configuration de bloc : de nombreux blocs sont configurables en les tapant/sélectionnant ; certains blocs consomment l’événement tactile lorsqu’ils sont tapés et peuvent être configurés directement.
Commandes d’unité et vue
- Ouvrir l’interface de commande d’unité avec la touche unit command.
- Sélection de groupe : Shift + clic gauche pour sélectionner une zone d’unités.
- Sélectionner toutes les unités ou toutes les usines d’unités avec leurs raccourcis respectifs.
- Donner plusieurs waypoints : Shift + bouton milieu de la souris (PC).
- Zoom : molette de la souris.
- Bascule de visibilité de l’UI, plein écran, menu et console ont chacun leurs propres raccourcis.
- Multijoueur : la liste des joueurs et le chat ont des touches dédiées ; la molette fait défiler l’historique du chat.
Présentation de Logic (ce que signifient les contrôles en jeu)
Logic est le système de scripting en jeu exécuté par des Processors. Il fournit des instructions déterministes de bas niveau similaires à de l’assembleur : chaque instruction est évaluée selon le compteur d’instructions du Processor, et le Processor parcourt son programme à chaque tick en fonction de sa vitesse/horloge.
Les Processors peuvent interagir avec le monde : ils lisent des capteurs, lisent/écrivent des blocs de mémoire, contrôlent les états des blocs, affichent des messages et sautent conditionnellement. Des modes d’édition visuelle et textuelle sont disponibles ; l’éditeur visuel est convivial pour les débutants et supporte l’utilisation sur mobile ainsi que l’import/export via le presse-papiers.
Catégories d’instructions courantes
- Sensors : lire les propriétés des blocs et des tags spéciaux comme @enabled provenant des switchs et d’autres blocs. Exemple d’utilisation : sensor active switch1 @enabled assigne l’état enabled du switch à une variable nommée active.
- Control : changer l’état d’un bloc. Exemple : control enabled conveyor1 1 ... met un conveyor en enabled ; control enabled conveyor1 0 ... le désactive.
- Jump et comparaisons : contrôle de flux conditionnel. Utiliser jump
pour sauter quand une comparaison entre a et b correspond. La liste des comparaisons inclut des opérateurs comme strictEqual et always ; always retourne toujours true et force le saut. - Lecture/écriture mémoire : read var = cell at index lit des valeurs numériques depuis une MemoryCell ou une MemoryBank dans une variable. MemoryCell supporte l’accès indexé (les cellules sont indexées à partir de zéro).
- Print et affichage : print stocke du texte à afficher ; printflush target imprime le texte stocké dans un
Bloc de Message block ou une logique d’affichage.
- getlink/access content : les Processors peuvent récupérer le building spécifique lié (par ex., une instance particulière de sorter) et le traiter comme le content du building pour un contrôle ou une lecture ciblée.
Exemples de schémas
Basculer un conveyor avec un switch :
- sensor active switch1 @enabled
- jump 4 strictEqual active true
- control enabled conveyor1 0 0 0 0
- end
- control enabled conveyor1 1 0 0 0 Cela lit le switch, saute pour activer ou désactiver le conveyor, et boucle indéfiniment.
Écrire un message dans un
Bloc de Message block :
- print "Hello world!"
- printflush message1
Connecter le Processor au
Bloc de Message block ; print stocke, printflush envoie vers le
Bloc de Message block nommé.
Lire le contenu d’une mémoire : read value = cell1 at 2 Cela place la valeur numérique à l’index 2 de cell1 dans la variable value (les indices commencent à 0).
Conseils d’interface et d’ergonomie
- Utiliser l’éditeur visuel au début : il affiche les variables, le flux des jumps, et est plus facile sur mobile.
- Utiliser l’import/export du presse-papiers pour copier des scripts entre les éditeurs desktop et mobile.
- Nommer clairement les blocks liés (router1, conveyor1, switch1, message1) pour rendre la logique lisible et réutilisable.
- Se rappeler que les Processors exécutent une instruction par tick selon leur compteur/horloge ; structurer les boucles et les jumps en tenant compte de ce timing.
Nuances d’interaction avec les blocs
- Certains blocs exposent un lien par instance "building" (par opposition au content/class). getlink récupère l’instance du building liée qui peut être inspectée ou contrôlée.
- Les blocs peuvent exposer un comportement de tap configurable et indiquer s’ils consomment les événements tactiles ; les blocs configurables peuvent être tapés pour ouvrir une interface de configuration.
Ce document décrit la couche des contrôles : les entrées du joueur et le système Logic utilisé pour programmer et automatiser les unités et les blocs. Utilisez des Processors pour lire des sensors, manipuler les états des blocs, gérer les messages et orchestrer des comportements complexes d’usine et d’unités.