12. april 2002 - 21:26Der er
9 kommentarer og 1 løsning
Highscore-liste i flash-application
Hej Eksperter!
Er det muligt at lave en highscore liste i flash uden at bruge ASP.. Altså hvis man nu har lavet et spil med points og man så har lavet det til en .exe-fil ??
Ved godt det er lidt ***** skrevet, men I forstår hvad jeg mener =)
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
Ja, så kan du max huske en hiscore liste per gang du kører filen, med mindre du opretter en fil ved siden af den skal gemme det i, men så ved jeg ikke om du skal bruge ASP eller PHP til at hente variablerne ind med.
Det er faktisk muligt at lave en lille finte med en .txt fil. Virker dog kun i Flash 5 og MX.
I stand-alone players (kun .exe og .hqx filer, ikke i en browser/web) kan du gemme dine variabler, som fx i en high-score, direkte på brugerens harddisk i en tekst fil. Altså kan du lave et Flash spil der gemmer high-score lokalt som et hvert andet spil.
Det er dog kun muligt at save variabler der ligger i _root, så hvis du har dem i et movieclip skal de først overføres til _root.
Hvis du fx har en variabel som yourPoints = 2297; - og spillet skal afsluttes, så benytter du en fscommand på en knap eller lignende. Den vil se således ud:
on (release) { fscommand ("save", "navnetPaaTekstFilen.txt"); }
Under file -> publish settings skal du kun afkrydse Windows Projector eller Mac Projector. I samme folder/rod som du gemmer din .fla fil kan du efter filen er afspillet se en tekst fil, som fx navnetPaaTekstFilen.txt. Det er desuden muligt at gemme med en anden path, og enddog en anden file-extension end .txt hvis du vil det.
Tekst filen vil så have &yourPoints=2297 (eller din egen high-score selvfølgelig ;0) som indhold. Ved at benytte en ganske normal loadVariables kan du så hente denne tekst fils variabler som normalt, og din high-score virker.
Hvis det var en løsning som denne du ledte efter, så er alt jo godt. Så vidt jeg da ved er det ikke muligt at bruge ASP eller PHP i stand-alone players.
paask > hvis jeg ny siger at det er en frame der fortæller at pointene skal blive sendt videre til et andet text-field.. (score = points) men det er vel nok "score" der skal sendes til .txt-filen ?
Men vil du ikke prøve at skrive hvordan koden skal se ud, hvis vi siger at feltet med pointene hedder "score" og de skal sendes til hiscore.txt (kan man ikke sende det til en .ini-fil eller noget andet end .txt ?) Hvordan får man spillet til at hente highscore-listen?? Kan man have mere end en score på listen? Er det muligt at man osse kan gøre så'n så brugeren kan skrive sit navn?
jeg er rede til at give flere points hvis det bliver for stort et arbejde... hvis du vil se spillet så klik dig ind på http://www.friserverplads.dk/bird_hunter så kan du se hvad det er du har med at gøre...
Jeg har været væk et stykke tid, så jeg har først set din kommentar nu. Jeg tager dine spm. lidt af gangen...
1. Én ting du skal gøre dig klar er, præcist hvilke variabelnavne du vil benytte. Du kan som sagt gemme eksternt, og så er det for så vidt fuldstændig ligemeget hvor mange variabler eller hvilke navne de har. Hvis du undervejs i spillet gemmer points i variablen score, og når spillet er slut overfører til variablen points, så er det oplagt at det er den du skal gemme.
2. Du kan sagtens gemme den eksterne fil som "highscore.ini" og filen vil ligne en .ini fil på brugerens maskine. Ligeledes kan du gemme som .gif eller lignende - maskinen vil tolke filen alt efter hvilken extension du giver. Det nytter dog ingenting, for indholdet er tekst og du kan kun bruge filen som en .txt fil. Men det vil altså sige du kan gemme som "blabla.gif" - brugeren vil ikke vide hvilken fil det så er, og du kan benytte den som normalt. Jeg vil nok foreslå dig bare at holde dig til "highscore.txt".
3. I første frame i din movie kan du loade den eksterne fil således: loadVariables("highscore.txt",""); Hvis filen endnu ikke er skabt gør det intet, hvis den er vil du på den måde hente den eksterne fil og have alle tidligere gemte variabler til rådighed.
4. Du kan godt have flere scores, ellers vil der jo ingen idé være med en high-score liste ;0)
Det drejer sig bare om, at du i slutningen af spillet skal foretage nogle checks. Forskellige variabel checks o.lign. fra den eksterne fil kan afgøre hvilken placering brugeren kan få, alt efter points størrelse. Derefter kan du navngive variablen points som ex. "placering5" og gemme den variabel.
5. Ved at have et input felt med variabelnavnet "name" kan brugeren indtaste sit navn. Når du så gemmer den eksterne fil vil denne variabel ligeledes gemmes og navnet er husket til senere brug.
Det eneste det her drejer sig om er, at du formår at kaste variabler og værdier frem og tilbage mellem dynamiske tekstfelter internt i din movie samt at sammenføre dem med din eksterne txt fil - så burde du snildt kunne kreere en fint funktionel high-score liste :0)
Jo tak.. det hjalp vel en lille smule med den lange forklaring, men jeg er stadig ikke helt sikker på hvor jeg skal lægge de forskellige koder.. Det er først her for nylig jeg er begyndt at programmere i Flash, normalt plejede jeg bare at bruge gotoandplay(1) og alle deder.. (du ved sikkert godt hvad jeg mener?)
Men vil du ikke lige prøve at beskrive lidt hvordan det foregår..
Og så kan jeg samtidig fortælle lidt om hvordan det er bygget op og alt det der..
Introen er én scene, der hvor man skyder fugle er én scene, og der tilsidst med pointene er også én scene..
Highscore-listen skal være på sidste side, med 5 (ellere flere) scores..
Men hvordan skal det så gøres så'n at navnet osse kommer med?? Skal jeg lave en frame mellem der hvor man skyder fuglene og der hvor man får points, hvor man kan skrive sit navn, og se sine points...?
Resten af det skal der vist ikke pilles så meget ved, tror jeg.. Jeg er igang med nogen få andre forbedringer samtidig...
Håber du fandt ud af det flash-man! Jeg har ikke så meget tid til eksperten lige i øjeblikket, så jeg fik aldrig set videre på din high-score liste. Jeg vil foreslå dig at søge på nogle forskellige tutorial sites, det kan jo være du ikke er den første med samme ønske :0)
Det drejer sig i bund og grund blot om, at du får styr på en masse if-else if-else sætninger og lignende. Så kan kan i slutningen af skyde scenen have en frame med stop(); action. Der kan man se sine point og indtaste sit navn, alt efter om man har nok points eller ej. Håber du klarer den :0)
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.