Avatar billede the_timster Nybegynder
09. august 2001 - 12:29 Der er 16 kommentarer og
1 løsning

Scener/Load movie - og Variabler


Hej.

Jeg vil lige høre jeres synspunkter på følgende problem(er).

Jeg er igang med et spil, hvor der kommer til at være en level (med \"flere skærme\" på hver level), hvor hver \"skærm\" har en betragtelig kb størrelse.

Jeg har tænkt mig, før spillet starter, at loade grundgrafikken ind som skal bruges igennem hele spillet, som f.eks heltens og monstrenes animationer, og derefter loade skærm for skærm, eller måske flere sammenhængende skærme af gangen.

Men nu er jeg blevet lidt i tvivl om hvordan man kan stukturere det mest hensigtsmæssigt.

Som jeg ser det, står valget imellem at lave en loadmovie for hver skærm eller køre alt som een swf, og bruge interne flash-scener for hver skærm.

Problemet med loadmovie, er så vidt jeg ved, at mc\'et ikke bliver cachet, og at man skal loade igen når man skal fra skærm 2 og til skærm 1(som man har været på).
Det ville vist også blive noget rod med variabel referencer til og fra det loadede mc + at man skulle dublikere Helt/monster mc ind i det loadede mc, som jeg slet ikke er sikker på man kan.

At bruge interne flash-scener(altså alt i en swf), virker umiddelbart mest fornuftigt på mig.
Jeg har rodet med at overføre variabler fra en scene til en anden i en flashfilm, og kan dette egentlig lade sig gøre?
Jeg har tænkt på at lade Javascript holde alle de vigtige variabler, som man gerne vil have med til næste scene som f.eks hitpoints, ammo osv.

Spørgsmålet er om man kan loade en swf delvist ind, og så \"stoppe\" indloadningen, for at senere starte den igen.
Man kunne jo preloade til de første par scenes er inde, og så loade videre mens man spiller dem.
Men ville det ikke indvirke på performance, at den står og loader i baggrunden?

Puha, for en smøre...

Timster.


Avatar billede lingoman Nybegynder
09. august 2001 - 13:09 #1
Du kunne jo placere de loadede dele udenfor synsfeldtet når de ikke er i brug og derved undgå at de skal loades igen...

Selve loadings processen har ikke indflydelse på afviklingen med mindre at den fil som loader også begynder at afspille.

mvh geo
Avatar billede the_timster Nybegynder
09. august 2001 - 13:20 #2
Men kan man overføre variabler fra en scene til en anden?
Avatar billede lingoman Nybegynder
09. august 2001 - 13:51 #3
Variabler hører til i samme timeline som de bliver deklareret. Hvis du har adgang til en timeline, så har du også adgang til dets variabler via den sædvanlige dot syntaks.

Hvis du gerne vil have variabler som skal eksistere uafhængigt af nogle timelines kan du gøre det ved at definere et objekt.

lad os sige at jeg gerne vil have en \'global\' variabel som skal hedde \"myVar\" som der skal være adgang til fra hvilken som helst timeline. Der gør jeg via denne deklaration:

Object.prototype.myVar = \"hello\"

Nu vil du så kunne se fra alle timelines

trace(\"myVar is \" + Object.prototype.myVar);  //output vindue viser \"hello\"

Håber at det hjælper!

mvh geo

Avatar billede lingoman Nybegynder
09. august 2001 - 14:33 #4
Ja, man kan overføre variabler fra en scene til en anden. Du skal bare huske at gemme dem som beskrevet for oven:-)
Avatar billede the_timster Nybegynder
09. august 2001 - 14:34 #5
<Geo

Ok, det virker jo fint...

Men angående loadning, hvis jeg nu har brugt et mc på scene 1, skal den så loade den ind igen hvis jeg bruger den i scene 2?
Du snakkede jo om at lade mc\'erne ligge uden for synsfeltet, men når jeg skifter scene, så forsvinder de vel...

Hilsen, Timster

Avatar billede lingoman Nybegynder
09. august 2001 - 15:00 #6
Dine scener har jo et Library til fælles. Så dine MC\'er behøver ikke at loade dem igen. Dog må du være opmærksom på at det er forskellige instancer af dit MC som bruges i forskellige scener. Hvis du gerne vil genbruge den samme instance i nye scener vil jeg tro at du skal gemme selve instance\'t på samme måde som variablerne, dvs inden du forlader den første scene

Object.prototype.myMC = ditMCinstance

Derefter i den nye scene

mitInstanceFraScene1 = Object.prototype.myMC

og placere den på scenen via actionScript.

Instancer \'lever\' så længe der er noget som refererer til dem. Så vi kan undgå at den bliver slettet ved at gemme den i variblen som overlever sceneskift.

Det er en måde at bevare instancen på, men det er langt nemmere at bruge forskellige frame segmenter i samme timeline så den samme MC instance bliver automatisk brugt.

mvh geo
Avatar billede nikolajdu Nybegynder
09. august 2001 - 15:12 #7
Den skal ikke loade det ind igen. Det sørger du selvfølgelig for med en preloader. Du bør nemlig have n preloader til så store film. Denne loader så samtlige scener ind og så er problemet der slet ikke.
Avatar billede the_timster Nybegynder
09. august 2001 - 15:17 #8

>nikolajdu

I know, men jeg ville gerne undgå at man skal preloade hele filmen på omkring en 2-3mb. :) (Ukontrollet brug af animationer i 8 retninger med 15 frames pr. retning i det lækre .png format)
Så hellere preloade de første scener, og lade spilleren kommer i gang med dem.

>Geo
\"...men det er langt nemmere at bruge forskellige frame segmenter i samme timeline så den samme MC instance bliver automatisk brugt.\"

Forslår du at man laver de forskellige \"skærme\" på een timeline, i stedet for at bruge interne scener?

Hilsen, Timster.
Avatar billede nikolajdu Nybegynder
09. august 2001 - 15:21 #9
Jamen hvis filen er så stor - så preloader du da bare mens brugeren ser på scene 1 og 2.

Og undskyld mig så lige, men hvis det er fordi du vil bruge 750 kb png billeder at filen bliver stor - Så kan der ikke være meget at se på din side og jeg ville formodenlig ikke komme igen. Måske aldrig få set den.

Er det virkeligt nødvendligt med png??
Avatar billede lingoman Nybegynder
09. august 2001 - 15:21 #10
Nikolaj> jeg tror at det som timster er bekymret for er at evt. egenskaber som en MC instace har fået i en scene ikke kommer med i en anden scene.
Avatar billede the_timster Nybegynder
09. august 2001 - 15:29 #11
>Geo

Det er jo ikke en side, men et spil.
Jeg går ud fra at man kan komme til at spille efter en 400 til 500 kb...

Alt grafik er stort set lavet i 3dsmax og exporteret i png(med transparens), så der kommer perfekt antialiasing mellem objekter og baggrund.
Selve scenen er et jpg på omkring en 25 kb.

Hele pointen med det her projekt, er at \"fyre den af\", og prøve at få det til at ligne et flash-spil så lidt som muligt.

Det bliver sandt nok, ikke en sag for en 56k\'er, men nu er jeg mest interesseret i at prøve at mase flash to the limit, og så lade dem der gider vente lidt, se noget lidt anderledes.

Bare for sjov :)

Timster.
Avatar billede the_timster Nybegynder
09. august 2001 - 15:31 #12
Sorry... ovenstående besked var til nikolajdu...
ikke Lingoman.. :)
Avatar billede nikolajdu Nybegynder
09. august 2001 - 15:32 #13
Timster - Nu ved jeg ikke med din maskine, men som regel er min 500 mhz ikke specielt glad for animeret billeder. Bare sårn et godt råd ;-)
Avatar billede the_timster Nybegynder
09. august 2001 - 15:36 #14
>nikolajdu
Jeg tror det kommer an på hvordan man bruger billederne...
Det er jo ikke store tungw bitmap tweening jeg bruger, som somregel sætter computeren på prøve...

Jeg sidder hovedsageligt og laver spillet på en 233 mhz bærbar, og der kører det fint..

Timster
Avatar billede lingoman Nybegynder
10. august 2001 - 17:02 #15
Nå timster... hvor\'n går det med dine scener og variabler?
Avatar billede the_timster Nybegynder
13. august 2001 - 10:03 #16
jo... Nu kom der lige nye bekymringer, men jeg tror jeg vil prøve at lave alt i en timeline, opdelt i levels.
Hvis ikke det går, bliver det vel i forskellige scener, med brug af Object.

Men tak igen for dine gode ideer... :)

Avatar billede lingoman Nybegynder
13. august 2001 - 13:26 #17
Tak for point:)
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

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



Seneste spørgsmål Seneste aktivitet
I dag 20:46 opkaldside Af hagbartm i Mobiltelefoner
I dag 16:05 win 10 vil ikke boote Af bb69 i Windows
I dag 11:20 Lenovo x390 Af tobberjas i PC
I dag 10:14 Alder i Excel Af Nanarsi i Excel
I dag 09:00 Flere linier på faneblad Af Peder Lund Nielsen i Excel