Spring til hovedindhold

Introduktion Til Blokke

MOCPilot bruger et visuelt blokprogrammeringssystem, der ligner Scratch i både udseende og brug. Hver blok har en specifik rolle, og gyldige kombinationer definerer kontrolflow og dataflow i et script. Det bruger træk-og-slip-logik og Scratch-lignende interaktionsmønstre for at give en praktisk og velkendt måde at bygge programmer på.

Kompatibilitetsmeddelelse

Dette er et andet bloksystem med sit eget bloksæt og sin egen adfærd. MOCPilot-programmer er ikke kompatible med Scratch-projekter: MOCPilot-programmer kan ikke importeres til Scratch, og Scratch-programmer kan ikke importeres til MOCPilot.

Blokformer og betydning

Hat-blokke

block_event_when_program_started.svgblock_event_when.svg

Starter et script, når en bestemt hændelse opstår. Blokke kan kun sættes under.


Stak-blokke

block_control_wait_for.svgblock_sensors_timer_reset.svg

Primære kommandoblokke, der udfører handlinger.


C-blokke

block_control_if.svgblock_control_if_else.svg

C-formede kontrolblokke, der indeholder indlejrede blokstakke (løkker/betingelser).


Reporter-blokke

block_sensors_timer_value_float.svgblock_operator_math_single.svg

Returnerer værdier som tal eller tekst.


Booleske blokke

block_operator_equal.svgblock_operator_string_contains.svg

Returnerer kun true eller false, typisk brugt i betingelser.


Afslutningsblokke

block_control_stop.svgblock_control_repeat_forever.svg

Afslutter scripts og tillader ikke blokke under.


Blokstak

blocks_stack.svg

En blokstak er en sekvens af forbundne blokke, der kører som ét samlet scriptflow fra top til bund. Stakke starter normalt med en hændelsesblok og udfører derefter de tilknyttede blokke i rækkefølge.


Script-udførelsesmodel

  • Et script starter normalt fra en hændelsesblok.
  • Forbundne stak-blokke kører fra top til bund.
  • Flere scripts kan køre parallelt.
  • Besked-/broadcast-blokke bruges til at synkronisere scripts.
  • En blokstak er en sekvens af blokke, der er forbundet med hinanden.

Data og værdier

  • Reporter-blokke kan indlejres i input til kommandoer/betingelser.
  • Variabler gemmer genbrugelige værdier på tværs af blokke og scripts.
  • Lister gemmer ordnede samlinger til historik, køer og opslag.

Hændelser og timing

  • Hændelsesblokke reagerer på brugerinput, hub-tilstand, sensorer eller beskeder.
  • Timer- og sensorbaserede hændelser kan udløses ofte.
  • Brug tærskler, filtrering eller korte ventetider for at reducere støjende gentagne triggere.

Hub, porte og controllere

  • Hub-blokke målretter hub- og portkontekst.
  • Nogle blokke er kun tilgængelige for specifikke hub-familier/enheder.
  • Dashboard- og gamepad-blokke giver input under kørsel og UI-kontrol.

Anbefalet arbejdsgang

  1. Start med én hændelsesblok og et minimalt script.
  2. Bekræft tidligt motor-/sensorretning og intervaller.
  3. Udtræk gentaget logik med beskeder og hjælpescripts.
  4. Tilføj sikkerhedsforanstaltninger (grænser, stop, fallback-værdier) før endelig finjustering.

Almindelige faldgruber

  • Manglende hændelses-startblok betyder, at scriptet aldrig starter.
  • Forkert valg af hub/port giver ingen synlig effekt.
  • Blandede værdi-typer (tekst/tal/boolean) kan give ugyldig logik.
  • Højfrekvente hændelser uden filtrering kan overbelaste adfærden.

Dokumentationsstruktur i denne sektion

Brug kategorisider i denne rækkefølge:

  • Lys
  • Motorer
  • Sensorer
  • Hændelser
  • Kontrol
  • Operatorer
  • Variabler
  • Lister
  • Mine Blokke
  • Dashboard-controllere
  • Gamepad