4 Äänet ja musikki. 4.1 Wav-tiedostojen soittaminen SoundEffect-luokka

Koko: px
Aloita esitys sivulta:

Download "4 Äänet ja musikki. 4.1 Wav-tiedostojen soittaminen SoundEffect-luokka"

Transkriptio

1 4 Äänet ja musikki XNA Framework -luokkakirjasto sisältää useita luokkia, joiden avulla voidaan XNApeliohjelmassa toteuttaa taustamusiikin ja äänitehosteiden soittaminen. XNApeliohjelmissa yksittäiset äänitiedostot ovat tavallisesti.wav- tai.mp3-formaatissa. Yksinkertaisin tapa soittaa.wav-formaatissa olevia äänitiedostoja on käyttää SoundEffect-luokkaa. MP3-formaatissa olevien äänitiedostojen soittamiseen XNA Framework -luokkakirjastossa on MediaPlayer-luokat. XNA Framework sisältää näiden pääasiassa yksittäisten äänitiedostojen soittamiseen tarkoitettujen luokkien lisäksi myös muutamia muita luokkia, joita käytetään useammista äänitiedostoista koostuvien monipuolisempien äänimaailmojen toteuttamisessa. Nämä luokat toimivat yhdessä Microsoft Cross-Platform Audio Creation Tool -sovelluksen (XACT) kanssa. Microsoft Cross-Platform Audio Creation Tool -sovellus on ohjelma, jonka avulla voidaan hallita XNA-peliohjelmassa käytettäviä äänitiedostoja ja näiden soittamista. 4.1 Wav-tiedostojen soittaminen Aaltotiedostojen (.wav) soittamiseen XNA Framework -luokkakirjastossa on seuraavat luokat: o SoundEffect o SoundEffectInstance o DynamicSoundEffectInstance XNA-peliohjelmissa, joissa ei tarvita kovin montaa äänitiedostoa, niin näiden luokkien avulla voidaan toteuttaa kaikki XNA-peliohjelmassa tarvittavien.wav-formaatissa olevien äänitiedostojen soittaminen SoundEffect-luokka SoundEffect-luokka mahdollistaa yksittäisten äänitiedostojen soittamisen XNApeliohjelmassa. Yksinkertaisimmillaan peliohjelmaprojektiin mukaan otettu.wavformaatissa oleva äänitiedosto voidaan soittaa seuraavalla tavalla: SoundEffect wavsoundeffect; // Load a XnaBounce.wav wave file. wavsoundeffect = Content.Load<SoundEffect>("Audio\\XnaBounce"); wavsoundeffect.play(); SoundEffect-luokassa on Play()-metodin lisäksi muitakin metodeja ja ominaisuuksia, joiden avulla voidaan vaikuttaa äänitiedoston soittoon. Osa SoundEffect-luokan 95

2 metodeista on staattisia eli niitä voidaan käyttää ilman, että SoundEffect-luokasta luodaan objektia. Esimerkiksi, staattisen MasterVolume-ominaisuuden avulla voidaan säätää soittoäänen voimakkuus. XNA-peliohjelmassa soittoäänen voimakkuuden säätö voitaisiin suorittaa seuraavalla tavalla: // Volume, ranging from 0.0f (Silence) to 1.0f (Device volume). SoundEffect.MasterVolume = 0.5f; SoundEffect-luokka sisältää seuraavat ominaisuudet: o DistanceScale o DopplerScale o Duration o IsDisposed o MasterVolume o Name o SpeedofSound Edellä lueteltujen ominaisuuksien lisäksi SoundEffect-luokka sisältää joitakin metodeja. SoundEffect-luokka sisältää seuraavat public-tyyppiset metodit: o CreateInstance() o Dispose() o Equals() o FromStreams() o GetHasGode() o GetSampleDuration() o GetSampleSizeInByte(() o GetType() o Play() o ToString() SoundEffectInstance-luokka SoundEffectInstance-luokan avulla SoundEffect-tyyppiseen äänitiedostojen soittamiseen saadaan tuotua mukaan lisää soiton hallinan toimintoja. Esimerkiksi, äänitiedoston soitto voidaan pysäyttää (Stop), keskeyttää (Pause) ja jatkaa taas soittoa (Resume). SoundEffectInstance-luokka mahdollistaa myös SoundEffect-tyyppisten äänitiedostojen soiton monipuolisemman säätämisen. Äänitiedoston soiton erilaisia ominaisuuksia kuten pan, pitch ja loop asetuksia voidaan tehdä. SoundEffectInstanceluokkassa olevan Apply3D()-metodin avulla voidaan lisäksi suorittaa 3D-äänimaailman asetuksia (3D positioning) käyttäen XNA Framework -luokkakirjaston AutoEmiter- ja AutoListener-luokkaa. Ääniefektiä varten eli SoundEffect-tyyppistä objektia varten SoundEffectInstance-luokan tyyppisen objektin saa luotua siten, että SoundEffectobjektin suhteen kutsutaan SoundEffect-luokan CreateInstance()-metodia. CreateInstance()-metodi palauttaa SoundEffectInstance-luokan tyyppisen objektin, 96 XNA Peliohjelmointi

3 jonka äänitiedoston soittamista voidaan kontrolloida käyttämällä SoundEffectInstanceluokan ominaisuuksia ja metodeja. SoundEffectInstance-tyyppisen objektin saa luotua seuraavalla tavalla: wavsoundeffectinstance = wavsoundeffect.createinstance(); SoundEffectInstance-tyyppisen objektin luomisen jälkeen, objektia voidaan käyttää äänitiedoston soittamiseen SoundEffect-objektin asemasta. SoundEffectInstanceluokassa on seuraavat ominaisuudet: o IsDisposed o IsLooped o Pan o Pitch o State o Volume Edellä lueteltujen ominaisuuksien lisäksi SoundEffectInstance-luokka sisältää joitakin metodeja. SoundEffectInstance-luokka sisältää seuraavat public-tyyppiset metodit: o Apply3D() o Dispose() o Equals() o GetHashCode() o GetType() o Pause() o Play() o Resume() o Stop() o ToString() XnaSounds-ohjelma XnaSounds-ohjelma on esimerkki siitä, kuinka XNA-peliohjelmassa voidaan soittaa.wav-formaatissa olevia äänitiedostoja. Ohjelmassa soitetaan XnaLaser.wav nimistä äänitiedostoa. Äänitiedoston soittaminen suoritetaan SoundEffect- ja SoundEffectInstance-luokan avulla. Soittaminen käynnistetään painamalla Xbox peliohjaimen nappia A (Play). Soittaminen pysähtyy painamalla nappia B (Pause). Soittaminen jatkuu painamalla nappia X (Resume). Ohjelma koostuu Program.cs- ja XnaGame.cs-tiedostosta sekä XnaLaser.wav-äänitiedostosta ja XnaFont.spritefontfonttitiedostosta. Seuraavassa on esitelty edellä mainittujen lähdetekstitiedostojen sisältämät ohjelmakoodit. 97

4 Program.cs Program.cs-lähdetekstitiedosto sisältää Main()-metodin eli ohjelman aloituskohdan. Kuvassa 4-1 on esitetty Program.cs-tiedoston ohjelmakoodi. /* Program.cs Copyright Markku Rahikainen. */ using System; namespace XnaGame static class Program static void Main(string[] args) using (XnaGame game = new XnaGame()) game.run(); XnaGame.cs Kuva 4-1. XnaSounds-ohjelman Program.cs-tiedosto. XnaGame.cs-lähdetekstitiedosto sisältää edellä mainitut Xbox 360 -peliohjaimen käsittelyssä ja äänitiedoston soittamisessa tarvittavat ohjelmarakenteet Kuvassa 4-2 on esitetty XnaGame.cs-tiedoston ohjelmakoodi. /* XnaGame.cs Copyright Markku Rahikainen. */ using System; using System.Collections.Generic; using System.Linq; using Microsoft.Xna.Framework; using Microsoft.Xna.Framework.Audio; using Microsoft.Xna.Framework.Content; using Microsoft.Xna.Framework.GamerServices; using Microsoft.Xna.Framework.Graphics; using Microsoft.Xna.Framework.Input; using Microsoft.Xna.Framework.Media; 98 XNA Peliohjelmointi

5 namespace XnaGame public class XnaGame : Microsoft.Xna.Framework.Game // HW GraphicsDeviceManager graphics; SpriteBatch spritebatch; // Screen static int windowheight = 85; static int windowwidth = 300; Rectangle titlesafearea; // GamePad GamePadState gamepadstate; Int32 buttonfilter = 0; // Text SpriteFont infofont; // Sounds SoundEffect wavsoundeffect; SoundEffectInstance wavsoundeffectinstance; public XnaGame() graphics = new GraphicsDeviceManager(this); Content.RootDirectory = "Content"; // Set default screen width and height. graphics.preferredbackbufferheight = windowheight; graphics.preferredbackbufferwidth = windowwidth; graphics.applychanges(); // Screen Window.Title = "XnaSounds"; protected override void Initialize() // TODO: Add your initialization logic here base.initialize(); protected override void LoadContent() // Screen titlesafearea = GraphicsDevice.Viewport.TitleSafeArea; // Create a new SpriteBatch, which // can be used to draw textures. spritebatch = new SpriteBatch(GraphicsDevice); 99

6 // Text infofont = Content.Load<SpriteFont>( "Fonts\\XnaFont"); // Sounds wavsoundeffect = Content.Load<SoundEffect>( "Audio\\Wav\\XnaLaser"); SoundEffect.MasterVolume = 0.5f; // Create a dynamic sound effect instance. wavsoundeffectinstance = wavsoundeffect.createinstance(); protected override void UnloadContent() // TODO: Unload any non ContentManager content here protected override void Update(GameTime gametime) // Allows the game to exit. if (Keyboard.GetState(PlayerIndex.One).IsKeyDown(Keys.Escape) GamePad.GetState(PlayerIndex.One).Buttons.Back == ButtonState.Pressed) this.exit(); // Read the GamePad state. gamepadstate = GamePad.GetState(PlayerIndex.One); // Play the sound. if (gamepadstate.buttons.a == ButtonState.Pressed && buttonfilter <= 0) buttonfilter = 20; wavsoundeffectinstance.play(); else buttonfilter--; // Pause if (gamepadstate.buttons.b == ButtonState.Pressed) wavsoundeffectinstance.pause(); 100 XNA Peliohjelmointi

7 // Resume if (gamepadstate.buttons.x == ButtonState.Pressed) wavsoundeffectinstance.resume(); base.update(gametime); protected override void Draw(GameTime gametime) GraphicsDevice.Clear(Color.White); spritebatch.begin(); spritebatch.drawstring(infofont, "Play - Press button 'A'", new Vector2(10.0f, 10.0f), new Color(0, 0, 0)); spritebatch.drawstring(infofont, "Pause - Press button 'B'", new Vector2(10.0f, 30.0f), new Color(0, 0, 0)); spritebatch.drawstring( infofont, "Resume - Press button 'X'", new Vector2(10.0f, 50.0f), new Color(0, 0, 0)); spritebatch.end(); base.draw(gametime); Kuva 4-2. XnaSounds-ohjelman XnaGame.cs-tiedosto. Kun XnaSounds-projektin toteuttaa, suorittaa ohjelman kääntämisen ja käynnistää ohjelman, niin kuvan 4-3 mukainen ikkuna aukeaa näytölle. Kuva 4-3. XnaSounds-ohjelman ohjelmaikkuna

8 4.1.3 DynamicSoundEffectInstance-luokka DynamicSoundEffectInstance-luokka sisältää ominaisuuksia, metodeja ja eventtejä soittopuskurin (Audio Buffer) sisällön soittamiseen (Play back). DynamicSoundEffectInstance-tyyppisen objektin avulla päästään suoraan käsiksi soittopuskurin sisältöön. Tämä mahdollistaa soittoäänen manipuloinnin, äänitiedoston paloittelun pienempiin osiin ja äänen streemauksen. DynamicSoundEffectInstanceluokka sisältää samat ominaisuudet ja metodit, kuin SoundEffectInstance-luokka. Näiden lisäksi luokassa on joitakin lähinnä soittopuskurin (Audio Buffer) käsittelyyn tarkoitettuja ominaisuuksia, metodeja ja eventtejä. DynamicSoundEffectInstanceluokassa on SoundEffectInstance-luokassa olevien ominaisuuksien lisäksi seuraava ominaisuus: o PendingBufferCount DynamicSoundEffectInstance-luokassa on SoundEffectInstance-luokassa olevien metodien lisäksi seuraava metodit: o GetSampleDuration() o GetSampleSizeInBytes() o SubmitBuffer() DynamicSoundEffectInstance-luokassa on edellä esitettyjen ominaisuuksien ja metodien lisäksi seuraava eventti: o BufferNeeded XnaSoundStream-ohjelma XnaSoundsStream-ohjelma on esimerkki siitä, kuinka XNA-peliohjelmassa voidaan streemata soittodataa.wav-formaatissa olevasta äänitiedostosta. Ohjelmassa käytetään äänitiedostona edellisessä esimerkissä käytettyä XnaLaser.wav-äänitiedostoa. Äänitiedoston streemaaminen käynnistetään painamalla Xbox 360 -peliohjaimen nappia A (Play). Streemaaminen pysäytetään painamalla nappia B (Stop). Ohjelma koostuu Program.cs- ja XnaGame.cs-tiedostosta sekä XnaLaser.wav-äänitiedostosta ja XnaFont.spritefont-fonttitiedostosta. Seuraavassa on esitelty edellä mainittujen lähdetekstitiedostojen sisältämät ohjelmakoodit. Program.cs Program.cs-lähdetekstitiedosto sisältää Main()-metodin eli ohjelman aloituskohdan. Kuvassa 4-4 on esitetty Program.cs-tiedoston ohjelmakoodi. /* Program.cs Copyright Markku Rahikainen. 102 XNA Peliohjelmointi

9 */ using System; namespace XnaGame static class Program static void Main(string[] args) using (XnaGame game = new XnaGame()) game.run(); XnaGame.cs Kuva 4-4. XnaSoundStream-ohjelman Program.cs-tiedosto. XnaGame.cs-lähdetekstitiedosto sisältää edellä mainitut Xbox 360 -peliohjaimen käsittelyssä ja äänitiedoston streemaamisessa tarvittavat ohjelmarakenteet. Kuvassa 4-5 on esitetty XnaGame.cs-tiedoston ohjelmakoodi. /* XnaGame.cs Copyright Markku Rahikainen. */ using System; using System.Collections.Generic; using System.Linq; using Microsoft.Xna.Framework; using Microsoft.Xna.Framework.Audio; using Microsoft.Xna.Framework.Content; using Microsoft.Xna.Framework.GamerServices; using Microsoft.Xna.Framework.Graphics; using Microsoft.Xna.Framework.Input; using Microsoft.Xna.Framework.Media; using System.IO; namespace XnaGame public class XnaGame : Microsoft.Xna.Framework.Game // HW GraphicsDeviceManager graphics; 103

10 SpriteBatch spritebatch; // Screen static int windowheight = 600; static int windowwidth = 800; Rectangle titlesafearea; // GamePad GamePadState gamepadstate; GamePadState keyboardstateold; // Text SpriteFont infofont; // Stream DynamicSoundEffectInstance dynamicsound; int position; int counter; byte[] bytesoundarray; BinaryReader binaryreader; public XnaGame() graphics = new GraphicsDeviceManager(this); Content.RootDirectory = "Content"; // Set default screen width and height. graphics.preferredbackbufferheight = windowheight; graphics.preferredbackbufferwidth = windowwidth; graphics.applychanges(); // Screen Window.Title = "XnaSoundStream"; protected override void Initialize() // TODO: Add your initialization logic here base.initialize(); protected override void LoadContent() // Screen titlesafearea = GraphicsDevice.Viewport.TitleSafeArea; // Create a new SpriteBatch, which // can be used to draw textures. spritebatch = new SpriteBatch(GraphicsDevice); // Text infofont = Content.Load<SpriteFont>("Fonts\\XnaFont"); 104 XNA Peliohjelmointi

11 // Stream // - Open the audio data. Stream wavefilestream = TitleContainer.OpenStream( "Content\\Audio\\Wav\\XnaLaser.wav"); // - Create a new binary reader to // read from the audio stream. binaryreader = new BinaryReader( wavefilestream); // - Read the wave file header from the buffer. int ChunkID = binaryreader.readint32(); int FileSize = binaryreader.readint32(); int RiffType = binaryreader.readint32(); int FmtID = binaryreader.readint32(); int FmtSize = binaryreader.readint32(); int FmtCode = binaryreader.readint16(); int Channels = binaryreader.readint16(); int SampleRate = binaryreader.readint32(); int FmtAvgBPS = binaryreader.readint32(); int FmtBlockAlign = binaryreader.readint16(); int BitDepth = binaryreader.readint16(); if (FmtSize == 18) // - Read any extra values. int FmtExtraSize = binaryreader.readint16(); binaryreader.readbytes(fmtextrasize); int DataID = binaryreader.readint32(); int DataSize = binaryreader.readint32(); // - Store the audio data of the // wave file to a byte array. bytesoundarray = binaryreader.readbytes(datasize); // - Create the new dynamic sound effect instance using // the sample rate and channel information extracted // from the sound file. dynamicsound = new DynamicSoundEffectInstance( SampleRate, (AudioChannels)Channels); // - Store the size of the audio buffer that // is needed in the count variable. Submit // data in 100 ms chunks. counter = dynamicsound.getsamplesizeinbytes( TimeSpan.FromMilliseconds(100)); 105

12 // - Set up the dynamic sound effect's // buffer needed event handler so // audio data can be read when it // needs more data. dynamicsound.bufferneeded += new EventHandler<EventArgs>( DynamicSound_BufferNeeded); // The buffer needed event handler. void DynamicSound_BufferNeeded(object sender, EventArgs e) dynamicsound.submitbuffer(bytesoundarray, position, counter / 2); dynamicsound.submitbuffer(bytesoundarray, position + counter / 2, counter / 2); position += counter; if (position + counter > bytesoundarray.length) position = 0; protected override void UnloadContent() // TODO: Unload any non ContentManager content here protected override void Update(GameTime gametime) // Allows the game to exit. if (Keyboard.GetState(PlayerIndex.One).IsKeyDown(Keys.Escape) GamePad.GetState(PlayerIndex.One).Buttons.Back == ButtonState.Pressed) this.exit(); gamepadstate = GamePad.GetState(PlayerIndex.One); if (keyboardstateold!= gamepadstate) 106 XNA Peliohjelmointi

13 if (gamepadstate.buttons.a == ButtonState.Pressed) dynamicsound.play(); if (gamepadstate.buttons.b == ButtonState.Pressed) dynamicsound.stop(); keyboardstateold = gamepadstate; base.update(gametime); protected override void Draw(GameTime gametime) GraphicsDevice.Clear(Color.White); spritebatch.begin(); spritebatch.drawstring(infofont, "Play - Press button 'A'", new Vector2(10.0f, 10.0f), new Color(0, 0, 0)); spritebatch.drawstring(infofont, "Stop - Press button 'B'", new Vector2(10.0f, 30.0f), new Color(0, 0, 0)); spritebatch.end(); base.draw(gametime); Kuva 4-5. XnaSoundsStream-ohjelman XnaGame.cs-tiedosto. Kun XnaSoundsStream-projektin toteuttaa, suorittaa ohjelman kääntämisen ja käynnistää ohjelman, niin kuvan 4-6 mukainen ikkuna aukeaa näytölle. Kuva 4-6. XnaSounds-ohjelman ohjelmaikkuna

14 4.2 MP3-tiedostojen soittaminen XNA-peliohjelmissa.mp3-formaatissa olevia musiikkitiedostoja voidaan soittaa käyttämällä Song- ja MediaPlayer-luokkaa Song-luokka Song-luokka mahdollistaa.mp3-formaatissa olevan musiikkitiedoston käyttämisen XNA-peliohjelmassa. Song-luokan tyyppiseen objektiin voidaan ladata.mp3- formaatissa olevan musiikkitiedoston sisältö. Musiikitiedostot on otettava XNApeliohjelman projektiin mukaan projektitiedostoiksi aivan samalla tavalla, kuin jos ne olisivat esimerkiksi.cs-lähdetetkstitiedostoja. Tällöin musiikkitiedostot tulevat käännettyä ja näin niistä tuotetaan.xnb-formaatissa olevia tiedostoja, joita voidaan ladata ohjelman käyttöön. Musiikkitiedoston, jonka nimi on esimerkiksi Music.mp3 lataaminen voidaan suorittaa seuraavalla tavalla: Song song; Song song = Content.Load<Song>("Audio\\Music"); Musiikkitiedoston lataamisen jälkeen Song-luokan ominaisuuksien avulla voidaan selvittää esimerkiksi albumi, artisti, kappaleen nimi ja kappaleen soittoaika. Musiikkitiedoston soittaminen voidaan lataamisen jälkeen suorittaa MediaPlayerluokan avulla. Song-luokka sisältää seuraavat ominaisuudet: o Album o Artist o Duration o Genre o IsDisposed o IsProtected o IsRated o Name o PlayCount o Rating o TrackNumber Song-luokassa on edellä esitettyjen ominaisuuksien lisäksi seuraavat metodit: o Dispose() o Equals() o FromUri() o GetHasCode() o GetType() o op_equality() 108 XNA Peliohjelmointi

15 o op_inequality() o ToString() Musiikkitiedoston lataamisen jälkeen Song-luokan ominaisuuksien avulla voidaan selvittää musiikkitiedostoon liittyvää informaatiota. Seuraavassa on joitakin esimerkkejä Song-luokan ominaisuuksien käytöstä: Album album = song.album; TimeSpan duration = song.duration; String name = song.name; Int32 palycount = song.playcount; Int32 rating = song.rating; Int32 tracknumber = song.tracknumber; MediaPlayer-luokka MediaPlayer-luokka mahdollistaa Song-tyyppisiin objekteihin ladattujen musiikkitiedostojen soittamisen. MediaPlayer-luokassa on ominaisuuksia ja metodeja, joiden avulla musiikkitiedoston soittamista voidaan hallita (Play(), Pause(), Stop(), Resume(), jne.) MediaPlayer-luokassa on seuraavat ominaisuudet: o GameHasControl o IsMuted o IsRepeating o IsShuffled o IsVisualizationEnabled o PlayPosition o Queue o State o Volume MediaPlayer-luokassa on edellä esitettyjen ominaisuuksien lisäksi seuraavat metodit: o GetVisualizationData() o MoveNext() o MovePrevious() o Pause() o Play() o Resume() o Stop() Song-luokan tyyppiseen objektiin ladattu musiikkitiedosto voidaan soittaa MediaPlayer-luokan avulla seuraavalla tavalla: MediaPlayer.Play(song); 109

16 XnaSoundMp3-ohjelma XnaSoundsMp3-ohjelma on esimerkki siitä, kuinka XNA-peliohjelmassa voidaan soittaa.wav-formaatissa olevia äänitiedostoja. Ohjelmassa soitetaan yhtä.mp3- formaatissa olevaa äänitiedostoa. Äänitiedoston soittaminen suoritetaan Song- ja MediaPlayer-luokan avulla. Soittaminen käynnistetään painamalla Xbox peliohjaimen nappia A (Play). Soittaminen pysähtyy painamalla nappia B (Stop). Soittaminen keskeytyy painamalla nappia X (Pause). Soittaminen jatkuu keskeytyksen jälkeen painamalla nappia Y (Resume). Edellä mainittujen toimintojen lisäksi näytölle tulostetaan kappaleen kokonaiskesto ja kuinka kauan kappletta on jo soitettu. Ohjelma koostuu Program.cs- ja XnaGame.cs-tiedostosta sekä Piano.mp3-äänitiedostosta ja XnaFont.spritefont-fonttitiedostosta. Seuraavassa on esitelty edellä mainittujen lähdetekstitiedostojen sisältämät ohjelmakoodit. Program.cs Program.cs-lähdetekstitiedosto sisältää Main()-metodin eli ohjelman aloituskohdan. Kuvassa 4-7 on esitetty Program.cs-tiedoston ohjelmakoodi. /* Program.cs Copyright Markku Rahikainen. */ using System; namespace XnaGame static class Program static void Main(string[] args) using (XnaGame game = new XnaGame()) game.run(); XnaGame.cs Kuva 4-7. XnaSoundMp3-ohjelman Program.cs-tiedosto. XnaGame.cs-lähdetekstitiedosto sisältää edellä mainitut Xbox 360 -peliohjaimen käsittelyssä ja äänitiedoston soittamisessa tarvittavat ohjelmarakenteet. Kuvassa 4-8 on esitetty XnaGame.cs-tiedoston ohjelmakoodi. 110 XNA Peliohjelmointi

17 /* XnaGame.cs Copyright Markku Rahikainen. */ using System; using System.Collections.Generic; using System.Linq; using Microsoft.Xna.Framework; using Microsoft.Xna.Framework.Audio; using Microsoft.Xna.Framework.Content; using Microsoft.Xna.Framework.GamerServices; using Microsoft.Xna.Framework.Graphics; using Microsoft.Xna.Framework.Input; using Microsoft.Xna.Framework.Media; namespace XnaGame public class XnaGame : Microsoft.Xna.Framework.Game // HW GraphicsDeviceManager graphics; SpriteBatch spritebatch; // Screen static int windowheight = 160; static int windowwidth = 270; Rectangle titlesafearea; // Text SpriteFont infofont; // GamePad GamePadState gamepadstate; // Sounds Song song; public XnaGame() graphics = new GraphicsDeviceManager(this); Content.RootDirectory = "Content"; // Set default screen width and height. graphics.preferredbackbufferheight = windowheight; graphics.preferredbackbufferwidth = windowwidth; graphics.applychanges(); // Screen Window.Title = "XnaSoundsMP3"; 111

18 protected override void Initialize() // TODO: Add your initialization logic here base.initialize(); protected override void LoadContent() // Screen titlesafearea = GraphicsDevice.Viewport.TitleSafeArea; // Create a new SpriteBatch, which // can be used to draw textures. spritebatch = new SpriteBatch(GraphicsDevice); // Text infofont = Content.Load<SpriteFont>( "Fonts\\XnaFont"); // Sounds song = Content.Load<Song>("Audio\\Mp3\\Piano"); protected override void UnloadContent() // TODO: Unload any non ContentManager content here protected override void Update(GameTime gametime) // Allows the game to exit if (Keyboard.GetState(PlayerIndex.One).IsKeyDown(Keys.Escape) GamePad.GetState(PlayerIndex.One).Buttons.Back == ButtonState.Pressed) this.exit(); // Read the GamePad state. gamepadstate = GamePad.GetState(PlayerIndex.One); // Sounds if (gamepadstate.buttons.a == ButtonState.Pressed) MediaPlayer.Play(song); 112 XNA Peliohjelmointi

19 if (gamepadstate.buttons.b == ButtonState.Pressed) MediaPlayer.Stop(); if (gamepadstate.buttons.x == ButtonState.Pressed) MediaPlayer.Pause(); if (gamepadstate.buttons.y == ButtonState.Pressed) MediaPlayer.Resume(); base.update(gametime); protected override void Draw(GameTime gametime) GraphicsDevice.Clear(Color.White); spritebatch.begin(); spritebatch.drawstring(infofont, "Play - Press button 'A'", new Vector2(10.0f, 10.0f), new Color(0, 0, 0)); spritebatch.drawstring(infofont, "Stop - Press button 'B'", new Vector2(10.0f, 30.0f), new Color(0, 0, 0)); spritebatch.drawstring(infofont, "Pause - Press button 'X'", new Vector2(10.0f, 50.0f), new Color(0, 0, 0)); spritebatch.drawstring(infofont, "Resume - Press button 'Y'", new Vector2(10.0f, 70.0f), new Color(0, 0, 0)); spritebatch.end(); spritebatch.begin(); spritebatch.drawstring(infofont, "Name: " + song.name, new Vector2(10.0f, 110.0f), new Color(0, 0, 0)); spritebatch.drawstring(infofont, CreateTimeString( MediaPlayer.PlayPosition) + " / " + CreateTimeString(song.Duration), new Vector2(10.0f, 130.0f), new Color(0, 0, 0)); spritebatch.end(); base.draw(gametime); 113

20 public string CreateTimeString(TimeSpan TimeData) int Minutes = TimeData.Minutes; int Seconds = TimeData.Seconds; if (Seconds < 10) return Minutes + ":0" + Seconds; else return Minutes + ":" + Seconds; Kuva 4-8. XnaSoundMp3-ohjelman XnaGame.cs-tiedosto. Kun XnaSoundMp3-projektin toteuttaa, suorittaa ohjelman kääntämisen ja käynnistää ohjelman, niin kuvan 4-9 mukainen ikkuna aukeaa näytölle. Kuva 4-9. XnaSoundMp3-ohjelman ohjelmaikkuna. 4.3 Cross-Platform Audio Creation Tool XNA Game Studio -ohjelmiston mukana tulee Microsoftin Cross-Platform Audio Creation Tool -työkaluohjelmisto (XACT-ohjelma). XACT-ohjelmaa käytetään äänitiedostojen hallintaan ja organisointiin sekä pelissä käytettävien äänitehosteiden ja musiikin suunnitteluun. XACT-ohjelman avulla XNA-peliohjelmaa varten voidaan paketoida valmiita äänitiedostoja sopiviksi kokonaisuuksiksi, jotka saadaan Content Pipeline -prosessiin mukaan ja tätä kautta XNA-peliohjelman käyttöön. XACT-ohjelma mahdollistaa äänitiedostojen paketoinnin lisäksi sen, että paketoitujen musiikki- ja 114 XNA Peliohjelmointi

21 äänitiedostojen soittamista voidaan säätää yksinkertaisten efektien avulla. Esimerkiksi, äänenkorkeutta (Pitch) ja äänenvoimakkuutta (Volume) voidaan säätää. Vaikka XACTohjelma mahdollistaa edellä mainittujen kaltaisten efektien lisäämisen soitettaviin ääniin, niin tästä huolimatta XACT-ohjelma ei ole kuitenkaan äänitiedostojen editointiohjelma. XACT-ohjelma vastaanottaa valmiita äänitiedostoja ja muokkaa näistä paketteja, joita voidaan ottaa XNA-peliohjelmassa käyttöön. XACT-ohjelma on näin ennemminkin äänitiedostojen ryhmittely-, organisointi-, hallinta- ja suunnittelutyökalu, joka helpottaa XNA-peliohjelmissa monimutkaisten äänimaailmojen toteuttamista. XACT-ohjelma paketoi musiikki- ja äänitiedostot XACT-projektitiedostoon (.xap). XACT-projektitiedosto on sellaisessa muodossa, jonka Content Pipeline pystyy käsittelemään. Tällä tavalla musiikki- ja äänitiedostot saadaan XNA-peliohjelmassa käyttöön. XACT-ohjelmalla voidaan paketoida WAV (.wav), AIFF (.aif) ja XMA (.xma) formaatissa olevia äänitiedostoja. XACTprojektitiedostoon paketoitujen äänitiedostojen soittamiseen XNA Framework - luokkakirjastossa on Audio API -rajapinta. Kuvassa 4-10 on esitetty kaavio äänitiedostojen soittamisen eri vaiheista XNA-peliohjelmissa, kun äänitiedostot paketoidaan XACT-ohjelman avulla. Kuva Kaavio äänitiedostojen soittamisen eri vaiheista XNA-peliohjelmassa, kun äänitiedostot paketoidaan XACT-ohjelman avulla XACT-projektitiedosto XACT-projektitiedoston tekeminen tarkoittaa sitä, että XACT-ohjelman avulla suoritetaan XNA-peliohjelmassa tarvittavien musiikki- ja äänitiedostojen paketointi yhdeksi XACT-projektitiedostoksi. XACT-projektitiedosto on tekstitiedosto, joka sisältää tiedot pelissä käytettävistä äänitiedostoista sekä äänitiedostojen soittamiseen liittyvästä soittoinformaatiosta. Kun tämä XACT-projektitiedosto otetaan XNApeliprojektiin mukaan lähdetekstitiedostona ja käännetään projektin mukana eli ContentPipeline käsittelee tiedoston, niin saadaan generoitua seuraavat kolme tiedostoa. o Wave Bank (.xwb) 115

22 o Sound Bank (.xsb) o General settings (.xgs) Wave Bank (Aaltopankki) Wave Bank -tiedosto pitää sisällään äänitiedostoja (wav, aif jne.). Wave Bank - tiedostoja voi yhdessä XNA-peliohjelmassa olla yksi tai useampia. Yksi Wave Bank - tiedosto voi sisältää yhden tai useamman äänitiedoston. Wave Bank -tiedostojen yksi keskeisin tarkoitus on se, että eri äänitiedostot saadaan ryhmitelty käyttötarkoituksiensa mukaan. Esimerkiksi, yhteen Wave Bank -tiedostoon voitaisiin sijoittaa sellaiset äänitiedostot, jotka tulee olla koko ajan muistissa ja toiseen voitaisiin sijoittaa sellaiset äänitiedostot, jotka ladataan muistiin aina tarvittaessa eli näiden ei tarvitse olla koko ajan käytettävissä. Sound Bank (Äänipankki) Äänipankki sisältää informaation siitä, kuinka aaltopankissa olevia äänitiedostoja soitetaan. Äänitiedostossa on esimerkiksi tietoja soittoäänien taajuuksista, tiedostojen soiton ajoituksista sekä äänitiedostojen soittosekvensseistä. Sound Bank -tiedosto koostuu soittoäänistä ja soittorepliikeistä (Cues) sekä näiden soittoinformaatiosta. Aaltopankkien ja äänipankkien yksi keskeisimmistä tarkoituksista on se, että näiden avulla soitettavat äänet voidaan ryhmitellä loogisiksi kokonaisuuksiksi. Sound Bank - tiedosto ei kuitenkaan sisällä varsinaisia äänitiedostoja, vaan ainoastaan tiedon siitä mikä tai mitkä soittoäänet kuuluvat kuhunkin soittorepliikkiin (Cue) ja tiedon siitä, kuinka äänitiedostot soitetaan. Soittoäänet eli äänitiedostot ovat yhdessä tai useammassa Wave Bank -tiedostossa. Tätä kautta Sound Bank ja Wave Bank ovat sidoksissa toisiinsa. Sound Bank -tiedostoja voi XNA-peliohjelmassa olla useita. General settings (Soittoasetukset) Yleiset asetukset -tiedosto sisältää sellaisia asetuksia, joita ei ole yksinomaan sidottu joko Wave Bank - tai Sound Bank -tiedostoon. Esimerkiksi, voidaan määrittää soittoäänien ryhmä ja sitten muuttaa tähän ryhmään kuuluvien soittoäänien äänen voimakkuuksia yhdellä asetuksella, jolloin kaikkien ryhmän soittoäänien äänen voimakkuus nousee tai laskee XACT-projektitiedoston luonti XACT-projektitiedosto luodaan XACT-työkalulla. Kun XACT-työkalun käynnistää, niin kuvan 4-11 mukainen ikkuna aukeaa näytölle. XACT-projektitiedosto luodaan siten, että XACT-työkalussa suoritetaan seuraavat menuvalinnat: File -> New Project. Tämän jälkeen kuvaruudulle aukeaa New Project Path -dialogi, jossa projektille valitaan hakemisto ja annetaan nimi. Lopuksi klikataan Save-nappia, jolloin valittuun hakemistoon luodaan.xap-formaatissa oleva XACT-projektitiedosto. 116 XNA Peliohjelmointi

23 Kuva XACT-ohjelman pääikkuna. XACT-projektitiedoston luomisen jälkeen projektitiedostoon voidaan luoda Wave Bank -tiedostoja eli aaltopankkeja. Aaltopankin saa tehtyä siten, että Wave Banks -valikosta valitsee New Wave Bank -valinnan. Toinen vaihtoehto on se, että klikkaa hiiren vasemman puoleisella napilla XACT-ohjelman vasemmassa reunassa näkyvässä tiedostopuussa olevaa Wave Banks -kansiota ja esiin tulevasta Popup-valikosta valitsee New Wave Bank -valinnan. Tällöin XACT-ohjelman pääikkunan työalueelle aukeaa kuvan 4-12 mukainen Wave Bank -ikkuna. Kuva Wave Bank -ikkuna

24 Oletuksena aaltopankki saa nimekseen Wave Bank. Aaltopankin nimen voi muuttaa sopivammaksi siten, että hiiren oikeanpuoleisella napilla klikka XACT-ohjelman pääikkunan vasemmalla reunalla näkyvän tiedostopuun Wave Banks -kansion alle luotua Wave Bank -tiedostoa ja Rename-toiminnolla vaihtaa nimen. Kuvassa 4-12 esitetyn aaltopankin nimeksi on annettu Xna Wave Bank. Aaltopankki tarvitsee kaverikseen Sound Bank -tiedoston eli äänipankin. Äänipankin saa tehtyä siten, että Sound Banks -valikosta valitsee New Sound Bank -valinnan. Toinen vaihtoehto on se, että klikkaa hiiren vasemman puoleisella napilla XACT-ohjelman vasemmassa reunassa näkyvässä tiedostopuussa olevaa Sound Banks -kansiota ja esiin tulevasta Popupvalikosta valitsee New Sound Bank -valinnan. Tällöin XACT-ohjelman pääikkunan työalueelle aukeaa kuvan 4-13 mukainen Sound Bank -ikkuna. Kuva Sound Bank -ikkuna. Oletuksena äänipankki saa nimekseen Sound Bank. Äänipankin saa nimettyä uudelleen samaan tapaan, kuin on tehty edellä esitetyn aaltopankin uudelleen nimeäminen. Kuvassa 4-13 esitetyn äänipankin nimeksi on annettu Xna Sound Bank. Äänitiedostojen lisääminen aalto- ja äänipankkiin Äänitiedosto saadaan lisättyä aaltopankkiin siten, että viedään hiiren kursori aaltopankki-ikkunan päälle ja klikataan hiiren oikeanpuoleista nappia, jolloin näytölle aukeaa Popup-valikko. Tästä valikosta valitaan Insert Wave File(s)... -valinta, jolloin esiin aukeavan Open-dialogin avulla aaltopankkiin lisätään yksi tai useampi äänitiedosto. Äänitiedostojen lisäämisen jälkeen edellä luodun aaltopankin Xna Wave Bank -ikkuna näyttää kuvan 4-14 mukaiselta. 118 XNA Peliohjelmointi

25 Kuva Xna Wave Bank -aaltopankki sisältää kolme.wav-formaatissa olevaa äänitiedostoa. Seuraavaksi aaltopankissa olevat eli Xna Wave Bank -ikkunassa punaisella näkyvät äänitiedostot raahataan äänipankin vasemmassa yläreunassa olevaan ikkunaan (Sounds frame). Tämän jälkeen äänitiedostoille voidaan luoda soittorepliikit (Cues). Soittoäänen soittorepliikin (Cue) saa luotua siten, että äänipankin vasemmassa ylänurkassa olevasta ikkunasta (Sounds frame) raahataan haluttu ääni äänipankin vasemmassa alanurkassa olevaan ikkunaan (Cues frame), jolloin äänitiedostoille luodaan automaattisesti soittorepliikki. Kuvassa 4-15 on Xna Sound Bank -ikkuna edellä mainitun operaation jälkeen, kun kaikki kolme aaltopankissa olevaa äänitiedostoa on raahattu äänipankkiin ja näille on luotu soittorepliikit. Kuva Xna Sound Bank -ikkuna

26 Äänipankki ei siis sisällä äänitiedostojen sisältämää dataa, mutta sen sijaan erilaista informaatiota siitä, kuinka äänitiedostoja soitetaan. Äänipankissa voidaan määrittää hyvin monipuolisesti se, kuinka äänitiedostojen soitto tapahtuu. Soittorepliikkien soittamista voidaan säätää esimerkiksi siten, että klikataan äänipankin vasemmassa ylänurkassa olevassa ikkunassa jokin äänitiedosto valituksi. Tämän jälkeen klikataan äänipankin oikeassa ylänurkassa olevassa ikkunassa Play Wave -teksti aktiiviseksi. Tämän jälkeen XACT-ohjelman pääikkunan vasemmassa alareunassa olevassa ikkunassa tehdään halutut soittorepliikkiin liittyvät asetukset. Esimerkiksi, näissä asetuksissa kyseisen soittorepliikin Looping-säätö voitaisiin asettaa tilaan Infinite. Tämä tarkoittaisi sitä, että kun XNA-peliohjelmassa kyseisen äänitiedoston soitto käynnistettäisiin, niin sitä soitettaisiin luupissa uudelleen ja uudelleen kertasoiton asemasta siihen saakka, kunnes sen soittaminen ohjelmassa pysäytetään. Edellä mainitun kaltaisten asetusten tekemisen lisäksi XACT-ohjelma mahdollistaa äänitiedostojen monipuolisen organisoinnin ja hallinnan sekä pelissä soitettavien äänitehosteiden ja musiikin kokonaisvaltaisen suunnittelun. Lopuksi XACTprojektitiedosto nimetään sopivaksi esimerkiksi XnaAudio.xap ja talletetaan sopivaan paikkaan. Tämän jälkeen, kun XNA-ohjelmassa halutaan käyttää XACTprojektitiedostoon paketoituja äänitiedostoja, niin riittää kun XACT-projektitiedosto eli tässä tapauksessa XnaAudio.xap otetaan XNA-peliohjelmaprojektiin mukaan yhtenä projektitiedostona. Tämän jälkeen XACT-projektitiedostoon paketoituja äänitiedostoja voi soittaa peliohjelmassa Audio API:n avulla Äänitiedostojen soittaminen XACT-ohjelmasta Äänitiedostoja voidaan soittaa suoraan myös XACT-ohjelmassa. Tämä edellyttää sitä, että XNA Game Studio -ohjelmiston mukana tuleva XACT Auditioning Utility - ohjelma on oltava käynnissä samaan aikaan, kun XACT-ohjelmassa soitetaan äänitiedostoja. Kuvassa 4-16 on esitetty XACT Auditioning Utility -ohjelman ohjelmaikkuna. Kuva XACT Auditioning Utility -ohjelman ohjelmaikkuna. 120 XNA Peliohjelmointi

27 XACT-ohjelmassa äänitiedoston soittaminen voidaan käynnistää esimerkiksi siten, että ensin hiirellä valitaan soitettava äänitiedosto ja tämän jälkeen käynnistetään soitto painamalla Space-nappia. Soittamisen saa pysäytettyä painamalla Esc-nappia. Soittamisen voi käynnistää ja pysäyttää myös XACT-ohjelman menuvalikon kautta. Näiden tapojen lisäksi soittamisen voi aloittaa ja lopettaa myös siten, että klikkaa hiiren vasemman puoleisen napin avulla soitettavan äänitiedoston päällä, jolloin esiin aukeaa dialogi, josta soiton voi käynnistää Play-valinnalla ja pysäyttää Stop-valinnalla Audio API -ohjelmointirajapinta Edellisessä osiossa esitettiin kuinka XACT-projektitiedosto tehdään ja kuinka siihen lisätään äänitiedostoja ja kuinka äänitiedostoihin voi tehdä soittoon liittyviä asetuksia. Tuloksena saatiin XACT-projektitiedosto (XnaAudio.xap). Tässä osiossa esitetään kuinka XACT-projektitiedostoon paketoidut äänitiedostot otetaan käyttöön ja kuinka niitä soitetaan XNA-peliohjelmassa. XACT-projektitiedostoon paketoidut äänitiedostot saadaan XNA-peliohjelmassa käyttöön siten, että XACT-projektitiedosto otetaan XNApeliohjelmaprojektissa mukaan yhtenä lähdetekstitiedostona. Kuvassa 4-17 on esitetty myöhempänä esitettävän XnaSoundXACT-ohjelman projektitiedostot Solution Explorer -ikkunassa, jossa yhtenä tiedostona muiden mukana on XnaAudio.xap. Kuva XnaSoundXACT-ohjelman Solution Explorer -ikkuna

28 XACT-projektitiedostot ovat tekstitiedostoja ja niille suoritetaan kääntäminen muiden lähdetekstitiedostojen tapaan. Kääntämisen yhteydessä generoidaan aaltopankki- (.xwb), äänipankki- (.xsb) ja soittoasetukset tiedosto (.xgs). Tämän jälkeen XACTtiedostoon paketoidut äänitiedostot voidaan ottaa XNA-peliohjelmassa käyttöön. Äänitiedostojen käyttöönotto XACT-projektitiedoston kääntämisen jälkeen generoidut äänitiedostot saadaan ladattua XNA-peliohjelman käyttöön siten, että soitonasetus- (.xgs), aaltopankki- (.xwb) ja äänipankkitiedostoa (.xsb) varten luodaan audio-objektit, joihin edellä mainittujen tiedostojen sisältö ladataan. Ennen audio-objektien luontia ohjelmassa on määritettävä näitä varten muuttujat esimerkiksi seuraavalla tavalla: AudioEngine audioengine; WaveBank wavebank; SoundBank soundbank; Muuttujien määrittämisen jälkeen voidaan suorittaa audio-objektien luonti. Ensin on luotava soittoasetukset sisältävä audio-objekti eli AudioEngine-tyyppinen objekti. Tämän avulla päästään luomaan WaveBank- ja SoundBank-objekti. audioengine = new AudioEngine("Content\\Audio\\XnaAudio.xgs"); wavebank = new WaveBank(audioEngine, "Content\\Audio\\Xna Wave Bank.xwb"); soundbank = new SoundBank(audioEngine, "Content\\Audio\\Xna Sound Bank.xsb"); Kun soittoasetus-, aaltopankki- ja äänipankki-objektit on luotu, niin kaikki XACTprojektitiedostoon XACT-ohjelmalla pakatut äänitiedostot, soittorepliikit (Cues) ja soittamiseen liittyvät asetukset ovat XNA-peliohjelman käytettävissä Sound API - rajapinnan kautta. SoundBank-luokka XACT-projektitiedostoon paketoitujen äänitiedostojen soittaminen voidaan suorittaa suoraan SoundBank-luokan avulla. Tällöin tiedostojen soittaminen vaatii hyvin vähän ohjelmakoodia. Ohjelmassa yksinkertaisesti kutsutaan SoundBank-objektin suhteen SoundBank-luokassa olevaa PlayCue-metodi, jolle välitetään parametrina minkä niminen soittorepliikki soitetaan. soundbank.playcue("helicopter"); Tässä menetelmässä varjopuolena on se, että kun soittaminen on aloitettu, niin soittamisen kontrollointi on ohjelmallisesti hyvin rajoitettua. XACT-projektitiedostoon pakattu soittamiseen liittyvä soittoinformaatio ohjaa tällöin pääasiassa soittamista. 122 XNA Peliohjelmointi

29 Cue-luokka Cue-luokan eli soittorepliikkiluokan avulla soittamisen kontrollointi on monipuolisempaa. Tällöin soittamista voidaan ohjata paremmin myös Sound API - rajapinnan kautta. Voidaan esimerkiksi tutkia onko soitto käynnissä, voidaan keskeyttää ja jatkaa soittamista uudelleen. Cue-luokkaa käytettäessä tarvitaan Cue-tyyppinen muuttuja. Cue cue = null; Kun Cue-tyyppinen muuttuja on luotu, niin SoundBank-objektin suhteen voidaan kutsua SoundBank-luokan GetCue()-metodia ja valita näin soittorepliikki sekä käynnistää soittorepliikki Play()-metodilla. cue = soundbank.getcue("alarm"); cue.play(); Soittaminen voidaan keskeyttää Cue-luokassa olevan Pause()-metodin avulla. cue.pause(); Pause()-metodilla pysäytettyä soittoa voidaan jatkaa Cue-luokassa olevan Resume()- metodin avulla. cue.resume(); Soittaminen voidaan pysäyttää Cue-luokassa olevalla Stop()-metodilla. cue.stop(); Edellä mainittujen metodien lisäksi Cue-luokassa on myös joitakin muita metodeja soittorepliikkien käsittelyä varten. Metodien lisäksi Cue-luokassa on seuraavat ominaisuudet soittorepliikkien soittamisen hallintaa varten: o Name o IsCreated o IsDisposed o IsPaused o IsPlaying o IsPrepared o IsPreparing o IsStopped o IsStopping Edellä luetelluista ominaisuuksista Name-ominaisuus palauttaa soittorepliikin nimen. Muut ominaisuudet eli Is-alkuiset ominaisuudet kertovat jotakin soittorepliikin tilasta. Nämä Is-alkuiset soittorepliikit palauttavat arvon true tai false riippuen siitä, missä tilassa soittorepliikki on kyseisellä hetkellä. Esimerkiksi, Cue-luokan IsPalying

30 ominaisuuden avulla voidaan selvittää se, ollaanko soittorepliikkiä parhaillaan soittamassa vai ei. if (cue.isplaying) // Playing is in progress! AudioEngine-luokka AudioEngine-objektin suhteen täytyy jokaisen pelisyklin (Frame) aikana kutsua kerran AudioEngine-luokan Update()-metodia. Update()-metodi pitää yllä äänitiedostojen soittamiseen liittyviä audio-toimintoja. // Performs periodic work required by the audio engine. This method // drives the audio engine, and must be called once per frame. audioengine.update(); WaveBank-luokka WaveBank-luokka sisältää joitakin ominaisuuksia ja metodeja, joita voidaan käyttää soitonhallinnassa. WaveBank-luokkaa ei tavallisesti kuitenkaan tarvita enää WaveBank-objektin luonnin jälkeen. Tästä huolimatta WaveBank-objekti on kuitenkin luotava, jotta äänitiedostot tulevat ohjelman käytettäväksi eli liitettyä AudioEngineobjektiin XnaSoundXACT-ohjelma XnaSoundXACT-ohjelma on esimerkki siitä, kuinka XNA-peliohjelmissa voidaan soittaa äänitiedostoja. Ohjelmassa käytetään kahta äänitiedostoa Alarm.wav ja Helicopter.wav. Nämä äänitiedostot on paketoitu XACT-projektitiedostoon nimeltään XnaAudio.xap. Ohjelman käynnistyessä SoundBank-luokan PlayCue()-metodilla käynnistetään taustaäänen soittaminen (Helicopter.wav). XACT-projektitiedostossa taustaäänen soittoasetuksissa tiedosto on määritetty soitettavaksi ikiluupissa. Toista soittoääntä (Alarm.wav) soitetaan ohjelmassa aina silloin, kun Xbox 360 -peliohjaimen A -nappi on alas painettuna. Ohjelman koostuu Program.cs ja XnaGame.cs lähdetekstitiedostoista, Background.bmp-kuvatiedostosta sekä XnaAudio.xapprojektitiedostosta. Seuraavassa on esitelty edellä mainittujen lähdetekstitiedostojen sisältämät ohjelmakoodit. Program.cs Program.cs-lähdetekstitiedosto sisältää Main()-metodin eli ohjelman aloituskohdan. Kuvassa 4-18 on esitetty Program.cs-tiedoston ohjelmakoodi. 124 XNA Peliohjelmointi

31 /* Program.cs Copyright Markku Rahikainen. */ using System; namespace XnaGame static class Program static void Main(string[] args) using (XnaGame game = new XnaGame()) game.run(); XnaGame.cs Kuva XnaSoundXACT-ohjelman Program.cs-tiedosto. XnaGame.cs-lähdetekstitiedosto sisältää edellä mainitut Xbox 360 -peliohjaimen käsittelyssä ja äänitiedoston soittamisessa tarvittavat ohjelmarakenteet. Kuvassa 4-19 on esitetty XnaGame.cs-tiedoston ohjelmakoodi. /* XnaGame.cs Copyright Markku Rahikainen. */ using System; using System.Collections.Generic; using System.Linq; using Microsoft.Xna.Framework; using Microsoft.Xna.Framework.Audio; using Microsoft.Xna.Framework.Content; using Microsoft.Xna.Framework.GamerServices; using Microsoft.Xna.Framework.Graphics; using Microsoft.Xna.Framework.Input; using Microsoft.Xna.Framework.Media; namespace XnaGame public class XnaGame : Microsoft.Xna.Framework.Game 125

32 // HW GraphicsDeviceManager graphics; SpriteBatch spritebatch; // Screen static int windowheight = 200; static int windowwidth = 300; Rectangle titlesafearea; // Graphics Texture2D backgroundtexture; Vector2 backgroundposition; // GamePad GamePadState gamepadstate; // Sounds AudioEngine audioengine; WaveBank wavebank; SoundBank soundbank; Cue cue = null; public XnaGame() graphics = new GraphicsDeviceManager(this); Content.RootDirectory = "Content"; // Set default screen width and height. graphics.preferredbackbufferheight = windowheight; graphics.preferredbackbufferwidth = windowwidth; graphics.applychanges(); // Screen Window.Title = "XnaSoundXACT"; protected override void Initialize() // Graphics backgroundposition = new Vector2(0, 0); base.initialize(); protected override void LoadContent() // Screen titlesafearea = GraphicsDevice.Viewport.TitleSafeArea; // Create a new SpriteBatch, which // can be used to draw textures. spritebatch = new SpriteBatch(GraphicsDevice); 126 XNA Peliohjelmointi

33 // Graphics backgroundtexture = Content.Load<Texture2D>( "Graphics\\Background"); // Sounds audioengine = new AudioEngine( "Content\\Audio\\XnaAudio.xgs"); wavebank = new WaveBank(audioEngine, "Content\\Audio\\Xna Wave Bank.xwb"); soundbank = new SoundBank(audioEngine, "Content\\Audio\\Xna Sound Bank.xsb"); // Start playing the background sound. soundbank.playcue("helicopter"); protected override void UnloadContent() // TODO: Unload any non ContentManager content here protected override void Update(GameTime gametime) // Allows the game to exit. if (Keyboard.GetState(PlayerIndex.One).IsKeyDown(Keys.Escape) GamePad.GetState(PlayerIndex.One).Buttons.Back == ButtonState.Pressed) this.exit(); // Read the GamePad state. gamepadstate = GamePad.GetState(PlayerIndex.One); // If 'A' button is pressed play the effect sound. if (gamepadstate.buttons.a == ButtonState.Pressed) if (cue == null) cue = soundbank.getcue("alarm"); cue.play(); else if (cue.ispaused) cue.resume(); 127

34 else if (cue!= null && cue.isplaying) cue.pause(); // Performs periodic work required by the audio // engine. This method drives the audio engine, // and must be called once per frame. audioengine.update(); base.update(gametime); protected override void Draw(GameTime gametime) GraphicsDevice.Clear(Color.DarkSlateBlue); // Draw the background. spritebatch.begin(); spritebatch.draw(backgroundtexture, backgroundposition, Color.White); spritebatch.end(); base.draw(gametime); Kuva XnaSoundXACT-ohjelman XnaGame.cs-tiedosto. Kun XnaSoundXACT-projektin toteuttaa, suorittaa ohjelman kääntämisen ja käynnistää ohjelman, niin kuvan 4-20 mukainen ikkuna aukeaa näytölle. 128 XNA Peliohjelmointi

35 Kuva XnaSoundXACT-ohjelman ohjelmaikkuna

36 130 XNA Peliohjelmointi

XNA grafiikka laajennus opas. Paavo Räisänen. www.ohjelmoimaan.net. Tämän oppaan lähdekoodit ovat ladattavissa näiden sivujen Ladattavat osiossa.

XNA grafiikka laajennus opas. Paavo Räisänen. www.ohjelmoimaan.net. Tämän oppaan lähdekoodit ovat ladattavissa näiden sivujen Ladattavat osiossa. XNA grafiikka laajennus opas Paavo Räisänen www.ohjelmoimaan.net Tämän oppaan lähdekoodit ovat ladattavissa näiden sivujen Ladattavat osiossa. Tätä opasta saa vapaasti kopioida, tulostaa ja levittää ei

Lisätiedot

XNA 2D ohjelmoinnin perusteet. Paavo Räisänen. www.ohjelmoimaan.net

XNA 2D ohjelmoinnin perusteet. Paavo Räisänen. www.ohjelmoimaan.net XNA 2D ohjelmoinnin perusteet Paavo Räisänen www.ohjelmoimaan.net Tätä opasta saa vapaasti kopioida, tulostaa ja levittää ei kaupallisissa tarkoituksissa. Kuitenkaan omille nettisivuille opasta ei saa

Lisätiedot

10 Lock Lock-lause

10 Lock Lock-lause 10 Lock Avainsanan lock (Lock keyword) avulla voidaan toteuttaa prosessien ja säikeiden välisessä keskinäisessä kommunikoinnissa käytettäviä synkronointi- ja poissuljentarakenteita. Tämän niin sanotun

Lisätiedot

5 Näppäimistö. 5.1 Näppäimistön eventit

5 Näppäimistö. 5.1 Näppäimistön eventit 5 Näppäimistö Näppäimistö (Keyboard) on Windows Forms -ohjelmissa keskeisessä asemassa. Erityisesti erilaisissa tekstinkäsittelyohjelmissa ja ohjelmissa, joissa tarvitaan datan syöttämistä esimerkiksi

Lisätiedot

Olio-ohjelmointi Javalla

Olio-ohjelmointi Javalla 1 Olio-ohjelmointi Javalla Olio-ohjelmointi Luokka Attribuutit Konstruktori Olion luominen Metodit Olion kopiointi Staattinen attribuutti ja metodi Yksinkertainen ohjelmaluokka Ohjelmaluokka 1 Olio-ohjelmointi

Lisätiedot

Mainosankkuri.fi-palvelun käyttöohjeita

Mainosankkuri.fi-palvelun käyttöohjeita Mainosankkuri.fi-palvelun käyttöohjeita Sisällys 1. Johdanto... 1 2. Sisäänkirjautuminen... 1 3. Palvelussa navigointi... 2 4. Laitteet... 2 5. Sisällönhallinta... 4 6. Soittolistat... 7 7. Aikataulut...

Lisätiedot

Jypelin käyttöohjeet» Ruutukentän luominen

Jypelin käyttöohjeet» Ruutukentän luominen Jypelin käyttöohjeet» Ruutukentän luominen Pelissä kentän (Level) voi luoda tekstitiedostoon "piirretyn" mallin mukaisesti. Tällöin puhutaan, että tehdään ns. ruutukenttä, sillä tekstitiedostossa jokainen

Lisätiedot

Web Services tietokantaohjelmoinnin perusteet

Web Services tietokantaohjelmoinnin perusteet ASP.NET Web Services Web Services tietokantaohjelmoinnin 2 (22) Sisällys Harjoitus 1: Tietokannat ja Web Services... 3 Harjoitus 2: Windows Client... 10 Harjoitus 3: Datan päivitys TableAdapterin avulla...

Lisätiedot

Harjoitus 7. 1. Olkoon olemassa luokat Lintu ja Pelikaani seuraavasti:

Harjoitus 7. 1. Olkoon olemassa luokat Lintu ja Pelikaani seuraavasti: Harjoitus 7 1. Olkoon olemassa luokat Lintu ja Pelikaani seuraavasti: class Lintu //Kentät private int _siivenpituus; protected double _aivojenkoko; private bool _osaakolentaa; //Ominaisuudet public int

Lisätiedot

Kylänetti projektin sivustojen käyttöohjeita Dokumentin versio 2.10 Historia : 1.0, 1.2, 1.6 Tero Liljamo / Deserthouse, päivitetty 25.8.

Kylänetti projektin sivustojen käyttöohjeita Dokumentin versio 2.10 Historia : 1.0, 1.2, 1.6 Tero Liljamo / Deserthouse, päivitetty 25.8. Kylänetti projektin sivustojen käyttöohjeita Dokumentin versio 2.10 Historia : 1.0, 1.2, 1.6 Tero Liljamo / Deserthouse, päivitetty 25.8.2012 Hakemisto 1. Sivustot internetissä... 2 2. Yleistä... 2 3.

Lisätiedot

C# Windows ohjelmointi perusopas

C# Windows ohjelmointi perusopas Paavo Räisänen C# Windows ohjelmointi perusopas www.ohjelmoimaan.net Tätä opasta saa vapaasti kopioida, tulostaa ja levittää ei kaupallisissa tarkoituksissa. Kuitenkaan omille nettisivuille opasta ei saa

Lisätiedot

Pong-peli, vaihe Aliohjelmakutsu laskureita varten. 2. Laskurin luominen. Muilla kielillä: English Suomi

Pong-peli, vaihe Aliohjelmakutsu laskureita varten. 2. Laskurin luominen. Muilla kielillä: English Suomi Muilla kielillä: English Suomi Pong-peli, vaihe 7 Tässä vaiheessa lisäämme peliin pistelaskun. Pong-pelissä pelaaja saa pisteen kun pallo ohittaa toisen pelaajan mailan. 1. Aliohjelmakutsu laskureita varten

Lisätiedot

Jypelin käyttöohjeet» Ruutukentän luominen

Jypelin käyttöohjeet» Ruutukentän luominen Jypelin käyttöohjeet» Ruutukentän luominen ==================HUOM!!!================== SISÄLLÖN TUOMINEN VISUAL STUDIOON ON MUUTTUNUT Uudet ajantasalla olevat ohjeet löytyvät timistä:?https://tim.jyu.fi/view/kurssit/tie/ohj1/tyokalut/sisallon-tuominen-peliin

Lisätiedot

Osio 4: Tietovirrat. Properties- eli ominaisuustiedostot Logger: lokitietojen käsittely

Osio 4: Tietovirrat. Properties- eli ominaisuustiedostot Logger: lokitietojen käsittely Properties- eli ominaisuustiedostot Logger: lokitietojen käsittely 1 Ominaisuudet Kun tutkimme työasemapohjaisia sovelluksiamme, tarvitaan joskus tietoa: mikä on käyttöjärjestelmä mikä on käytössä oleva

Lisätiedot

1.3 Lohkorakenne muodostetaan käyttämällä a) puolipistettä b) aaltosulkeita c) BEGIN ja END lausekkeita d) sisennystä

1.3 Lohkorakenne muodostetaan käyttämällä a) puolipistettä b) aaltosulkeita c) BEGIN ja END lausekkeita d) sisennystä OULUN YLIOPISTO Tietojenkäsittelytieteiden laitos Johdatus ohjelmointiin 811122P (5 op.) 12.12.2005 Ohjelmointikieli on Java. Tentissä saa olla materiaali mukana. Tenttitulokset julkaistaan aikaisintaan

Lisätiedot

BlueJ ohjelman pitäisi löytyä Development valikon alta mikroluokkien koneista. Muissa koneissa BlueJ voi löytyä esim. omana ikonina työpöydältä

BlueJ ohjelman pitäisi löytyä Development valikon alta mikroluokkien koneista. Muissa koneissa BlueJ voi löytyä esim. omana ikonina työpöydältä Pekka Ryhänen & Erkki Pesonen 2002 BlueJ:n käyttö Nämä ohjeet on tarkoitettu tkt-laitoksen mikroluokan koneilla tapahtuvaa käyttöä varten. Samat asiat pätevät myös muissa luokissa ja kotikäytössä, joskin

Lisätiedot

JAVA-PERUSTEET. JAVA-OHJELMOINTI 3op A274615 JAVAN PERUSTEET LYHYT KERTAUS JAVAN OMINAISUUKSISTA JAVAN OMINAISUUKSIA. Java vs. C++?

JAVA-PERUSTEET. JAVA-OHJELMOINTI 3op A274615 JAVAN PERUSTEET LYHYT KERTAUS JAVAN OMINAISUUKSISTA JAVAN OMINAISUUKSIA. Java vs. C++? JAVA-OHJELMOINTI 3op A274615 JAVAN PERUSTEET LYHYT KERTAUS Teemu Saarelainen teemu.saarelainen@kyamk.fi Lähteet: http://java.sun.com/docs/books/tutorial/index.html Vesterholm, Kyppö: Java-ohjelmointi,

Lisätiedot

Tapahtumapohjainen ohjelmointi. Juha Järvensivu juha.jarvensivu@tut.fi 2007

Tapahtumapohjainen ohjelmointi. Juha Järvensivu juha.jarvensivu@tut.fi 2007 Tapahtumapohjainen ohjelmointi Juha Järvensivu juha.jarvensivu@tut.fi 2007 Sisältö Tapahtumapohjainen ohjelmointi Käyttöliittymän rakenne Pääikkuna (top-level window) Lapsi-ikkuna (child window) Dialogit

Lisätiedot

Peliohjelmointi Windows Phone 8:lle

Peliohjelmointi Windows Phone 8:lle Toni Bäckström Peliohjelmointi Windows Phone 8:lle Metropolia Ammattikorkeakoulu Insinööri (AMK) Tietotekniikka Insinöörityö 21.5.2014 Tiivistelmä Tekijä(t) Otsikko Sivumäärä Aika Tutkinto Koulutusohjelma

Lisätiedot

Eclipse, SVN ja HelloWorld

Eclipse, SVN ja HelloWorld Eclipse, SVN ja HelloWorld Lähtökohtana tälle harjoitukselle on, että tietokoneeseen on jo asennettu Eclipse ja siihen SVN-lisäke. Kun käynnistät Eclipsen ensimmäistä kertaa uudella työtilalla, se näyttää

Lisätiedot

Mikä yhteyssuhde on?

Mikä yhteyssuhde on? 1 Yhteyssuhde Mikä yhteyssuhde on? Yhteyssuhde Javalla Konstruktorit set-ja get-metodit tostring-metodi Pääohjelma 1 Mikä yhteyssuhde on? Tili - : String - : double * 1 Asiakas - hetu: String - : String

Lisätiedot

LUE ENSIN KOKO OHJE LÄPI JA KYSY NEUVOA! 5. Klikkaa Audacity-ohjelmassa mikrofonikuvakkeen vieressä tekstiä Napsautus käynnistää seurannan.

LUE ENSIN KOKO OHJE LÄPI JA KYSY NEUVOA! 5. Klikkaa Audacity-ohjelmassa mikrofonikuvakkeen vieressä tekstiä Napsautus käynnistää seurannan. C-KASETIN DIGITOINTI 1 LUE ENSIN KOKO OHJE LÄPI JA KYSY NEUVOA! 1. Yhdistä kasettisoitin tietokoneeseen. 2. Kirjaudu työasemalle kirjastokortillasi. 3. Käynnistä Audacity-ohjelma tuplaklikkaamalla pikakuvaketta

Lisätiedot

1. Miten tehdään peliin toinen maila?

1. Miten tehdään peliin toinen maila? Muilla kielillä: English Suomi Pong-peli, vaihe 4 Tässä oppaassa teemme toisenkin mailan. 1. Miten tehdään peliin toinen maila? Maila tehtiin edellisessä vaiheessa, aliohjelmassa LuoKentta, seuraavasti:

Lisätiedot

Skype for Business ohjelman asennus- ja käyttöohje Sisällys

Skype for Business ohjelman asennus- ja käyttöohje Sisällys Skype for Business ohjelman asennus- ja käyttöohje Sisällys Kirjautuminen Office 365 -palveluun... 2 Skype for Business ohjelman asentaminen... 3 Yhteyshenkilöiden lisääminen Skype for Business ohjelmassa...

Lisätiedot

Eclipse 3.1 Pikaopas versio 1.0

Eclipse 3.1 Pikaopas versio 1.0 Anne Benson/Tanja Bergius Opintojaksojen atk84d ja ict02d käyttöön 1/17 Eclipse 3.1 Pikaopas versio 1.0 Pikaohjeen sisältö 1. Esittely 2. Asennus ja poistaminen 3. Sovelluskehitys 4. Sovelluksen toteutus

Lisätiedot

1. Taustatietoa näppäimistönkuuntelusta

1. Taustatietoa näppäimistönkuuntelusta Muilla kielillä: English Suomi Pong-peli, vaihe 5 Tämä on Pong-pelin tutoriaalin osa 5/7. Tämän vaiheen aikana Lisäämme peliin näppäimet Laitetaan mailat liikkumaan pelaajien ohjaamina Näin ohjelmaamme

Lisätiedot

1.3Lohkorakenne muodostetaan käyttämällä a) puolipistettä b) aaltosulkeita c) BEGIN ja END lausekkeita d) sisennystä

1.3Lohkorakenne muodostetaan käyttämällä a) puolipistettä b) aaltosulkeita c) BEGIN ja END lausekkeita d) sisennystä OULUN YLIOPISTO Tietojenkäsittelytieteiden laitos Johdatus ohjelmointiin 81122P (4 ov.) 30.5.2005 Ohjelmointikieli on Java. Tentissä saa olla materiaali mukana. Tenttitulokset julkaistaan aikaisintaan

Lisätiedot

Ajolista: Adobe Connect 8 yhteyden avaaminen

Ajolista: Adobe Connect 8 yhteyden avaaminen 1 Ajolista: Adobe Connect 8 yhteyden avaaminen (Windows 7) 1. Tarkista, että kaikki tarvittavat johdot ovat paikallaan. 3. Control Panel (=Ohjauspaneeli) 4. Sound (=Ääni) 2. Start (=Käynnistä) 5. Playback

Lisätiedot

Ohjelmointikielet ja -paradigmat 5op. Markus Norrena

Ohjelmointikielet ja -paradigmat 5op. Markus Norrena Ohjelmointikielet ja -paradigmat 5op Markus Norrena Ko#tehtävä 4 Viimeistele "alkeellinen kuvagalleria". Käytännössä kaksi sivua Yksi jolla voi ladata kuvia palvelimelle (file upload) Toinen jolla ladattuja

Lisätiedot

LP-Levyn digitointi tiedostoksi

LP-Levyn digitointi tiedostoksi LP-Levyn digitointi tiedostoksi ION LP2CD- laitteella voit kopioida LP-levysi tiedostoiksi. LP-Levyn digitointi kestää saman ajan kuin levyn toisto tavallisestikin, lisäksi voit muokata tallennetta joko

Lisätiedot

RACE-KEEPER COMPARO PC-OHJELMAN PIKAOHJE

RACE-KEEPER COMPARO PC-OHJELMAN PIKAOHJE RACE-KEEPER COMPARO PC-OHJELMAN PIKAOHJE SISÄLLYS 1 Mittausten (outing) avaus ja analysointi 2 HD videoiden teko 1 MITTAUSTEN AVAUS JA ANALYSOINTI Asenna Comparo PC-ohjelma ja käynnistä ohjelma pikakuvakkeesta.

Lisätiedot

Cubase perusteet pähkinänkuoressa. Mikä Cubase on? Projektin aloitus

Cubase perusteet pähkinänkuoressa. Mikä Cubase on? Projektin aloitus Cubase perusteet pähkinänkuoressa 1. Mikä Cubase on? 2. Projektin aloitus 3. Audion äänittäminen. 4. MIDI-tiedon tallentaminen ja virtuaali instrumentit 5. Miksaus. Mikä Cubase on? Cubase on Windows XP

Lisätiedot

TEHTÄVÄ 1.1 RATKAISUOHJEET

TEHTÄVÄ 1.1 RATKAISUOHJEET TEHTÄVÄ 1.1 RATKAISUOHJEET 1. Luo mallin mukainen kansiorakenne Käynnistä Resurssienhallinta painamalla näppäimistöltä peräkkäin Windows- ja E-näppäimiä niin, että Windows-näppäin on yhä pohjassa, kun

Lisätiedot

Kompositio. Mikä komposition on? Kompositio vs. yhteyssuhde Kompositio Javalla Konstruktorit set-ja get-metodit tostring-metodi Pääohjelma

Kompositio. Mikä komposition on? Kompositio vs. yhteyssuhde Kompositio Javalla Konstruktorit set-ja get-metodit tostring-metodi Pääohjelma 1 Kompositio Mikä komposition on? Kompositio vs. yhteyssuhde Kompositio Javalla Konstruktorit set-ja get-metodit tostring-metodi Pääohjelma 1 Mikä kompositio on? Tili - : String - : double 1 1 Kayttoraja

Lisätiedot

Eclipse 3.2 pikku opas versio 1.0. Esittely Uuden projektin perustaminen Sovelluksen luominen Koodin siistiminen Vinkkejä

Eclipse 3.2 pikku opas versio 1.0. Esittely Uuden projektin perustaminen Sovelluksen luominen Koodin siistiminen Vinkkejä Anne Benson/Tanja Bergius Opintojakson ict1td002 käyttöön Sivu 1 / 13 Eclipse 3.2 pikku opas versio 1.0 Ohjeen sisältö: Esittely Uuden projektin perustaminen Sovelluksen luominen Koodin siistiminen Vinkkejä

Lisätiedot

TW-LTE 4G/3G. USB-modeemi (USB 2.0)

TW-LTE 4G/3G. USB-modeemi (USB 2.0) TW-LTE 4G/3G USB-modeemi (USB 2.0) Tiedonsiirtonopeus: 100 Mbps/50 Mbps LTE: 1800/2100/2600 MHz GSM/GPRS/EDGE: 850/900/1800/1900 MHz UMTS: 900/2100 MHz Pikaohje (Finnish) CE Käyttöönotto- ohje SIM- kortin

Lisätiedot

ELOKUVATYÖKALUN KÄYTTÖ ANIMAATION LEIKKAAMISESSA. Kun aloitetaan uusi projekti, on se ensimmäisenä syytä tallentaa.

ELOKUVATYÖKALUN KÄYTTÖ ANIMAATION LEIKKAAMISESSA. Kun aloitetaan uusi projekti, on se ensimmäisenä syytä tallentaa. ELOKUVATYÖKALUN KÄYTTÖ ANIMAATION LEIKKAAMISESSA Kun aloitetaan uusi projekti, on se ensimmäisenä syytä tallentaa. Projekti kannattaa tallentaa muutenkin aina sillöin tällöin, jos käy niin ikävästi että

Lisätiedot

H5P-työkalut Moodlessa

H5P-työkalut Moodlessa H5P-työkalut Moodlessa 1. H5P-työkalujen käyttöönotto Moodlessa Tampereen yliopisto/tietohallinto 2017 Emma Hanhiniemi 1. Klikkaa Moodlen muokkausnäkymässä Lisää aktiviteetti tai aineisto -linkkiä. 2.

Lisätiedot

Skype for Business ohjelman asennus- ja käyttöohje Sisällys

Skype for Business ohjelman asennus- ja käyttöohje Sisällys Skype for Business ohjelman asennus- ja käyttöohje Sisällys Kirjautuminen Office 365 -palveluun... 2 Skype for Business ohjelman asentaminen... 3 Yhteyshenkilöiden lisääminen Skype for Business ohjelmassa...

Lisätiedot

Laskuharjoitus 9, tehtävä 6

Laskuharjoitus 9, tehtävä 6 Aalto-yliopiston perustieteiden korkeakoulu Jouni Pousi Systeemianalyysin laboratorio Mat-2.4129 Systeemien identifiointi Laskuharjoitus 9, tehtävä 6 Tämä ohje sisältää vaihtoehtoisen tavan laskuharjoituksen

Lisätiedot

Jypelin käyttöohjeet» Miten saan peliin pistelaskurin?

Jypelin käyttöohjeet» Miten saan peliin pistelaskurin? Jypelin käyttöohjeet» Miten saan peliin pistelaskurin? Pistelaskurin saamiseksi tarvitaan kaksi osaa: Laskuri, joka laskee pisteitä Olio, joka näyttää pisteet ruudulla Laskuri voi olla esimerkiksi tyyppiä

Lisätiedot

Metodien tekeminen Javalla

Metodien tekeminen Javalla 1 Metodien tekeminen Javalla Mikä metodi on? Metodin syntaksi Metodi ja sen kutsuminen Parametreista Merkkijonot ja metodi Taulukot ja metodi 1 Mikä metodi on? Metodilla toteutetaan luokkaan toiminnallisuutta.

Lisätiedot

Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op Taulukot & Periytyminen

Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op Taulukot & Periytyminen Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op Taulukot & Periytyminen Taulukot: Array Taulukko Javassa pitää aina perustaa (new) Yksinkertaisessa tilanteessa taulukon koko tiedetään etukäteen ja

Lisätiedot

EASY Tiedostopalvelin - mobiilin käyttöopas

EASY Tiedostopalvelin - mobiilin käyttöopas EASY Tiedostopalvelin - mobiilin käyttöopas ios www.storageit.fi - Äyritie 8 D, 01510 VANTAA Salorantie 1, 98310 KEMIJÄRVI Sisältö 1. Lataaminen ja asennus 2. Kansiot ja tiedostot Uusien tiedostojen luonti

Lisätiedot

Delegaatit ja tapahtumakäsittelijät

Delegaatit ja tapahtumakäsittelijät 14 Delegaatit ja tapahtumakäsittelijät Toinen käyttökelpoinen keksintö C#-kielessä ovat delegaatit. Periaatteessa ne palvelevat samaa tarkoitusta kuin C++:n funktio-osoittimet. Delegaatit ovat kuitenkin

Lisätiedot

on ohjelmoijan itse tekemä tietotyyppi, joka kuvaa käsitettä

on ohjelmoijan itse tekemä tietotyyppi, joka kuvaa käsitettä LUOKAN MÄÄRITTELY Luokka, mitä se sisältää Luokan määrittely Olion ominaisuudet eli attribuutit Olion metodit Olion muodostimet ja luonti Olion tuhoutuminen Metodin kutsu luokan ulkopuolelta Olion kopioiminen

Lisätiedot

Pikaohje formaatin valmistamiseen

Pikaohje formaatin valmistamiseen Pikaohje formaatin valmistamiseen Esko Otava Oy ver.1.0 Pääikkunasta (tulostusikkunasta) valitaan Cards-Show cards manager Paina Add 2 Paina New Kortinsuunnitteluikkuna on jaettu kolmeen osaan: Vasemmalla

Lisätiedot

Pong-peli, vaihe Rajojen tarkistus Yläreunan tarkistus. Muilla kielillä: English Suomi

Pong-peli, vaihe Rajojen tarkistus Yläreunan tarkistus. Muilla kielillä: English Suomi Muilla kielillä: English Suomi Pong-peli, vaihe 6 Tässä vaiheessa parantelemme mailojen liikuttelua ja tutustumme if-lauseeseen. 1. Rajojen tarkistus Edellisessä oppaassa laitoimme mailat liikkumaan, mutta

Lisätiedot

4. Luokan testaus ja käyttö olion kautta 4.1

4. Luokan testaus ja käyttö olion kautta 4.1 4. Luokan testaus ja käyttö olion kautta 4.1 Olion luominen luokasta Java-kielessä olio määritellään joko luokan edustajaksi tai taulukoksi. Olio on joukko keskusmuistissa olevia tietoja. Oliota käsitellään

Lisätiedot

Share-työkalu (AC 9.1)

Share-työkalu (AC 9.1) 1 Share-työkalu (AC 9.1) Share-työkalulla voit jakaa Connect-huoneessa tietokoneesi näyttöä, koneellasi auki olevia sovelluksia tai valkotaulun, johon voi piirtää tai kirjoittaa. Jos haluat uuden Share-työkalun,

Lisätiedot

Yleistä. Nyt käsitellään vain taulukko (array), joka on saman tyyppisten muuttujien eli alkioiden (element) kokoelma.

Yleistä. Nyt käsitellään vain taulukko (array), joka on saman tyyppisten muuttujien eli alkioiden (element) kokoelma. 2. Taulukot 2.1 Sisältö Yleistä. Esittely ja luominen. Alkioiden käsittely. Kaksiulotteinen taulukko. Taulukko operaation parametrina. Taulukko ja HelloWorld-ohjelma. Taulukko paluuarvona. 2.2 Yleistä

Lisätiedot

Pong-peli, vaihe Koordinaatistosta. Muilla kielillä: English Suomi. Tämä on Pong-pelin tutoriaalin osa 2/7. Tämän vaiheen aikana

Pong-peli, vaihe Koordinaatistosta. Muilla kielillä: English Suomi. Tämä on Pong-pelin tutoriaalin osa 2/7. Tämän vaiheen aikana Muilla kielillä: English Suomi Pong-peli, vaihe 2 Tämä on Pong-pelin tutoriaalin osa 2/7. Tämän vaiheen aikana Laitetaan pallo liikkeelle Tehdään kentälle reunat Vaihdetaan kentän taustaväri Zoomataan

Lisätiedot

Kuvaruudun striimaus tai nauhoitus. Open Broadcaster Software V.20. Tero Keso, Atso Arat, Niina Järvinen & Valtteri Virtanen (muokattu 20.2.

Kuvaruudun striimaus tai nauhoitus. Open Broadcaster Software V.20. Tero Keso, Atso Arat, Niina Järvinen & Valtteri Virtanen (muokattu 20.2. Kuvaruudun striimaus tai nauhoitus Open Broadcaster Software V.20 Tero Keso, Atso Arat, Niina Järvinen & Valtteri Virtanen (muokattu 20.2.2019) Sivu 1 / 14 Sisällysluettelo Mikä on OBS... 2 Ohjelman perusasetukset...

Lisätiedot

Internet Explorer 7 & 8 pop-up asetukset

Internet Explorer 7 & 8 pop-up asetukset Sivu 1(8) Internet Explorer 7 & 8 pop-up asetukset www.procountor.com Internet Explorer 7 ja 8 sisältää pop-up ikkunoiden esto toiminnon. ProCountor -Taloushallintoohjelmistossa voidaan raportit tulostaa

Lisätiedot

Automaattinen sovitus-, sävellys- ja harjoitteluohjelma. Suppea opas Band-In-A-Box, jäljempänä BIAB, ohjelman käyttöön Musiikkitalon Mac-luokassa.

Automaattinen sovitus-, sävellys- ja harjoitteluohjelma. Suppea opas Band-In-A-Box, jäljempänä BIAB, ohjelman käyttöön Musiikkitalon Mac-luokassa. Automaattinen sovitus-, sävellys- ja harjoitteluohjelma. Suppea opas Band-In-A-Box, jäljempänä BIAB, ohjelman käyttöön Musiikkitalon Mac-luokassa. Aloitus a) kirjaudu sisään uniarts-tunnuksillasi. b) kytke

Lisätiedot

Informaatioteknologian laitos Olio-ohjelmoinnin perusteet / Salo 15.2.2006

Informaatioteknologian laitos Olio-ohjelmoinnin perusteet / Salo 15.2.2006 TURUN YLIOPISTO DEMO III Informaatioteknologian laitos tehtävät Olio-ohjelmoinnin perusteet / Salo 15.2.2006 1. Tässä tehtävässä tarkastellaan erääntyviä laskuja. Lasku muodostaa oman luokkansa. Laskussa

Lisätiedot

MITEN KIRJAUDUN ADOBE CONNECTIIN?

MITEN KIRJAUDUN ADOBE CONNECTIIN? Connect-ohje oppilaalle MITEN KIRJAUDUN ADOBE CONNECTIIN? 1. Avaa internet-selain ja kirjoita osoiteriville virtuaaliluokkasi osoite, esim. http://tampere.adobeconnect.com/virta ja paina Enter: Luokkien

Lisätiedot

Graafisen käyttöliittymän ohjelmointi Syksy 2013

Graafisen käyttöliittymän ohjelmointi Syksy 2013 TIE-11300 Tietotekniikan vaihtuva-alainen kurssi Graafisen käyttöliittymän ohjelmointi Syksy 2013 Luento 10 Rinnakkaisuus käyttöliittymäohjelmoinnissa Juha-Matti Vanhatupa Rinnakkaisuus ja käyttöliittymäohjelmointi

Lisätiedot

Testivetoinen ohjelmistokehitys

Testivetoinen ohjelmistokehitys Testivetoinen ohjelmistokehitys Ohjelman luominen pienin askelin 1. Kirjoita testi, joka testaa ohjelmalle myöhemmin lisättävää toiminnallisuutta. 2. Suorita testi. Testin ei tule mennä läpi. Mikäli testi

Lisätiedot

Sisällysluettelo 1. Sony Vegas editorin pääikkuna...2 2. Uuden projektin aloittaminen...2 3. Tiedostojen lisääminen projektin mediakirjastoon...3 4.

Sisällysluettelo 1. Sony Vegas editorin pääikkuna...2 2. Uuden projektin aloittaminen...2 3. Tiedostojen lisääminen projektin mediakirjastoon...3 4. Sisällysluettelo 1. Sony Vegas editorin pääikkuna...2 2. Uuden projektin aloittaminen...2 3. Tiedostojen lisääminen projektin mediakirjastoon...3 4. Tiedostojen lisääminen aikajanalle...3 5. Perustoiminnot

Lisätiedot

Videokuvan siirtäminen kamerasta tietokoneelle Windows Movie Maker -ohjelman avulla

Videokuvan siirtäminen kamerasta tietokoneelle Windows Movie Maker -ohjelman avulla Videokuvan siirtäminen kamerasta tietokoneelle Windows Movie Maker -ohjelman avulla 1. Digivideokamera liitetään tietokoneeseen FireWire-piuhalla. (Liitännällä on useita eri nimiä: myös IEEE 1394, DV,

Lisätiedot

Valikot ja työkalupalkit. juha.jarvensivu@tut.fi 2008

Valikot ja työkalupalkit. juha.jarvensivu@tut.fi 2008 Valikot ja työkalupalkit juha.jarvensivu@tut.fi 2008 Sisältö Valikko Popup-valikko Työkalupalkki Tilarivi Sovellus ikoni Action Valikko MenuStrip Form mainwindow = new Form(); MenuStrip mainmenu = new

Lisätiedot

812341A Olio-ohjelmointi Peruskäsitteet jatkoa

812341A Olio-ohjelmointi Peruskäsitteet jatkoa 812341A Olio-ohjelmointi 2106 Peruskäsitteet jatkoa Luokkakohtaiset piirteet n Yhteisiä kaikille saman luokan olioille n Liittyvät luokkaan, eivät yksittäiseen olioon n Kaikki ko. luokan oliot voivat käyttää

Lisätiedot

Microsoft Visual Studio 2005

Microsoft Visual Studio 2005 Sovelluksen jako palvelimiksi: Palvelin on sille annettuun vastuulliseen tehtävään erikoistunut sovellusosa. Käyttöliittymäpalvelin (Web-palvelin) vastaa käyttöliittymän toteuttamisesta. Web-palvelin toteuttaa

Lisätiedot

FinFamily Installation and importing data (11.1.2016) FinFamily Asennus / Installation

FinFamily Installation and importing data (11.1.2016) FinFamily Asennus / Installation FinFamily Asennus / Installation 1 Sisällys / Contents FinFamily Asennus / Installation... 1 1. Asennus ja tietojen tuonti / Installation and importing data... 4 1.1. Asenna Java / Install Java... 4 1.2.

Lisätiedot

AdobeConnect peruskäyttövinkkejä

AdobeConnect peruskäyttövinkkejä AdobeConnect peruskäyttövinkkejä Verkkotilaisuuden valmistelu ja kirjautuminen 1. Kytke kamera ja mikrofoni ennen tietokoneen käynnistystä a. Pöytäkoneessa laitteet kytketään aina TAKAPANEELIIN 2. Käynnistä

Lisätiedot

UCOT-Sovellusprojekti. Käyttöohje

UCOT-Sovellusprojekti. Käyttöohje UCOT-Sovellusprojekti Käyttöohje Ilari Liukko Tuomo Pieniluoma Vesa Pikki Panu Suominen Versio: 0.02 Julkinen 7. joulukuuta 2006 Jyväskylän yliopisto Tietotekniikan laitos Jyväskylä Hyväksyjä Päivämäärä

Lisätiedot

PERUSEDITOINTI: HIT FILM EXPRESS. Jukka Savilampi 2017

PERUSEDITOINTI: HIT FILM EXPRESS. Jukka Savilampi 2017 PERUSEDITOINTI: HIT FILM EXPRESS Jukka Savilampi 2017 HIT FILM EXPRESS -NÄKYMÄ 1. UUDEN EDITOINTIPROJEKTIN LUOMINEN Klikkaa New Valitse projektin asetuksista sama resoluutio, mikä on kuvaamissasi videoissakin.

Lisätiedot

Sisältö. 2. Taulukot. Yleistä. Yleistä

Sisältö. 2. Taulukot. Yleistä. Yleistä Sisältö 2. Taulukot Yleistä. Esittely ja luominen. Alkioiden käsittely. Kaksiulotteinen taulukko. Taulukko operaation parametrina. Taulukko ja HelloWorld-ohjelma. Taulukko paluuarvona. 2.1 2.2 Yleistä

Lisätiedot

Adobe Premiere Elements ohjeet

Adobe Premiere Elements ohjeet Adobe Premiere Elements ohjeet 1. Käynnistä ohjelma kaksoisnapsauttamalla työpöydän kuvaketta. 2. Avautuvasta Elements-ikkunasa valitse a. New Project jos aloitat uuden videoeditoinnin. b. Open Project

Lisätiedot

C# olio-ohjelmointi perusopas

C# olio-ohjelmointi perusopas Paavo Räisänen C# olio-ohjelmointi perusopas www.ohjelmoimaan.net Tätä opasta saa vapaasti kopioida, tulostaa ja levittää ei kaupallisissa tarkoituksissa. Kuitenkaan omille nettisivuille opasta ei saa

Lisätiedot

NUUO ETÄOHJELMA PIKAOPAS. Maahantuoja Dasys Oy Kaivolahdenkatu 6 00810 HELSINKI helpdesk@dasys.fi www.dasys.fi

NUUO ETÄOHJELMA PIKAOPAS. Maahantuoja Dasys Oy Kaivolahdenkatu 6 00810 HELSINKI helpdesk@dasys.fi www.dasys.fi Maahantuoja Dasys Oy Kaivolahdenkatu 6 00810 HELSINKI helpdesk@dasys.fi www.dasys.fi NUUO ETÄOHJELMA PIKAOPAS 1.0 Tallenteiden haku ja kamerakuvien katselu DASYS-NUUO Tallentimien mukana tulee cd-levy

Lisätiedot

Lab SBS3.FARM_Hyper-V - Navigating a SharePoint site

Lab SBS3.FARM_Hyper-V - Navigating a SharePoint site Lab SBS3.FARM_Hyper-V - Navigating a SharePoint site Note! Before starting download and install a fresh version of OfficeProfessionalPlus_x64_en-us. The instructions are in the beginning of the exercise.

Lisätiedot

1. Laitteen käyttöönotto ja käynnistys. 4. Kappaleitten soittaminen ja Auto-DJ. 5. Volume kontrollit sekä Ekvalisaattori ja Transponointi

1. Laitteen käyttöönotto ja käynnistys. 4. Kappaleitten soittaminen ja Auto-DJ. 5. Volume kontrollit sekä Ekvalisaattori ja Transponointi 1. Laitteen käyttöönotto ja käynnistys 2. Kappalehaku ja sen käyttö 3. Soittolistan käyttäminen 4. Kappaleitten soittaminen ja Auto-DJ 5. Volume kontrollit sekä Ekvalisaattori ja Transponointi 6. Musiikki

Lisätiedot

C-kasetin digitointi Audacity-ohjelmalla

C-kasetin digitointi Audacity-ohjelmalla Digitointiohjeita_Kasetti 10.7.2014 1 C-kasetin digitointi Audacity-ohjelmalla I Kasetin tallennus tietokoneelle Kytke virta tietokoneeseen ja näyttöön. Kasettisoitin saa virtansa tietokoneesta. Käynnistä

Lisätiedot

Sisällys. Yleistä attribuuteista. Näkyvyys luokan sisällä. Tiedonkätkentä. Aksessorit. 4.2

Sisällys. Yleistä attribuuteista. Näkyvyys luokan sisällä. Tiedonkätkentä. Aksessorit. 4.2 4. Attribuutit 4.1 Sisällys Yleistä attribuuteista. Näkyvyys luokan sisällä. Tiedonkätkentä. Aksessorit. 4.2 Yleistä Luokan lohkossa, mutta metodien ulkopuolella esiteltyjä muuttujia ja vakioita. Esittely

Lisätiedot

14. Poikkeukset 14.1

14. Poikkeukset 14.1 14. Poikkeukset 14.1 Sisällys Johdanto. Tarkistettavat ja tarkistamattomat poikkeukset. Poikkeusten tunnistaminen ja sieppaaminen try-catchlauseella. Mitä tehdä siepatulla poikkeuksella? Poikkeusten heittäminen.

Lisätiedot

TIETORAKENTEET JA ALGORITMIT

TIETORAKENTEET JA ALGORITMIT TIETORAKENTEET JA ALGORITMIT Timo Harju 1999-2004 1 typedef link List; /* Vaihtoehtoisia nimiä */ typedef link Stack; /* nodepointterille */ typedef link Queue typedef struct node Node; /* itse nodelle

Lisätiedot

LP-levyn digitointi Audacity-ohjelmalla

LP-levyn digitointi Audacity-ohjelmalla Digitointiohjeita_LP 10.7.2014 1 LP-levyn digitointi Audacity-ohjelmalla I Levyn tallennus tietokoneelle Kytke virta tietokoneeseen ja näyttöön. Levysoitin saa virtansa tietokoneesta. Käynnistä kopiointiohjelma

Lisätiedot

Graafisen käyttöliittymän ohjelmointi

Graafisen käyttöliittymän ohjelmointi TIE-11300 Tietotekniikan vaihtuva-alainen kurssi Graafisen käyttöliittymän ohjelmointi Luento 2 Tapahtumapohjainen ohjelmointi Juha-Matti Vanhatupa Sisältö Tapahtumapohjainen ohjelmointi Tapahtumakuuntelijoiden

Lisätiedot

KOHDELUOKAN MÄÄRITTELY

KOHDELUOKAN MÄÄRITTELY KOHDELUOKAN MÄÄRITTELY Kohdeluokka, mitä se sisältää Luokan määrittely Olion ominaisuudet eli attribuutit Olion metodit Olion luonti Olion tuhoutuminen Metodin kutsu luokan ulkopuolelta Taulukon alkiona

Lisätiedot

CLOUDBACKUP TSM varmistusohjelmiston asennus

CLOUDBACKUP TSM varmistusohjelmiston asennus Luottamuksellinen JAVERDEL OY CLOUDBACKUP TSM varmistusohjelmiston asennus Copyright 2 (9) SISÄLLYSLUETTELO 1 ASENNUSOHJE WINDOWS KÄYTTÖJÄRJESTELMÄLLÄ VARUSTETTUIHIN LAITTEISIIN... 3 1.1 Yleistä... 3 1.2

Lisätiedot

Adobe Premiere 6.0 ohjelmasta

Adobe Premiere 6.0 ohjelmasta 1 Adobe Premiere 6.0 ohjelmasta 1. Ohjelman käynnistys...2 2 Ohjelman näkymän esittely...3 Työskentelytila...3 3 VIDEON KAAPPAUS:...6 3.1. Tallennuspaikka valitaan valitsemalla...6 3. 2. Kaappaus aloitetaan

Lisätiedot

Ohjelmointi 2 / 2010 Välikoe / 26.3

Ohjelmointi 2 / 2010 Välikoe / 26.3 Ohjelmointi 2 / 2010 Välikoe / 26.3 Välikoe / 26.3 Vastaa neljään (4) tehtävään ja halutessa bonustehtäviin B1 ja/tai B2, (tuovat lisäpisteitä). Bonustehtävät saa tehdä vaikkei olisi tehnyt siihen tehtävään

Lisätiedot

EASY Tiedostopalvelin - mobiilin käyttöopas

EASY Tiedostopalvelin - mobiilin käyttöopas EASY Tiedostopalvelin - mobiilin käyttöopas Android www.storageit.fi - Äyritie 8 D, 01510 VANTAA Salorantie 1, 98310 KEMIJÄRVI Sisältö 1. Lataaminen ja asennus 2. Kansiot ja tiedostot Uusien tiedostojen

Lisätiedot

SSH Secure Shell & SSH File Transfer

SSH Secure Shell & SSH File Transfer SSH Secure Shell & SSH File Transfer TIETOHALLINTO Janne Suvanto 1.9 2002 Sisällysluettelo Sisällysluettelo... 1 Yleistä... 2 SSH Secure Shell ohjelman asetukset... 3 POP3 tunnelin asetukset... 6 Yhteyden

Lisätiedot

Tapahtumapohjainen ohjelmointi. Juha Järvensivu 2008

Tapahtumapohjainen ohjelmointi. Juha Järvensivu 2008 Tapahtumapohjainen ohjelmointi Juha Järvensivu juha.jarvensivu@tut.fi 2008 Sisältö Tapahtumapohjainen ohjelmointi Käyttöliittymän rakenne Pääikkuna (top-level window) Lapsi-ikkuna (child window) Dialogit

Lisätiedot

Kuvaruudun striimaus tai nauhoitus. Open Broadcaster Software V.20. Tero Keso, Atso Arat & Niina Järvinen (muokattu )

Kuvaruudun striimaus tai nauhoitus. Open Broadcaster Software V.20. Tero Keso, Atso Arat & Niina Järvinen (muokattu ) Kuvaruudun striimaus tai nauhoitus Open Broadcaster Software V.20 Tero Keso, Atso Arat & Niina Järvinen (muokattu 28.11.2017) OBS 1 (12) Sisällysluettelo Mikä on OBS... 2 Ohjelman perusasetukset... 2 Tarvittavat

Lisätiedot

// Tulostetaan double-tyyppiseen muuttujaan "hinta" tallennettu // kertalipun hinta ja vaihdetaan riviä. System.out.printf("%.1f euros.

// Tulostetaan double-tyyppiseen muuttujaan hinta tallennettu // kertalipun hinta ja vaihdetaan riviä. System.out.printf(%.1f euros. Lue kukin tehtävänanto huolellisesti ja kokonaisuudessaan ennen kuin aloitat vastaamisen. Kustakin tehtävästä voi saada 0 6 pistettä. Tentin läpipääsyraja on 12 / 24 pistettä. Ratkaisut palautetaan WETO-järjestelmään

Lisätiedot

MITEN KIRJAUDUN ADOBE CONNECTIIN?

MITEN KIRJAUDUN ADOBE CONNECTIIN? Connect-ohje oppilaalle MITEN KIRJAUDUN ADOBE CONNECTIIN? 1. Avaa internet-selain ja kirjoita osoiteriville virtuaaliluokkasi osoite, esim. http://tampere.adobeconnect.com/virta ja paina Enter: Luokkien

Lisätiedot

VHS-kasetin kopiointi DVD-levylle Adobe Premiere Elements -ohjelmalla

VHS-kasetin kopiointi DVD-levylle Adobe Premiere Elements -ohjelmalla Kopiointiohjeita_VHS2DVD 8.7.2014 1 VHS-kasetin kopiointi DVD-levylle Adobe Premiere Elements -ohjelmalla I Kasetin luku Adobe Premiere Elements -ohjelmaan Kytke virta tietokoneeseen, näyttöön ja videolaitteeseen.

Lisätiedot

16. Javan omat luokat 16.1

16. Javan omat luokat 16.1 16. Javan omat luokat 16.1 Sisällys Johdanto. Object-luokka: tostring-, equals-, clone- ja getclass-metodit. Comparable-rajapinta: compareto-metodi. Vector- ja ArrayList-luokat. 16.2 Javan omat luokat

Lisätiedot

Audio- ja videotiedostoja sisältävän PowerPoint-esityksen pakkaaminen

Audio- ja videotiedostoja sisältävän PowerPoint-esityksen pakkaaminen Audio- ja videotiedostoja sisältävän PowerPoint-esityksen pakkaaminen Nämä ohjeet koskevat Microsoft Office-versiota 2003 tai uudempaa. Toimintoa kutsutaan nimellä Package for CD. Vanhemmissa versioissa

Lisätiedot

Sisällys. 12. Näppäimistöltä lukeminen. Yleistä. Yleistä 12.1 12.2 12.3 12.4

Sisällys. 12. Näppäimistöltä lukeminen. Yleistä. Yleistä 12.1 12.2 12.3 12.4 Sisällys 12. Näppäimistöltä lukeminen Arvojen lukeminen näppäimistöltä yleisesti. Arvojen lukeminen näppäimistöltä Java-kielessä.. Luetun arvon tarkistaminen. Tietovirrat ja ohjausmerkit. Scanner-luokka.

Lisätiedot

Adobe Connect ohjeita etäopettajille ja etäkokousten järjestäjille

Adobe Connect ohjeita etäopettajille ja etäkokousten järjestäjille (6) Sivistystoimiala, TOP-keskus.8.06 / Antti Huttunen Adobe Connect ohjeita etäopettajille ja etäkokousten järjestäjille Kirjautuminen Avaa nettiselain ja mene etähuoneen osoitteeseen. Valitse kirjautumisruudussa

Lisätiedot

Pedacode Pikaopas. Java-kehitysympäristön pystyttäminen

Pedacode Pikaopas. Java-kehitysympäristön pystyttäminen Pedacode Pikaopas Java-kehitysympäristön pystyttäminen Pikaoppaan sisältö Pikaoppaassa kuvataan, miten Windowstyöasemalle asennetaan Java-ohjelmoinnissa tarvittavat työkalut, minkälaisia konfigurointeja

Lisätiedot

Alkuun HTML5 peliohjelmoinnissa

Alkuun HTML5 peliohjelmoinnissa Paavo Räisänen Alkuun HTML5 peliohjelmoinnissa www.ohjelmoimaan.net Tätä opasta saa vapaasti kopioida ja levittää ei kaupallisissa tarkoituksissa. Sisällysluettelo 1: Alkusanat 2: Alkuun 3: Pelinäkymä

Lisätiedot

Videoeditointi: Adobe Premiere Pro CS4

Videoeditointi: Adobe Premiere Pro CS4 Videoeditointi: Adobe Premiere Pro CS4 Sisältö Yleistä... 1 Ohjelman käynnistäminen... 2 Videon käyttöönotto... 4 Videon editoiminen... 6 Efektien lisääminen ja hienosäätö... 8 Tekstien lisääminen... 9

Lisätiedot

Avid Pro Tools Äänityksen perusteet. Petri Myllys 2013 / Taideyliopisto, Sibelius-Akatemia tp48 Äänitekniikan perusteet

Avid Pro Tools Äänityksen perusteet. Petri Myllys 2013 / Taideyliopisto, Sibelius-Akatemia tp48 Äänitekniikan perusteet Avid Pro Tools Äänityksen perusteet Petri Myllys 20 / Taideyliopisto, Sibelius-Akatemia tp48 Äänitekniikan perusteet Äänitys Pro Toolsissa Luo ensin uusi raita (ks. edellinen ohje). Jos äänität yhdellä

Lisätiedot

Interaktiivinen tarinankerronta

Interaktiivinen tarinankerronta Interaktiivinen tarinankerronta Tehtävä 1: Tarinan alku pääohjelmaan Main. java ei tehdä muutoksia tulostusrivit tiedostoon Kayttoliittyma.java tulostus lyhyesti sout + tab komennolla Tiedoston Kayttoliittyma.java

Lisätiedot