Avatar billede franne Nybegynder
06. december 2001 - 09:36 Der er 24 kommentarer og
1 løsning

Enarmet ??

Jeg er ved at lave en enarmet tyvknægt.
Den har 3 ruller(movieklip).
Hvert movieklip består af en animation hvor den slutter et tilfældigt sted mellem frame 40 - 46.
40 - 46 indeholder f.eks 3 kirsebær 2 annanas og 1 bar.
Nu skal den jo gerne give nogle point når f.eks der er 3 bar.

Hvor og hvordan starter jeg ???
Avatar billede pixelpaw Nybegynder
06. december 2001 - 09:44 #1
Du kan lave en funktion du kører når alle 3 ruller er stoppet.

Kunne f.eks. være noget i denne stil:

Først, i hver frame (40-46) laver du en variabel der svarer til det den viser:

_root.rulle1 = kirse;


Så kalder du denne funktion:

function checkRuller(){
  if (_root.rulle1 == _root.rulle2 && _root.rulle1 == _root.rulle3) {
    if (_root.rulle1 == \"kirse\") {
      _root.point += 10;
    } else if (_root.rulle1 == \"annanas\") {
      _root.point += 20;
    } else if (_root.rulle1 == \"bar\") {
      _root.point += 50;
    }
  }
}
Avatar billede pixelpaw Nybegynder
06. december 2001 - 09:45 #2
oops, lille fejl:

_root.rulle1 = kirse;

skal være

_root.rulle1 = \"kirse\";
Avatar billede franne Nybegynder
06. december 2001 - 10:21 #3
Hvor skal jeg ligge funktionen ?
Avatar billede franne Nybegynder
06. december 2001 - 10:25 #4
Og hvordan kader jeg den ?
Avatar billede cgleerup Nybegynder
06. december 2001 - 10:31 #5
Der er naturligvis mange muligheder - og bare for at afveksle lidt kommer her en anden løsning som jeg mener vil være optimal.

Da du siger du har lavet movieclips der slutter et tilfældigtsted imellem frame x og frame x2 kan du jo blot lade disse frames lægge værdier til en variabel du kalder for score.

Altså laver du en tekst, som defineres af variablen score. Derefter laver du i de enkelte frames i dit movieclip nogle henvisninger til denne variabel, hvori du lægger pointene til!
Avatar billede franne Nybegynder
06. december 2001 - 10:41 #6
til cgleerup:
Der skal ikke lægges til i pointene hvis det f.eks er tre forskellige rullerne lander på.
Altså skal der ikke lægges til hver gang rulle1 lander på kirsebær.

Avatar billede pixelpaw Nybegynder
06. december 2001 - 10:51 #7
franne, du skal ligge funktionen i roden af din movie (_root)

Hvis dine ruller standser én efter én, kan du kalde funktionen fra den sidste rulle:

_root.checkRuller();
Avatar billede cgleerup Nybegynder
06. december 2001 - 10:54 #8
Korrekt - det havde jeg ikke lige tænkt på, og jeg ved at din løsning virker, det var blot for at give et par valgmuligheder.

Men hvis rulle 1 deffinere varibalen \"counter1\" rulle 2 \"counter2\" og rulle 3 \"counter3\" Så skal der blot laves et tjek på disse 3 variabler hvis de er ens, er der et goto til et bestemt punkt i movien.

Avatar billede lingoman Nybegynder
06. december 2001 - 10:58 #9
Hvis du gerne vil tildele point alt efter hvor mange felter der er ens gemmer du resultaterne i en Array (liste) for at optælle dem (gem dette tal i en variabel \'antalEns\'). Hvis nogen er ens (antalEns > 1) så kan du tildele point alt efter hvad resultatet var. Hvis du viser hvor meget der skal scores med de forskellige muligheder kan vi sikkert hjælpe dig med actionen.
mvh geo
Avatar billede franne Nybegynder
06. december 2001 - 11:18 #10
pixelpaw,
Nu har jeg så tildelt frame 40-43 i de 3 movieklips:
_root.rulle1 = \"kirse\";

I rulle3 den der også stopper sidst
har jeg skrevet en ekstra linie i frames 40-46:
_root.checkRuller();

På min hovedtidslinie har jeg lagt følgende ind:




Avatar billede franne Nybegynder
06. december 2001 - 12:43 #11
pixelpaw 
Det virker næsten.
Når den tæller point lægger den ikke sammen som tal.
dvs. 0 + 10 + 10 bliver til 01010
Avatar billede cgleerup Nybegynder
06. december 2001 - 12:47 #12
prøv lige med ++ i stedet for +
Avatar billede franne Nybegynder
06. december 2001 - 12:54 #13
Jeg får fejl:

Scene=Scene 1, Layer=kode, Frame=1: Line 4: Left side of assignment operator must be variable or property.
          _root.point ++= 10;
Avatar billede cgleerup Nybegynder
06. december 2001 - 12:55 #14
_root.point = +10;
eller
_root.point = ++10;
Avatar billede lingoman Nybegynder
06. december 2001 - 13:00 #15
_root.point += 10;
Avatar billede pixelpaw Nybegynder
06. december 2001 - 13:03 #16
hvis du vil ligge flere forskellige tal sammen:
Number(0) + Number(10) + Number(10);

Hvis du bare vil forøge et tal:

_root.point += 10;
Avatar billede cgleerup Nybegynder
06. december 2001 - 13:04 #17
ups, selvfølgelig - jeg blandede lige nogle ting sammen,

Pixelpaw har ret!
Avatar billede franne Nybegynder
06. december 2001 - 13:12 #18
Hvordan får jeg det lige ind i denne:

function checkRuller(){
  if (_root.rulle1 == _root.rulle2 && _root.rulle1 == _root.rulle3) {
    if (_root.rulle1 == \"kirse\") {
      _root.point += 10;
    } else if (_root.rulle1 == \"annanas\") {
      _root.point += 20;
    } else if (_root.rulle1 == \"bar\") {
      _root.point += 50;
    }
  }
}
Avatar billede pixelpaw Nybegynder
06. december 2001 - 13:17 #19
du skal sørge for at du fra starten har en variabel i _root:

Første frame:
point = 0;

derefter burde funktionen selv ligge henholdvis 10, 20 og 50 point til din score.
Avatar billede franne Nybegynder
06. december 2001 - 13:20 #20
der er kun 1 frame. Betyder det noget ??
Avatar billede pixelpaw Nybegynder
06. december 2001 - 13:23 #21
nej
Avatar billede franne Nybegynder
06. december 2001 - 13:35 #22
Tak for hjælpen..
Avatar billede pixelpaw Nybegynder
06. december 2001 - 13:39 #23
velbekomme
Avatar billede franne Nybegynder
06. december 2001 - 13:53 #24
Der var jeg lidt hurtig !!!!
Det virker til at den giver point hver gang der et kirse på rulle3.
Det er den hvor der står :
_root.checkRuller();

i frames 40-46
??????
Avatar billede pixelpaw Nybegynder
07. december 2001 - 10:23 #25
franne, kan du ikke sende filen til paw@risedata.dk?

så kan jeg lige se hvad der sker
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
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

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