Controls Guide: Player Input & Processor Logic Guide
I controlli coprono l'input del giocatore e il sistema di controllo logico in-game (processori e istruzioni di controllo) usato per comandare unità e edifici. Un buon uso dei controlli accelera la micromanagement, automatizza nastri e macchine ed espone comportamenti avanzati tramite il Processor.
Controlli del giocatore (PC e Mobile)
Unità del giocatore
- Movimento: WASD / frecce su PC; trascina lo schermo su mobile.
- Interagire: clic sinistro (PC) / tap (mobile) per sparare o per posizionare edifici.
- Minare: clic sinistro sul minerale (PC) o tap sul minerale (mobile) per minare.
- Possedere: Ctrl + clic sinistro (PC); tap su un'unità (mobile) per possederla.
- Respawn: premi il tasto di respawn per tornare al Core più vicino.
- Scatto: premi il tasto di boost per correre/scattare l'unità; su mobile trascina lo schermo lontano dall'unità per boostare.
- Carico: raccogli e lascia il carico con i tasti pick/drop; su mobile tap e tieni premuto per raccogliere o lasciare.
Edifici e costruzione
- Posizionare edificio: clic sinistro (PC) o tap (mobile).
- Cancellare/deselezionare: clic destro (PC) o usa l'icona martello/elimina su mobile.
- Mettere in pausa/riprendere la costruzione: usa il tasto di pausa costruzione.
- Selezione regione/ricostruzione: usa i tasti di selezione regione e rebuild per lavorare con più blocchi e schemi.
- Configurazione dei blocchi: molti blocchi sono configurabili tappandoli/selezionandoli; alcuni blocchi consumano l'evento touch quando tappati e possono essere configurati direttamente.
Comandi unità e visuale
- Apri l'interfaccia comandi unità con il tasto unit command.
- Selezione a gruppi: Shift + clic sinistro per selezionare un'area di unità.
- Seleziona tutte le unità o tutte le fabbriche di unità con i rispettivi tasti rapidi.
- Dai più waypoint: Shift + Middle Mouse (PC).
- Zoom: rotella del mouse.
- Attivazione/disattivazione UI, fullscreen, menu e console hanno ciascuno i propri tasti rapidi.
- Multiplayer: lista giocatori e chat hanno tasti dedicati; la rotella scorre la cronologia della chat.
Panoramica della Logica (cosa significa controls in-game)
La logica è il sistema di scripting in-game eseguito dai Processor. Fornisce istruzioni deterministiche di basso livello simili all'assembly: ogni istruzione è valutata in base al contatore di istruzioni del Processor, e il Processor scorre il suo programma ogni tick secondo la sua velocità/orologio.
I Processor possono interagire con il mondo: leggono sensori, leggono/scrivono blocchi di memoria, controllano stati dei blocchi, stampano messaggi e saltano condizionalmente. Sono disponibili modalità di editing visuale e testuale; l'editor visuale è adatto ai principianti e supporta l'uso mobile e l'import/export dagli appunti.
Categorie comuni di istruzioni
- Sensori: leggono proprietà dei blocchi e tag speciali come @enabled da switch e altri blocchi. Esempio d'uso: sensor active switch1 @enabled assegna lo stato enabled dello switch a una variabile chiamata active.
- Controllo: cambia lo stato di un blocco. Esempio: control enabled conveyor1 1 ... imposta un conveyor su enabled; control enabled conveyor1 0 ... lo disabilita.
- Salti e confronti: controllo del flusso condizionale. Usa jump
per saltare quando una comparazione tra a e b corrisponde. La lista dei confronti include operatori come strictEqual e always; always ritorna sempre true e forza il salto. - Lettura/scrittura memoria: read var = cell at index legge valori numerici da MemoryCell o MemoryBank in una variabile. MemoryCell supporta accesso indicizzato (le celle sono indicizzate da zero).
- Print e display: print salva testo da mostrare; printflush target stampa il testo salvato su un
Messaggio block o su un display logico.
- getlink/accesso content: i Processor possono recuperare il particolare building linkato (es. una specifica istanza di sorter) e trattarlo come content del building per controlli o letture mirate.
Esempi di pattern
Alternare un conveyor con uno 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 Questo legge lo switch, salta per abilitare o disabilitare il conveyor, e cicla indefinitamente.
Scrivere un messaggio su un
Messaggio block:
Leggere il contenuto di una cella di memoria: read value = cell1 at 2 Questo mette il valore numerico all'indice 2 di cell1 nella variabile value (gli indici partono da 0).
Suggerimenti per UI e usabilità
- Usa l'editor visuale quando inizi: mostra variabili, flusso di jump ed è più semplice su mobile.
- Usa l'import/export dagli appunti per copiare script tra l'editor desktop e quello mobile.
- Nomina chiaramente i blocchi linkati (router1, conveyor1, switch1, message1) per rendere la logica leggibile e riutilizzabile.
- Ricorda che i Processor eseguono un'istruzione per tick secondo il loro contatore/orologio; struttura loop e jump tenendo conto di quel timing.
Nuances di interazione con i blocchi
- Alcuni blocchi espongono un link "building" per istanza (a differenza di content/class). getlink recupera l'istanza di building linkata che può essere ispezionata o controllata.
- I blocchi possono esporre comportamento di tap configurabile e se consumano eventi touch; i blocchi configurabili possono essere tappati per aprire l'interfaccia di configurazione.
Questo documento descrive il livello dei controlli: l'input del giocatore e il sistema Logica usato per programmare e automatizzare unità e blocchi. Usa i Processor per leggere sensori, manipolare stati dei blocchi, gestire messaggi e orchestrare comportamenti complessi di fabbrica e unità.