Controls Guide: Sterowanie gracza i Logic
Sterowanie obejmuje wejścia gracza oraz system kontroli logicznej w grze (Procesory i instrukcje kontrolne) używany do wydawania rozkazów jednostkom i budynkom. Dobre użycie sterowania przyspiesza mikrozarządzanie, automatyzuje taśmy i maszyny oraz udostępnia zaawansowane zachowania poprzez Logic i Processor.
Sterowanie gracza (PC i Mobile)
Jednostka gracza
- Ruch: WASD / klawisze strzałek na PC; przeciągaj ekran na urządzeniach mobilnych.
- Interakcja: lewy przycisk myszy (PC) / stuknięcie (mobile) strzela lub pozwala stawiać budynki.
- Wydobywanie: lewy przycisk myszy na rudzie (PC) lub stuknięcie w rudę (mobile) aby kopać.
- Przejęcie jednostki: Ctrl + lewy przycisk myszy (PC); stuknij jednostkę (mobile) aby ją przejąć.
- Odrodzenie: naciśnij klawisz odrodzenia, aby wrócić do najbliższego core.
Przyspieszenie: naciśnij klawisz boost aby sprintować/przyspieszyć jednostkę; na mobile przeciągnij ekran od jednostki aby boostować.
- Ładunek: podnoś i upuszczaj ładunki klawiszami pick/drop; na mobile przytrzymaj aby podnieść lub upuścić.
Budynki i budowa
- Postaw budynek: lewy przycisk myszy (PC) lub stuknięcie (mobile).
- Usuń/odznacz: prawy przycisk myszy (PC) lub użyj narzędzia młotka/usuwania w interfejsie na mobile.
- Pauzuj/wznów budowę: użyj klawisza pauzy budowy.
- Zaznaczanie regionu/przebudowa: użyj klawiszy do zaznaczania regionu i przebudowy, aby pracować z wieloma blokami i schematami.
- Konfiguracja bloków: wiele bloków można konfigurować przez stuknięcie/wybranie; niektóre bloki pochłaniają zdarzenie dotyku przy stuknięciu i otwierają interfejs konfiguracji bezpośrednio.
Komendy jednostek i widok
- Otwórz interfejs komend jednostki klawiszem komend jednostki.
- Zaznaczanie grupowe: Shift + lewy przycisk myszy aby zaznaczyć obszar jednostek.
- Zaznacz wszystkie jednostki lub wszystkie fabryki jednostek odpowiednimi skrótami klawiszowymi.
- Ustaw wiele punktów trasy: Shift + środkowy przycisk myszy (PC).
- Zoom: kółko myszy.
- Przełącz widoczność UI, tryb pełnoekranowy, menu i konsola mają własne skróty klawiszowe.
- Multiplayer: lista graczy i czat mają dedykowane klawisze; kółko myszy przewija historię czatu.
Przegląd Logic (co oznacza kontrola w grze)
Logic to system skryptowy w grze wykonywany przez Processors. Dostarcza deterministycznych, niskopoziomowych instrukcji podobnych do asemblera: każda instrukcja jest oceniana według licznika instrukcji processora, a Processor przechodzi przez swój program co tick zgodnie ze swoją prędkością/zegarem.
Processory mogą wchodzić w interakcję ze światem: czytają sensory, czytają/zapisują bloki pamięci, kontrolują stany bloków, drukują wiadomości i wykonują skoki warunkowe. Dostępne są tryby edycji wizualnej i tekstowej; edytor wizualny jest przyjazny dla początkujących i wspiera użycie na mobile oraz import/eksport schowka.
Wspólne kategorie instrukcji
- sensory: odczytują właściwości bloków i specjalne tagi jak @enabled ze switchów i innych bloków. Przykładowe użycie: sensor active switch1 @enabled przypisuje stan włączony switcha do zmiennej o nazwie active.
- control: zmienia stan bloku. Przykład: control enabled conveyor1 1 ... ustawia conveyor jako włączony; control enabled conveyor1 0 ... wyłącza go.
- jump i porównania: sterowanie przepływem warunkowym. Użyj jump
, aby wykonać skok gdy porównanie między a i b jest spełnione. Lista porównań zawiera operatory takie jak strictEqual i always; always zawsze zwraca true i wymusza skok. - odczyt/zapis pamięci: read var = cell at index odczytuje wartości numeryczne z MemoryCell lub MemoryBank do zmiennej. MemoryCell wspiera dostęp indeksowany (komórki są indeksowane od zera).
- print i display: print zapisuje tekst do wyświetlenia; printflush target wypisuje zapisany tekst do Message bloku lub logic display.
- getlink/content access: Processory mogą pobrać konkretny powiązany building (np. daną instancję sortera) i traktować go jako zawartość budynku do kontrolowania lub odczytu.
Przykładowe wzorce
Przełączanie conveyora za pomocą switcha:
- sensor active switch1 @enabled
- jump 4 strictEqual active true
- control enabled conveyor1 0 0 0 0
- end
- control enabled conveyor1 1 0 0 0 To odczytuje switch, skacze aby włączyć lub wyłączyć conveyor i pętli bez końca.
Zapisanie wiadomości do Message bloku:
- print "Hello world!"
- printflush message1 Podłącz Processor do Message bloku; print zapisuje, printflush wypisuje do nazwanego message bloku.
Odczyt zawartości komórki pamięci: read value = cell1 at 2 To umieszcza wartość numeryczną z indeksu 2 cell1 do zmiennej value (indeksy zaczynają się od 0).
Wskazówki dotyczące UI i użyteczności
- Używaj edytora wizualnego na start: pokazuje zmienne, przepływ skoków i jest łatwiejszy na mobile.
- Używaj importu/eksportu schowka, aby kopiować skrypty między desktopem a edytorem mobile.
- Nadaj czytelne nazwy powiązanym blokom (router1, conveyor1, switch1, message1), aby logic był czytelny i wielokrotnego użytku.
- Pamiętaj, że Processory wykonują jedną instrukcję na tick według swojego licznika/zegara; strukturyzuj pętle i skoki z tym czasowaniem w głowie.
Niuanse interakcji z blokami
- Niektóre bloki udostępniają per-instancyjny link "building" (w odróżnieniu od content/class). getlink pobiera powiązaną instancję building, którą można zbadać lub kontrolować.
- Bloki mogą udostępniać konfigurowalne zachowanie przy stuknięciu oraz informować, czy pochłaniają zdarzenia dotyku; konfigurowalne bloki można stuknąć, aby otworzyć UI konfiguracji.
Ten dokument opisuje warstwę sterowania: wejście gracza oraz system Logic używany do programowania i automatyzacji jednostek oraz bloków. Używaj Processors do odczytu sensorów, manipulowania stanami bloków, obsługi wiadomości i orkiestracji złożonych zachowań fabryki i jednostek.