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.
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
Rozpoczynają skrypt, gdy wystąpi określone zdarzenie. Bloki mogą być dołączane tylko poniżej.
Bloki poleceń
Główne bloki poleceń wykonujące akcje.
Bloki C
Bloki sterujące w kształcie litery C, które zawierają zagnieżdżone stosy bloków (pętle/warunki).
Bloki raportujące
Zwracają wartości, takie jak liczby lub tekst.
Bloki logiczne
Zwracają tylko true lub false, zazwyczaj używane w warunkach.
Bloki kończące
Kończą skrypt i nie pozwalają na dodanie bloków poniżej.
Stos bloków
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
- Zacznij od jednego bloku zdarzenia i prostego skryptu.
- Wcześnie sprawdź kierunki i zakresy silników/czujników.
- Wydziel powtarzalną logikę za pomocą komunikatów i pomocniczych skryptów.
- 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