Animatron 8.3: En Animatronic Controller (8 / 9 steg)
Steg 8: A-kod körs i Animatron8.3
Nu är vi redo att börja köra. HUVUDLOOP utför tre viktiga funktioner:
- Söker efter skiss control och pausar om en extern ställs
- Reagerar på externa ingångart. Just nu, det är en hybrid av externa och interna inout. Det enda scenariot kodade är om skriptet kräver en ljudfil att spela, Animatron8.3 kommer att läsa ljud kuvertet av ljudet och flytta munnen unisont, men detta är där ytterligare funktioner kommer att genomföras, såsom:
Kontrollera om det finns plats för besökare
check för närheten av besökaren
Leta efter vsitor kommentar (förhör)
Den tredje funktionen är att köra A-kod. Varje fördefinierad åtgärd, agerar på manusobjektet och objektet spelare för att uppnå önskat resultat. (Ok, du purister, jag vet att dessa inte är "objekt", men om detta var programmerade i c + +, skulle de vara. Så snälla klippa mig något slack).
Jag ska ge ett par pseudo kodexempel. Observera att varje åtgärd börjar med ett felsökningsuttryck; Jag hopanden som
OK, slumpmässiga paus...
- ställa in min = ScriptDescription
- Ställa in max = ScriptOption
- Ange timepause = rnd () *(Max-min) + min
- Ställa in PlayerEndWait*= currenttime (ms) + timepause
- Som nästa steg för spelaren att ScriptStack
* PlayerEndWait är en matris som används i definitionen av spelare. En spelare blir inte en annan tid skiva förrän den aktuella tiden är större än PlayerEndWait.
En annan populär kommandot, PlayMove
- Får kommandot flytta från minnet indexeras av ScriptDescription
- Skicka den via seriell kommunikation till servo controller.
- Som nästa steg för spelaren att ScriptStack