Introducere în blocuri
MOCPilot utilizează un sistem de programare vizuală bazat pe blocuri, similar ca aspect și comportament cu Scratch.
Fiecare bloc are un rol specific, iar combinațiile valide definesc fluxul de control și fluxul de date într-un script.
Sistemul folosește logică drag-and-drop și modele de interacțiune similare cu Scratch pentru a oferi un mod convenabil și familiar de a construi programe.
Acesta este un sistem diferit de blocuri, cu propriul set de blocuri și comportament.
Programele MOCPilot nu sunt compatibile cu proiectele Scratch: programele MOCPilot nu pot fi importate în Scratch, iar programele Scratch nu pot fi importate în MOCPilot.
Forme de blocuri și semnificația lor
Blocuri Hat
Pornește un script atunci când apare un anumit eveniment. Blocurile pot fi atașate doar dedesubt.
Blocuri Stack
Blocuri principale de comandă care execută acțiuni.
Blocuri C
Blocuri de control în formă de C care conțin stive de blocuri imbricate (bucle/condiții).
Blocuri Reporter
Returnează valori precum numere sau șiruri de caractere.
Blocuri Booleene
Returnează doar true sau false, utilizate de obicei în condiții.
Blocuri Cap
Încheie scripturile și nu permit atașarea altor blocuri dedesubt.
Stivă de blocuri
O stivă de blocuri este o secvență de blocuri conectate care rulează ca un singur flux de script de sus în jos.
Stivele încep de obicei cu un bloc de eveniment și apoi execută blocurile atașate în ordine.
Modelul de execuție al scriptului
- Un script începe de obicei de la un bloc de eveniment.
- Blocurile conectate se execută de sus în jos.
- Mai multe scripturi pot rula în paralel.
- Blocurile de mesaj/broadcast sunt utilizate pentru sincronizarea scripturilor.
- O stivă de blocuri este o secvență de blocuri conectate între ele.
Date și valori
- Blocurile reporter pot fi imbricate în intrările blocurilor de comandă sau condiții.
- Variabilele stochează valori reutilizabile între blocuri și scripturi.
- Listele stochează colecții ordonate pentru istoric, cozi și date de tip lookup.
Evenimente și temporizare
- Blocurile de eveniment reacționează la inputul utilizatorului, starea hub-ului, senzori sau mesaje.
- Evenimentele bazate pe timer și senzori pot fi declanșate frecvent.
- Folosește praguri, filtrare sau mici întârzieri pentru a reduce declanșările repetitive.
Hub, porturi și controlere
- Blocurile de hub țintesc contextul hub-ului și al porturilor.
- Unele blocuri sunt disponibile doar pentru anumite familii de hub-uri/dispozitive.
- Blocurile de dashboard și gamepad oferă input în runtime și control UI.
Flux de lucru recomandat
- Începe cu un bloc de eveniment și un script minim.
- Verifică direcția și intervalele motoarelor/senzorilor din timp.
- Extrage logica repetitivă folosind mesaje și scripturi auxiliare.
- Adaugă măsuri de siguranță (limite, opriri, valori fallback) înainte de reglajul final.
Capcane frecvente
- Lipsa unui bloc de eveniment înseamnă că scriptul nu pornește.
- Selectarea greșită a hub-ului/portului duce la lipsa efectului vizibil.
- Amestecarea tipurilor de valori (text/număr/boolean) poate produce logică invalidă.
- Evenimentele cu frecvență mare fără filtrare pot supraîncărca comportamentul.
Structura documentației în această secțiune
Folosește paginile de categorie în această ordine:
- Lumină
- Motoare
- Senzori
- Evenimente
- Control
- Operatori
- Variabile
- Liste
- Blocurile mele
- Controale Dashboard
- Gamepad