Przejdź do głównej treści

Wprowadzenie do bloków

MOCPilot wykorzystuje wizualny system programowania blokowego, który wygląda i działa podobnie do Scratcha.
Każdy blok ma określoną rolę, a poprawne ich łączenie definiuje przepływ sterowania i danych w skrypcie.
System opiera się na logice przeciągnij-i-upuść oraz interakcjach podobnych do Scratcha, zapewniając wygodny i znajomy sposób tworzenia programów.

Informacja o kompatybilności

Jest to inny system bloków z własnym zestawem i zachowaniem.
Programy MOCPilot nie są kompatybilne z projektami Scratch: nie można importować programów MOCPilot do Scratcha ani projektów Scratch do MOCPilot.

Kształty bloków i ich znaczenie

Bloki startowe

block_event_when_program_started.svgblock_event_when.svg

Rozpoczynają skrypt, gdy wystąpi określone zdarzenie. Bloki mogą być dołączane tylko poniżej.


Bloki poleceń

block_control_wait_for.svgblock_sensors_timer_reset.svg

Główne bloki poleceń wykonujące akcje.


Bloki C

block_control_if.svgblock_control_if_else.svg

Bloki sterujące w kształcie litery C, które zawierają zagnieżdżone stosy bloków (pętle/warunki).


Bloki raportujące

block_sensors_timer_value_float.svgblock_operator_math_single.svg

Zwracają wartości, takie jak liczby lub tekst.


Bloki logiczne

block_operator_equal.svgblock_operator_string_contains.svg

Zwracają tylko true lub false, zazwyczaj używane w warunkach.


Bloki kończące

block_control_stop.svgblock_control_repeat_forever.svg

Kończą skrypt i nie pozwalają na dodanie bloków poniżej.


Stos bloków

blocks_stack.svg

Stos bloków to sekwencja połączonych bloków, która działa jako jeden przepływ skryptu od góry do dołu.
Zwykle zaczyna się od bloku zdarzenia, a następnie wykonuje podłączone bloki w kolejności.


Model wykonywania skryptu

  • Skrypt zwykle zaczyna się od bloku zdarzenia.
  • Połączone bloki wykonywane są od góry do dołu.
  • Wiele skryptów może działać równolegle.
  • Bloki wiadomości (broadcast) służą do synchronizacji skryptów.
  • Stos bloków to sekwencja połączonych bloków.

Dane i wartości

  • Bloki raportujące mogą być zagnieżdżane w polach wejściowych poleceń i warunków.
  • Zmienne przechowują wartości używane wielokrotnie w blokach i skryptach.
  • Listy przechowują uporządkowane kolekcje danych (historia, kolejki, wyszukiwanie).

Zdarzenia i czas

  • Bloki zdarzeń reagują na działania użytkownika, stan huba, czujniki lub wiadomości.
  • Zdarzenia oparte na czasie i czujnikach mogą być wyzwalane bardzo często.
  • Używaj progów, filtrowania lub krótkich opóźnień, aby ograniczyć nadmiar wywołań.

Hub, porty i kontrolery

  • Bloki huba odnoszą się do kontekstu huba i portów.
  • Niektóre bloki są dostępne tylko dla określonych rodzin hubów/urządzeń.
  • Bloki pulpitu i gamepada zapewniają wejście użytkownika i kontrolę UI w czasie działania.

Zalecany workflow

  1. Zacznij od jednego bloku zdarzenia i prostego skryptu.
  2. Wcześnie sprawdź kierunki i zakresy silników/czujników.
  3. Wydziel powtarzalną logikę za pomocą komunikatów i pomocniczych skryptów.
  4. Dodaj zabezpieczenia (limity, zatrzymania, wartości zapasowe) przed finalnym dostrojeniem.

Typowe błędy

  • Brak bloku zdarzenia powoduje, że skrypt nigdy się nie uruchomi.
  • Nieprawidłowy wybór huba/portu powoduje brak efektu.
  • Mieszanie typów wartości (tekst/liczba/boolean) może powodować błędy logiczne.
  • Zdarzenia o wysokiej częstotliwości bez filtrowania mogą przeciążyć działanie.

Struktura dokumentacji w tej sekcji

Używaj stron kategorii w następującej kolejności:

  • Światło
  • Silniki
  • Czujniki
  • Zdarzenia
  • Sterowanie
  • Operatory
  • Zmienne
  • Listy
  • Moje bloki
  • Kontrolery pulpitu
  • Gamepad