Vil lige høre om det er muligt at danne nye filer når man builder et projekt.
Kunne nemlig godt tænke mig at hvis jeg placerede en ny wave fil i en bestemt mappe så blev der automatisk lavet en tilhørende .cs fil.
Således at hvis jeg ligger en Eksplosion.wave fil ind i min soundEffect mappe, når jeg så lavede en build blev der lavet en Eksplosion.cs fil med de nødvendige metoder for at afspille lyden. Denne Eksplosion.cs fil skulle så blive tilføjet til mit projekt.
Har kigget lidt på pre-build event command line, men mangler inspiration til hvordan det hele skulle gøres.
windcape har læst lidt om factory pattern, men det giver desværre ikke helt den ønskede funktionalitet. Det jeg vil have er muligheden for at f.eks. Eksplosion.cs bliver en del at mit projekt på godt og ondt. F.eks. hvis jeg får det laves sådan at min Eksplosion.cs bliver fjernet hvis jeg fjerner min Eksplosion.wave fil(Kræver selvfølgelig en Build), Det vil resultere i compile fejl, som nemt kan rettes, men hvis jeg bruger en factory ved jeg ikke lige hvordan jeg skulle kunne opdage det før run time.
Arne kan du komme med lidt mere info til hvordan det skal gøres i msbuild script? Sidder nemlig og overvejer at lave et ny commando promt program og kalde det fra pre-event
Det er strengt taget heller ikke nødvendig med en kode-fil til hver lyd. Det eneste jeg ønsker at opnår er mulighede for at opdage om en Wave fil eksistere på compiler tidspunktet.
Nedestående XNA eksemple vil f.eks. fint compile, men resultere i en fejl så snart det bliver afviklet.
audioEngine = new AudioEngine("Content\\Audio\\MyGameAudio.xgs"); waveBank = new WaveBank(audioEngine, "Content\\Audio\\Wave Bank.xwb"); soundBank = new SoundBank(audioEngine, "Content\\Audio\\Sound Bank.xsb"); backgroundMusic = soundBank.GetCue("LydDerIkkeFindes");
backgroundMusic.Play();
Hvis jeg derimod lavede et lille program som scannede mine lyd filer igennem og oprettede klasser til hver enkelt. Kunne jeg i stedet for benytte mig af følgende kode.
Eksplosion.Play();
Hvis jeg så fjerner Eksplosion.wave, så vil mit program i pre-event build opdage det og fjerne Eksplosion.cs, hvilket vil resultere i compiler fejl ved alle de steder hvor jeg kalder Eksplosion.Play()og det er lige præcis den funktionalitet jeg ønsker at opnå.
Men er det ikke mere relevant med et runtime test om ressourcerne er der runtime end et compile time test om de er der ved compile ?
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.