Avatar billede tania_nielsen Nybegynder
11. september 2003 - 11:16 Der 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?
Avatar billede kanding Nybegynder
11. september 2003 - 11:54 #1
Hej igen !

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:

property pSpeakList
property pNumOfEntries
property pCurrentSpeak
property pTimeObj
property pTime

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
       
    me.shutUp()
   
  end if
 
end

on shutUp me
  pTimeObj.forget()
end
Avatar billede tania_nielsen Nybegynder
11. september 2003 - 12:36 #2
Hejsa

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.
Avatar billede kanding Nybegynder
11. september 2003 - 13:37 #3
har du udskiftet
pSpeakList = ["minLyd", "minLyd2", "minLyd3"]
med navnene på dine egne lyde
Avatar billede tania_nielsen Nybegynder
12. september 2003 - 08:49 #4
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 :)
Avatar billede tania_nielsen Nybegynder
16. september 2003 - 15:38 #5
Til kanding
Jeg har fået det til at virke med den første løsning du gav! Så mange tak for hjælpen.
Avatar billede tania_nielsen Nybegynder
16. september 2003 - 15:39 #6
**********
Avatar billede kanding Nybegynder
16. september 2003 - 16:16 #7
Jamen så håber jeg da at du kan bruge de 100 point selv :-)
Avatar billede tania_nielsen Nybegynder
17. september 2003 - 09:39 #8
Ja jeg har nu fundet ud af jeg kunne have lukket spørgsmålet istedet, når man ikke har fået et svar man kunne bruge.
Avatar billede kanding Nybegynder
17. september 2003 - 10:18 #9
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.
Avatar billede tania_nielsen Nybegynder
17. september 2003 - 11:31 #10
'**************************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 :-)
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester