11. september 2003 - 11:16Der er
9 kommentarer og 1 løsning
talende figur
Jeg har en figur der taler, men hvordan får jeg den til at stoppe, når lyden er færdig? Og til at starte igen ved en ny replik. Jeg har replikkerne enkeltvis?
Mundbevægelserne er som et childobject, der henter mundbevægelserne fra en liste.(se evt mit tidligere spørgsmål her på siden)
Jeg har ikke arbejdet med lyde på den her måde før, og ved derfor ikke hvordan jeg kan kontrollerer hvornår en lyd slutter, hvis det er det jeg skal bruge?
Prøv at kigge i hjælpe filen under sound, der kan du se hvad director kan med hensyn til lyd.... (bare for at blive lidt klogere). Jweg har lige tilrettet scriptet lidt. Åben "speaker script" og slet alt. Indsæt dette istedet:
on new me pTime = 100 -- 100 = 1/10 sekund. Altså mellemrummet mellem lydene return me end
on speak me pTimeObj = timeout("Speaker").new(pTime, #makeNoise, me) pSpeakList = ["minLyd", "minLyd2", "minLyd3"] pNumOfEntries = pSpeakList.count pCurrentSpeak = 1 -- vi kalder makeNoise med det samme for at få lyd fra starten me.makeNoise() end
on makeNoise me
if sound(1).isBusy() then exit end if
sound(1).play(member(pSpeakList[pCurrentSpeak]))
pCurrentSpeak = pCurrentSpeak + 1 if pCurrentSpeak > pNumOfEntries then
Det script virker desværre ikke, figuren taler ikke, da den forlader makenoise handleren for tidligt og lyden loopes også hele tiden i 0.1 sek. øv Replikkerne har forskellig længe og jeg har 2 figurer der skal tale sammen, så når den ene er færdig skal den anden svare. Det skal de i starten af spillet og det kan jeg bare ikke få til at virke.
Ja det er det samme, hvad enten det er navnene på replikkerne eller mundbevægelserne. Nu prøver jeg lige om jeg kan styre det med en timer og gør childobjektet synligt og usynligt, så det passer med lyden. Så håber jeg det virker :)
Af rent principielle årsager så vil jeg nævne at du skriver at du har fået det til at virke med den første løsning jeg kom med. Glem point'ne, men husk at folk her på eksperten yder en indsats og hjælper måske indirekte. Helt færdige løsninger er selvfølgelig dejlige, men det kan man ikke forvente hver gang.
'**************************Til den der skal have en figur til at tale*****************************************
Den delvise Løsning er under indlægget "En figur, der skal "tale til replikker".
Resten af løsningen er her: Der der mange måder at styre tidsobjekternes fremkomst. Jeg har styret dem med lydens endtime. under makeNoise tilføjer man:
if sound(1).endtime < member("soundxx").duration then resetAnimation() end if
on resetAnimation me sprite(yy).member = member("talk1") end
Ganske enkelt simpelthen :-) Rigtig god fornøjelse, det giver en fed effekt :-)
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.