Avatar billede tania_nielsen Nybegynder
10. september 2003 - 12:14 Der er 2 kommentarer og
1 løsning

en figur, der skal "tale" til replikker

Jeg er ved at lave et computerspil med en figur, der skal "tale".
Det skal se ud som om den taler, imens replikkerne afspilles. Jeg har  5 forskellige mundbevægelser, som skal skiftes imellem.

Jeg har brugt en repeat funktion, men det er jeg ikke tilfreds med, da  computeren bruger al fokus på at  køre den, så den kan ikke afbrydes. Jeg forestillede mig at kunne hente værdierne ud af en liste, men det kan jeg bare ikke få til at fungere. Listen skal så gentages, så længe replikken kører, men hvordan? Hvordan får jeg den til at gentage, så det er i et tempo, så det ligner figuren taler.

Jeg håber virkeligt en kan hjælpe mig :)
Avatar billede lingodingo Nybegynder
10. september 2003 - 13:32 #1
Jeg ved ikke om du kender det, men i visse lyd programmer kan du sætte et "cue point" og give det et navn. Når du så indsætter din lyd i Director kan du læse de cue points (hvor lyden er her og nu) og bruge dem i din lingo. På den måde kan du synkronisere din grafik på scenen med din lyd, evt. ved at henvise til en liste, eller lav en cue point navne struktur så du kan sende værdien til en handler som så sætter din grafik.

FX:  oSound1, oSound2 osv.

if dinHandlerVærdi contains "oSound" then........

J
http://www.balther.dk
Avatar billede kanding Nybegynder
10. september 2003 - 13:48 #2
Du kan bruge lyd med cue points der skifter grafik når den når til et cuepoint, men det kræver at al lyden ligger i en lang fil.
Du kan også teste i en exitFrame loop om en lyd spiller, hvilken lyd det er og så skifte grafik.

Sidst forslag fra min side er dette.

Lav et parent script

--------------------- PARENT SCRIPT ----------------------
property pSpeakList
property pNumOfEntries
property pCurrentSpeak
property pTimeObj
property pTime

on new me
  pTime = 1000 -- 1 sekund
  return me
end

on speak me
  pTimeObj = timeout("Speaker").new(pTime, #makeNoise, me)
  pSpeakList = ["Hello world", "I'm talking to you", "Do you like me?"]
  pNumOfEntries = pSpeakList.count
  pCurrentSpeak = 1
end

on makeNoise me
-- her skal du så skifte grafik og afspille lyden
  put pSpeakList[pCurrentSpeak]

  pCurrentSpeak = pCurrentSpeak + 1
  if pCurrentSpeak > pNumOfEntries then
    pCurrentSpeak = 1
  end if
end

on shutUp me
  pTimeObj.forget()
end

------------------------- END SCRIPT --------------------

Du opretter det således:
global gSpeakMGR

on startMovie
  gSpeakMGR = new(script "speaker script")
end

og kalder det med:
gSpeakMGR.speak()

Prøv at kigge og se om du ikke kan fiddle ting og sager ind i makeNoise funktionen
Avatar billede tania_nielsen Nybegynder
11. september 2003 - 10:56 #3
Hej Kanding
Tusind tak for hjælpen :)
Figuren taler nu, men hvordan får jeg hende til at stoppe, når lyden er færdig? Og til at starte igen ved en ny replik.Jeg har replikkerne enkeltvis?
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