Changes between Version 11 and Version 12 of hiekkalaatikko


Ignore:
Timestamp:
2018-06-07 14:12:07 (11 months ago)
Author:
mikurhin
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • hiekkalaatikko

    v11 v12  
    212212Download in other formats: 
    213213Plain Text PDF 
     214Tässä ohjeessa käydään läpi muuttujan ja tyypin käsitteet. Lisäksi käydään läpi tavallisia operaatioita. 
     215 
     2161. Mikä on muuttuja 
     217Ohjelman suorituksen aikana tarvittavaa tietoa voidaan tallentaa muuttujiin. Muuttuja on ohjelmointikielten termi sille, että jokin asia laitetaan "ylös muistiin". Normaalissa elämässä esimerkiksi ohi ajavista autoista voidaan pitää lukua: 1, 2, 3, ja niin edelleen. Aina kun auto ajaa ohi, lisätään edelliseen muistissa olevaan lukuun yksi. 
     218 
     219Muuttujassa oleva tieto voi muuttua ohjelman aikana - siksi sitä sanotaan muuttujaksi! Ihan kuten esimerkissämme autojen määrä muuttuu sitä mukaan kun autoja tulee lisää. Ohjelma tunnistaa muuttujan sille annetun nimen perusteella. Esimerkissämme muuttujan nimi voisi olla vaikkapa ohiAjaneidenAutojenMaara. Muuttujaan voidaan tallentaa vain määritellyn tyypin mukaisia arvoja. Esimerkissämme muuttujan tyypiksi kävisi kokonaisluku. 
     220 
     2212. Muuttujan määrittely 
     222Muuttuja määritellään kirjoittamalla ensin sen tyyppi ja perään nimi välilyönnillä erotettuna. Lause päättyy puolipisteeseen, kuten kaikki muutkin C#-kielen lauseet. 
     223 
     224Esimerkkejä: 
     225 
     226int x; 
     227string teksti; 
     228PhysicsObject pallo; 
     229Muuttujalle voidaan myös asettaa lähtöarvo: 
     230 
     231int x = 5; 
     232string teksti = "palturia"; 
     2333. Muuttujan arvon asettaminen 
     234Kun muuttuja on esitelty, sen arvoa voidaan muuttaa vapaasti, kunhan uusi arvo on samaa tyyppiä kuin muuttuja. 
     235 
     236x = 10;   // toimii 
     237int x; 
     238x = "tekstiä";   // antaa virheen, sillä arvo on tyyppiä string (merkkijono) 
     2394. Perustyypit 
     240C#-kielen perustyyppejä: 
     241 
     2424.1. Lukuarvotyypit 
     243Lukuarvotyyppejä on kokonaisluku- ja liukulukutyyppisiä. Kokonaisluvuilla (integer) ei ole desimaaliosaa, kun taas liukuluvuilla (floating point number) on. Yleensä voidaan käyttää kokonaisluvuille tyyppiä int ja liukuluvuille double, mutta tässä taulukko muistakin kokonaislukutyypeistä: 
     244 
     245(Linkit vievät MSDN-dokumentteihin.) 
     246 
     247Tyyppinimi      Pienin mahdollinen arvo Suurin mahdollinen arvo Selitys 
     248​byte   0       255     Tavu 
     249​short  -32768  32767   Etumerkillinen lyhyt kokonaisluku 
     250​ushort 0       65535   Etumerkitön lyhyt kokonaisluku 
     251​int    -2147483648 (noin -2.1 miljardia)       2147483647      Etumerkillinen kokonaisluku 
     252​uint   0       4294967296 (noin 4.3 miljardia) Etumerkitön kokonaisluku 
     253​long   -9.22 * 1018 (noin -9 triljoonaa)       9.22 * 1018     Etumerkillinen pitkä kokonaisluku 
     254​ulong  0       1.84 * 1019 (noin 20 triljoonaa)        Etumerkitön pitkä kokonaisluku 
     255Liukuluvuille oleellista on tarkkuus, ei niinkään lukualue. Double-tyyppinen muuttuja kykenee noin 15 desimaalin tarkkuuteen. Doublen lisäksi on myös vähemmän tarkka tyyppi float, jonka tarkkuus on noin 7 desimaalia. Float-tyyppisiä lukuja ei käsitellä tällä kurssilla. 
     256 
     2574.2. Merkit ja merkkijonot 
     258Muuttujiin voidaan tallentaa myös tekstiä. Teksti tallennetaan merkki kerrallaan, mistä nimitys merkkijono (string <- string of characters). Yksittäisiä merkkejä voidaan tallentaa char-tyyppisiin muuttujiin ja merkkijonoja string-tyyppisiin. 
     259 
     260char c = 'a'; 
     261string jono = "abcdef"; 
     262Merkkijonoja voidaan myös yhdistellä + -operaattorilla: 
     263 
     264string a = "merkki"; 
     265string b = "jono"; 
     266string c = a + b;   // "merkkijono" 
     2674.3. Oliotyypit 
     268Myös oliot ovat muuttujia. Lisätietoa Jypelin erilaisista olioista löytyy sivulta Oliot ja selitykset. Oliomuuttujan tyyppi on sen luokka. 
     269 
     2705. Operaatiot 
     271Muuttujan paikalla voidaan aina käyttää myös operaatiota, jossa muuttujia lasketaan yhteen, kerrotaan keskenään tai muuten manipuloidaan. Esimerkiksi 
     272 
     273int c = a + b; 
     274sijoittaa kokonaislukumuuttujaan c muuttujien a ja b yhteenlasketut arvot. 
     275 
     2765.1. Aritmeettisia (laskennallisia) operaattoreita 
     277Operaattori     Esimerkki       Merkitys 
     278a = b   Sijoitus (b:n arvo sijoitetaan muuttujaan a) 
     279+       a + b   Yhteenlasku 
     280-       a - b   Vähennyslasku 
     281*       a * b   Kertolasku 
     282/       a / b   Jakolasku. Huom. nollalla ei saa jakaa|| 
     283%       a % b   Jakolaskun jakojäännös 
     284Lisäksi esim. sijoitus a = a + b voidaan kirjoittaa lyhyempään muotoon a += b. Sanallisesti ilmaistuna tämä tarkoittaa, että "muuttujan a arvoon lisätään b:n arvo". Sama käytäntö pätee myös muille operaattoreille. 
     285 
     2865.2. Vertailuoperaattorit 
     287Kahden muuttujan vertailua voidaan käyttää esimerkiksi if-lauseessa. Muuttujien paikalla voidaan edelleen käyttää operaatiolausekkeita. Tässä yleisimmät vertailuoperaattorit: 
     288 
     289Operaattori     Esimerkki       Merkitys 
     290a == b  Yhtäsuuruus 
     291=||a != b       Erisuuruus 
     292<       a < b   Pienempi kuin 
     293>       a > b   Suurempi kuin 
     294<       a <= b  Pienempi tai yhtäsuuri kuin 
     295>       a >= b  Suurempi tai yhtäsuuri kuin 
     2966. Tyyppimuunnokset 
     297Joskus voi tulla tarve muuttaa muuttuja tyypistä toiseen. Esimerkiksi kokonaisluvun voisi kuvitella olevan muunnettavissa helposti liukuluvuksi lisäämällä siihen nolladesimaalit perään. Tämä onnistuu niin sanotulla tyyppimuunnoksella, joka tehdään kirjoittamalla kohdetyyppi suluissa muunnettavan muuttujan eteen: 
     298 
     299int kokonaisluku = 7; 
     300double liukuluku = (double)kokonaisluku; 
     301Jypeli tarjoaa myös monille tyypeille omat muunnosfunktionsa: 
     302 
     303int kokonaisluku = 7; 
     304double liukuluku = kokonaisluku.ToDouble(); 
     305String merkkijono = kokonaisluku.ToString(); 
     306Olioille on olemassa myös oma muunnoksensa varatulla sanalla as. Muunnos on turvallinen, sillä jos se ei onnistu, arvoksi asetetaan yksinkertaisesti null. 
     307 
     308PhysicsObject fysiikkaolio = new PhysicsObject( "kissa", 2, 4 ); 
     309GameObject peliolio = fysiikkaolio as GameObject; 
     310Lisätietoa: tämä voidaan kirjoittaa myös käyttäen is-operaattoria ja perinteistä tyyppimuunnosta käyttäen muodossa 
     311 
     312PhysicsObject fysiikkaolio = new PhysicsObject( "kissa", 2, 4 ); 
     313GameObject peliolio = null; 
     314 
     315if ( fysiikkaolio is GameObject ) 
     316{ 
     317   peliolio = (GameObject)fysiikkaolio; 
     318} 
     319Is tarkistaa, onko olio haluttua tyyppiä. 
     320 
     321Download in other formats: 
     322Plain Text PDF 
     323Tässä ohjeessa käydään läpi mikä on attribuutti, mihin sitä tarvitaan ja kuinka sellainen saadaan luotua tavallisesta muuttujasta. 
     324 
     3251. Milloin muuttuja on olemassa? 
     326Tarkempaa tietoa siitä mikä muuttuja on löydät tältä sivulta, lue ensin se jos olet epävarma siitä, mikä muuttuja on tai miksi tarvitsisit sellaista peliisi. 
     327 
     328Muuttuja on määritelty (ts. olemassa) vain sitä edeltävän lähimmän aaltosulun ja sen sulkevan vastinparin välissä. Esimerkiksi ohjelma 
     329 
     330public class Peli : PhysicsGame 
     331{ 
     332   public override void Begin() 
     333   { 
     334      PhysicsObject pallo = new PhysicsObject(40, 40); 
     335      pallo.Shape = Shape.Circle; 
     336   } 
     337 
     338   void LiikutaPalloa() 
     339   { 
     340      pallo.Hit(new Vector(200, 100)); 
     341   } 
     342} 
     343on virheellinen, sillä aliohjelmassa LiikutaPalloa muuttujaa x ei ole olemassakaan! Vaikka aliohjelmaa kutsuttaisiinkin Beginistä, se ei muuta sitä, että pallo on määritelty vain Begin-aliohjelman aaltosulkujen sisäpuolella. 
     344 
     3452. Muuttujan määrittely ja alustus 
     346Muuttuja pallo on määritelty ja alustettu rivillä 
     347 
     348PhysicsObject pallo = new PhysicsObject(40, 40); 
     349Määrittely ja alustus voidaan kirjoittaa myös kahdeksi erilliseksi lauseeksi. Tämä saattaa tuntua turhalta, mutta seuraavassa kohdassa se osoittautuu varsin hyödylliseksi. 
     350 
     351PhysicsObject pallo; 
     352pallo = new PhysicsObject(40, 40); 
     3533. Attribuutti 
     354Kuinka sitten voitaisiin määritellä muuttuja pallo niin, että se olisi käytettävissä sekä Begin- että LiikutaPalloa-aliohjelmissa? Kuten aiemmin mainittiin, muuttujat ovat olemassa vain sitä edeltävän avaavan aaltosulun { ja sitä vastaavan sulkevan aaltosulun } välissä. Huomaa, että myös rivin 
     355 
     356public class Peli : PhysicsGame 
     357jälkeen tulee aaltosulku! Nyt kun muuttujan määrittely ja alustus on kirjoitettu erikseen, voimme siirtää määrittelyn aikaisemman aaltosulun jälkeen. 
     358 
     359public class Peli : PhysicsGame 
     360{ 
     361   PhysicsObject pallo; 
     362 
     363   public override void Begin() 
     364   { 
     365      pallo = new PhysicsObject(40, 40); 
     366      pallo.Shape = Shape.Circle; 
     367   } 
     368 
     369   void LiikutaPalloa() 
     370   { 
     371      pallo.Hit(new Vector(200, 100)); 
     372   } 
     373} 
     374jolloin pallo on käytettävissä kaikissa aliohjelmissa ja ohjelma toimii. Näin määriteltyä muuttujaa pallo sanotaan peliluokan attribuutiksi. 
     375 
     376Download in other formats: 
     377Plain Text PDF 
     378Aliohjelmat eli funktiot ovat ohjelman osia, joista jokainen hoitaa jotain omaa erityistä tehtäväänsä. Voidaan sanoa, että ohjelmat koostuvat aliohjelmista, eli ne ovat ohjelmien rakennuspalikoita. Kun ohjelma voidaan jakaa pienempiin osiin (aliohjelmiin), sen hallinta helpottuu. Muun muassa virheiden jäljittäminen helpottuu, kun ohjelma on jaettu (tarpeeksi pieniin) aliohjelmiin. 
     379 
     380Aliohjelmilla on nimi, parametrit ja palautusarvo. Seuraavassa esimerkki aliohjelmasta, joka yhdistää kaksi merkkijonoa. 
     381 
     382 
     383 
     384Aliohjelma koostuu näistä osista: 
     385 
     386Saantimääre: Voivatko muut ohjelmat käyttää aliohjelmaa. Voi yleensä olla public. Saantimäärettä ei ole pakko kirjoittaa C#:ssa. 
     387Palautusarvon tyyppi: esimerkissä String 
     388Aliohjelman nimi: esimerkissä Yhdista 
     389Parametrit: esimerkissä String jono1, String jono2 
     390Runko: aaltosulkujen väliin kirjoitettava ohjelmakoodi 
     391Aliohjelmaa voidaan kutsua pääohjelmasta tähän tapaan, olettaen että String-tyyppiset muuttujat jonot1ja2, jono1 ja jono2 on määritelty ohjelmassa aikaisemmin: 
     392 
     393jonot1ja2 = Yhdista( jono1, jono2 ); 
     394Palautusarvo ja sen tyyppi 
     395Aliohjelmalta odotettavaa vastausta sanotaan aliohjelman palautusarvoksi. Esimerkiksi aliohjelma SummaaLuvut voisi palauttaa kysyjälle syötetyn kokonaisluvun summan. 
     396 
     397Palautusarvon tyyppi kirjoitetaan aina ennen aliohjelman nimeä, ja se kertoo, minkä tyyppistä tietoa aliohjelmasta saadaan ulos. 
     398 
     399Esimerkiksi SummaaLuvut-aliohjelman palautusarvon tyyppinä luonnollinen valinta olisi int, tosin periaatteessa double kävisi myös, ja olisi jopa parempi siinä tapauksessa, että aliohjelmalla pitäisi pystyä laskemaan myös desimaalilukuja. Palautusarvoksi on myös mahdollista asettaa erityistyyppi void, jolloin aliohjelma ei palauta mitään. 
     400 
     401Parametrit 
     402Aliohjelman nimen perään sulkujen sisällä kirjoitettu lista kertoo sen parametrit, eli mitä aliohjelmalle syötetään. Jokainen parametri koostuu tyypistä ja nimestä. Nämä parametrit ovat käytettävissä aliohjelmassa samaan tapaan kuin tavalliset muuttujat. Jos aliohjelmalle ei halua määrittää parametreja, voi listan jättää tyhjäksi. Sulut on silti jätettävä: 
     403 
     404String EiParametreja() 
     405{ 
     406} 
     407Yllä olevassa esimerkissä on jätetty myös saantimääre pois, jolloin aliohjelma on automaattisesti ns. private-aliohjelma, eli sitä ei voi käyttää muista ohjelmista käsin. Näin tehdään myös seuraavissa esimerkeissä. 
     408 
     409Aliohjelman runko 
     410Merkityksellisin osa aliohjelmassa on sen runko, joka kirjoitetaan aaltosulkujen väliin. Runko voi sisältää mitä tahansa ohjelmointikielen lauseita. 
     411 
     412Return-lause 
     413Jos palautusarvon tyypiksi on määritetty jotain muuta kuin void, on itse palautusarvo palautettava aliohjelmasta erityisellä return-lauseella. Return-lauseen käyttö on yksinkertaista: kirjoita vain return ja palautusarvon kanssa samaa tyyppiä oleva muuttuja tai lauseke. 
     414 
     415int Summaa( int a, int b ) 
     416{ 
     417   return a + b; 
     418} 
     419Aliohjelma voi palauttaa muuttujan (kuten yllä olevassa esimerkissä) tai suoraan jonkin arvon, esimerkiksi arvon 2, kun palautusarvon tyyppinä on kokonaisluku (int). 
     420 
     421int Kakkonen() 
     422{ 
     423    return 2; 
     424} 
     425Attachments 
     426Download in other formats: 
     427Plain Text PDF 
     428Esimerkki ehtolauseesta 
     429Esimerkki if-lauseesta: 
     430 
     431if ( maila.Top > Level.Top ) 
     432{ 
     433  maila.Velocity = Vector.Zero; 
     434  return; 
     435} 
     436If-lauseessa tulee aina ensin sana if, sen jälkeen sulkujen sisällä ehto ja ehdon jälkeen koodilohko (aaltosulkujen välissä oleva osa), joka suoritetaan vain, jos ehto on tosi. Ehtona meillä on tässä maila.Top > Level.Top, mikä tarkistaa onko mailan yläreunan y-koordinaatin arvo suurempi kuin pelikentän yläreunan y-koordinaatti. 
     437 
     438Ehdoksi kelpaa mikä tahansa lause, joka antaa bool-tyyppisen arvon. Totuusarvo-tyypin eli bool-tyypin mahdolliset arvot ovat true eli tosi ja false eli epätosi. bool-tyyppinen muuttuja ei voi saada muunlaisia arvoja. 
     439 
     440Esimerkissä, jos mailan yläreunan y-koordinaatti olisi pienempi tai yhtäsuuri kuin kentän yläreunan y-koordinaatti, niin suurempi kuin -ehto palauttaisi false eli epätosi eikä mailaa pysäytettäisi. 
     441 
     442if-lauseessa voi käyttää monia muitakin ehtoja, esimerkiksi: 
     443 
     444x == 8 eli muuttuja x on yhtäsuuri kuin 8 (HUOM! Yhtäsuuruus on C#:ssa kaksi =-merkkiä) 
     445y != 10 eli muuttuja y on erisuuri kuin 10 
     446pallo.Mass <= kivi.Mass eli muuttujan pallo massa on pienempi tai yhtäsuuri kuin muuttujan kivi massa 
     447pallo.IsVisible eli onko pallo näkyvä 
     448Ehtolauseet yleisemmin 
     449Ehtolauseet mahdollistavat eri ohjelmakoodin suorittamisen eri tilanteissa. Ehtolauseen rakenne on yksinkertaisimmillaan tällainen: 
     450 
     451if (ehto) 
     452{ 
     453} 
     454Aaltosulkujen väliin kirjoitetaan ohjelmakoodi, joka suoritetaan kun ehto toteutuu. Ehto voi olla mikä tahansa lauseke, joka palauttaa bool-tyyppisen arvon. 
     455 
     456if (amparinKoko > 10) 
     457{ 
     458   // Tämä toteutuu, kun ämpärin koko on suurempi kuin 10 
     459} 
     460if (nimi[0] == 's') 
     461{ 
     462    // Tämä toteutuu, kun nimi alkaa s-kirjaimella 
     463} 
     464Vaihtoehtoiset tapaukset 
     465Joskus halutaan suorittaa oma ohjelmakoodinsa, kun ehto ei toteudu. Tämä onnistuu käänteisellä ehdolla tähän tapaan: 
     466 
     467if (arvo > 2) 
     468{ 
     469   // tehdään yhtä 
     470} 
     471 
     472if (arvo <= 2) 
     473{ 
     474   // tehdään toista 
     475} 
     476...mutta yksinkertaisempikin vaihtoehto on olemassa - else-lause: 
     477 
     478if (arvo > 2) 
     479{ 
     480   // tehdään yhtä 
     481} 
     482else 
     483{ 
     484   // tehdään toista 
     485} 
     486Tämä tekee täsmälleen saman kuin ylempi ohjelma. Huomaa, että else-osaa ei suoriteta, jos if-osa suoritetaan ja päinvastoin. 
     487 
     488Kaksi tapausta ei aina riitä. Useampien ehtojen kokonaisuuksia varten on olemassa else if -lause, jota voidaan käyttää if- ja else-lauseiden kanssa yhdessä: 
     489 
     490if (nakki < 0) 
     491{ 
     492   // tehdään jotain 
     493} 
     494else if (nakki > 0) 
     495{ 
     496   // tehdään jotain muuta 
     497} 
     498else 
     499{ 
     500   /// jäljelle jää tapaus nakki == 0, joka johtaa tänne 
     501} 
     502Else if -lauseita voi olla rajoittamaton määrä. Varo päällekkäisiä ehtoja: vertailu tehdään aina siinä järjestyksessä missä ehdot ovat, eli ylhäältä alaspäin: 
     503 
     504if (luku > 10) 
     505{ 
     506   // tänne tullaan kun luku on suurempi kuin 10 
     507} 
     508else if (luku > 5) 
     509{ 
     510   // Tänne tullaan kun luku on suurempi kuin 5, mutta pienempi tai yhtäsuuri kuin 10. 
     511   // Jälkimmäinen "kirjoittamaton" ehto seuraa aiemmasta if-lauseesta. 
     512} 
     513Download in other formats: 
     514Plain Text PDF 
     515Olio (engl. object) on luokan ilmentymä. Toisin sanoen yhdestä luokasta voidaan luoda useita olioita, ja nämä oliot ovat tyypiltään sen luokan ilmentymiä, joista ne on luotu. Luokat ovat tietotyyppejä samaan tapaan, kuin vaikkapa int tai double. 
     516 
     517int luku; 
     518Luokka olio; 
     519Olioilla on ominaisuuksia (properties) ja metodeita (methods). Ominaisuuksilla tarkoitetaan arvoja kuten pelaajan terveys tai paikka pelimaailmassa. Metodit taas ovat aliohjelmia, kuten pelihahmon liikuttaminen. Kumpiinkin voidaan viitata olion nimen jälkeen kirjoitettavalla piste-operaattorilla. 
     520 
     521olio.Leveys = 20; 
     522olio.Ammu(); 
     523Olioiden ominaisuudet ja metodit on määritetty niiden luokassa. Toisin sanoen kahdella samaa luokkaa olevalla oliolla on aina samat ominaisuudet ja metodit. Ominaisuuksia ja metodeita kutsutaan yleisemmin luokan jäseniksi (members). 
     524 
     525Olion luominen 
     526Olion luomiseen käytetään erityistä new-avainsanaa, joka käyttää olion rakentajaa (constructor) sen luomiseen: 
     527 
     528Timer kello = new Timer(); 
     529Suluissa voidaan tarvittaessa antaa rakentajalle parametreja. Rakentajia voi olla erilaisia, riippuen käyttötarkoituksesta. Seuraavassa esimerkissä luodaan neliö ja ympyrä, jotka kumpikin ovat fysiikkaolioita, mutta eri rakentajaa käyttäen: 
     530 
     531PhysicsObject nelio = new PhysicsObject( 40.0, 40.0, Shape.Rectangle ); 
     532 
     533PhysicsObject ympyra = new PhysicsObject( 40.0, 40.0); 
     534ympyra.Shape = Shape.Circle; 
     535Olioon viittaaminen 
     536Olioon viitataan aina sen nimellä. Jos halutaan käyttää jotain oliolle kuuluvaa, kuten ominaisuuksia, metodeita tai tapahtumia (näistä lisää alempana tällä sivulla), käytetään aina piste-operaattoria, eli kirjoitetaan piste olion ja ominaisuuden väliin. 
     537 
     538Jos olioon viitataan sen itsensä sisältä, kuten esimerkiksi pelissä viitataan peliolioon itseensä, ei tarvita olion nimeä ja piste-operaattoria. Jos silti halutaan viitata olioon nimellä, voidaan käyttää varattua sanaa this. 
     539 
     540Ominaisuudet 
     541Ominaisuus (property) voi olla esimerkiksi paikka, väri tai vaikkapa kissalla hännän pituus. 
     542 
     543kissa.X = 20.0; 
     544kissa.HannanPituus = 7; 
     545Ominaisuus voi olla myöskin olio: 
     546 
     547Koira koira = new Koira(); 
     548kissa.vihollinen = koira; 
     549Sama yhdelle riville kirjoitettuna: 
     550 
     551kissa.vihollinen = new Koira(); 
     552Joillekin ominaisuuksille voi asettaa arvoja, toisia pelkästään lukea riippuen siitä, miten (olio-)luokan suunnittelija on tarkoittanut sen käytettäväksi. Jos ominaisuudelle, jonka arvoa ei voi asettaa, yrittää asettaa arvoa, antaa kääntäjä virheen: 
     553 
     554Property or indexer 'luettava' cannot be assigned to -- it is read only 
     555Metodit 
     556Metodi on aliohjelma, joka on kirjoitettu olion sisälle. Samat säännöt parametrien ja paluuarvon kanssa pätevät. 
     557 
     558int summa = laskuri.LaskeYhteen( a, b ); 
     559pallo.Hit( 2000 ); 
     560Controls.Listen( Keys.Space, ButtonPosition.DOWN, Ammu ); 
     561On myös olemassa ns. staattisia metodeita, joiden kutsumiseen ei tarvita oliota vaan niitä voidaan kutsua luokasta itsestään: 
     562 
     563int satunnaisluku = RandomGen.NextInt( 1, 100 ); 
     564PhysicsObject kiinteaSuorakulmio = PhysicsObject.CreateStaticObject(40.0, 40.0); 
     565Jäsenet 
     566Luokan jäseniksi sanotaan sen ominaisuuksia ja metodeja. 
     567 
     568Periytyminen 
     569Monet luokat eivät itsessään sisällä kaikkia metodeja ja ominaisuuksia, vaan perivät nämä joltain toiselta luokalta. Esimerkiksi PhysicsObject-luokka on GameObjectin perillinen, mikä tarkoittaa, että siitä tehdyt oliot sisältävät PhysicsObjectin omien ominaisuuksien ja metodien lisäksi myös kaikki samat jäsenet kuin GameObject-oliotkin. Vastaavasti PlatformCharacter perii kaikki PhysicsObjectin (ja sitä kautta myös GameObjectin) metodit ja ominaisuudet. 
     570 
     571C#-kielessä luokka voi periä vain yhden toisen luokan. Joissain ohjelmointikielissä, kuten C++:ssa, luokat voivat periä jäseniä useammilta luokilta. Tätä sanotaan moniperinnäksi, ja se jakaa mielipiteitä ohjelmointipiireissä: toistaalta moniperinnällä voidaan tehdä monipuolisempia luokkia, mutta toisaalta sen ylikäyttö aiheuttaa helposti vaikeasti löydettäviä ohjelmavirheitä. 
     572 
     573Luokkaa, josta toinen luokka periytyy, sanotaan kantaluokaksi. Esimerkiksi GameObject on PhysicsObjectin kantaluokka. Vastaavasti PhysicsObject on GameObjectin perillinen. 
     574 
     575Olioiden periytymisestä piirretään monesti luokkakaavioita. Luokkakaavio voi näyttää vaikkapa tältä: 
     576 
     577 
     578 
     579Polymorfismi 
     580Polymorfismiksi sanotaan sitä, kun peritty luokka esiintyy kantaluokkansa tyyppisenä. Esimerkki valoittaa asiaa: 
     581 
     582GameObject peliolio = new PhysicsObject(20, 20); 
     583Polymorfismia käytetään usein parametrien välityksessä aliohjelmalle, ettei jokaiselle peritylle luokalle tarvitse tehdä omaa aliohjelmaa. 
     584 
     585void Aliohjelma1() 
     586{ 
     587   PhysicsObject peliolio = new PhysicsObject(20, 20); 
     588   Aliohjelma2( peliolio ); 
     589} 
     590 
     591void Aliohjelma2( GameObject otus ) 
     592{ 
     593   // tehdään jotain pelioliolla otus 
     594} 
     595Tämä toimii, koska kaikki PhysicsObjectit ovat myös GameObjecteja. Toisin päin ei toimi, sillä läheskään kaikki GameObjectit eivät ole PhysicsObjecteja. 
     596 
     597On huomattava, että vaikka peliolio on oikeasti tyyppiä PhysicsObject, Aliohjelma2 näkee sen GameObjectina, ja siten ei pääse käsiksi sen PhysicsObject-ominaisuuksiin, kuten Hit-metodiin tai Velocity-ominaisuuteen. Tähän on kuitenkin olemassa ratkaisu: 
     598 
     599void Aliohjelma2( GameObject otus ) 
     600{ 
     601   PhysicsObject fysOtus = otus as PhysicsObject; 
     602   if ( fysOtus != null ) 
     603   { 
     604      physOtus.Hit( new Vector(200, 0) ); 
     605   } 
     606} 
     607Ylläolevassa esimerkissä muutetaan ensin GameObject-tyyppinen olio otus tyyppiin PhysicsObject ja tallennetaan muunnoksen tulos muuttujaan fysOtus. Jos muunnos ei onnistu (otus ei ole tyyppiä PhysicsObject), fysOtus saa arvon null. Tähän kannattaa varautua ehtolauseella, kuten yo. esimerkissä on tehty. Jos näin ei tehdä ja otus on muuta tyyppiä, seuraa NullPointerExcpetion-virhe. 
     608 
     609Attachments 
     610Download in other formats: 
     611Plain Text PDF 
     612Ohjelmien asentaminen kotikoneelle 
     613Tarvitset ohjelmointia varten seuraavat työkalut. Jos ohjelmien asennuksessa on ongelmia, katso FAQ-sivu, tai kirjoita sähköpostia pelik2009.group@korppi.jyu.fi. 
     614 
     615​Asenna kurssin ohjelmistot. (Jos haluat vain pelata muiden tekemiä pelejä niin riittää ​XNA redistributable-paketti.) 
     616Lataa pelit koneelle: 
     617 
     618Lataa pelit koneelle 
     619Jos jatkat pelin tekemistä, saatat myös tarvita: 
     620 
     621Kuvankäsittely- ja äänenkäsittelyohjelmat 
     622XBox 360 -ohjaimen ajuri (ei pakollinen jos pelaa vain näppäimistöltä) 
     6231. Pelin kopioiminen kaverille 
     624Käännä pelisi lähdekoodi Visual Studiossa (ks. myös Miten saan lähdekoodit omalle koneelle) 
     625Kopioi Peli\bin\x86\debug-kansio kokonaisuudessaan kaverille 
     626Kaverilla pitää olla ​XNA Redistributable asennettuna 
     627Nyt kaverin pitäisi pystyä ajamaan pelisi EXE-tiedosto 
     6282. Asennusohjelman tekeminen 
     629Tässä oppaassa kerrotaan tarkemmin, kuinka voit tehdä pelillesi ammattimaisen näköisen asennusohjelman. Asennusohjelma pakkaa pelin tarvitsemat tiedostot yhteen pakettiin, ja tekee siten helpoksi pelin levittämisen esimerkiksi Internetissä tai cd- tai dvd-levyllä. 
     630 
     631Huomaa, että asennusohjelman tekeminen onnistuu vain Visual Studion Professional-versiolla. Kohdekoneessa pitää olla toimiva nettiyhteys ja käytössä myös admin-tunnukset vaaditaan.  
     632 
     633​Voit katsoa tämän ohjeen myös videona (kesto 06:55). Huomaa, että video on Visual Studio 2008:lle ja XNA 3.1:lle, mutta pätee pääpiirteittäin. Ongelmatilanteissa katso tämä ohje tai kysy ohjaajalta. 
     634 
     635 
     636Avaa Visual Studio ja oma peliprojektisi 
     637Valitse projektinäkymästä pelisi solution, ja lisää siihen uusi projekti 
     638 
     639 
     640Valitse vasemmanpuoleisesta puunäkymästä "Other Project Types" ja sen alakohta "Setup and Deployment", ja vielä sen alta "Visual Studio Installer". Valitse oikeanpuoleisesta listasta "Setup Wizard". 
     641Kirjoita projektin nimi Name-kohtaan ja Location-kohtaan "C:\MyTemp\tunnus" missä tunnus on käyttäjätunnuksesi. Varmista projektin luonti valitsemalla OK. 
     642 
     643 
     644Ensimmäisessä ja toisessa ikkunassa valinnat ovat oletuksena oikeat, voit ohittaa ne painamalla Next. Kolmannessa ikkunassa rastita nämä kohdat: 
     645Content files from (peli): sisällyttää pelin ääni- ja kuvatiedostot asennukseen 
     646Primary output from (peli): sisällyttää pelin käynnistys- (exe) ja kirjastotiedostot (dll) asennukseen 
     647 
     648 
     649Luo asennusprojekti painamalla Finish. 
     650Asennuksen runko on nyt valmiina ja eteesi ilmestyy hieman Windowsin tiedostonhallintaa muistuttava ikkuna, joka näyttää hakemistorakenteen kohdekoneella, kun pelisi on asennettu. Varmista, että käännösasetukseksi on valittu Release ja käännä asennusprojekti. Projektin kääntäminen onnistuu klikkaamalla projektinäkymästä projektin nimeä oikealla napilla ja valitsemalla valikosta Build. 
     651 
     652 
     653 
     654XNA:n lisääminen asennukseen 
     655Asennusohjelma tunnistaa ja asentaa automaattisesti .NET Framework 4:n, mutta XNA on lisättävä itse projektiin riippuvuudeksi. Tämä onnistuu valitsemalla projektin ominaisuudet (projektista oikealla napilla ja Properties), jotka näyttävät tältä: 
     656 
     657 
     658 
     659Valitse ikkunasta Prerequisites (esivaatimukset) ja avautuvasta ikkunasta rasti "XNA Framework 4.0 Redistributable" (alimmaisena listassa). 
     660 
     661 
     662 
     663Sulje molemmat ikkunat painamalla OK ja varmista, että projekti kääntyy. 
     664 
     665Käynnistysvalikon ja työpöydän pikakuvakkeet 
     666Asennusohjelma toimii muuten oletusasetuksilla, mutta pikakuvakkeet Käynnistä-valikkoon ja/tai työpöydälle on lisättävä itse, mikä onnistuu seuraavalla tavalla: 
     667 
     668Varmista, että sinulla on File System -ikkuna avattuna. Jos ei, ikkunan saa esille klikkaamalla projektinäkymästä projektin nimeä oikealla napilla ja valitsemalla View-kohdasta File System. 
     669Jos haluat tehdä ryhmän käynnistysvalikkoon, valitse vasemmasta puusta "User's Programs Menu" ja klikkaa sitä oikealla napilla. Valitse valikosta Add->Folder ja kirjoita ryhmälle nimi. 
     670Avaa asennushakemisto valitsemalla vasemmasta puusta "Application Folder". 
     671Valitse oikeanpuoleisesta listasta "Primary output from <peli> (Active)" ja klikkaa sitä oikealla napilla. Valitse avautuvasta valikosta "Create shortcut to..." ja kirjoita siten syntyvälle pikakuvakkeelle siinä näkyvä teksti. Jos tekstinkirjoitustila menee pois päältä, sen saa takaisin painamalla F2 (toimii myös Windowsin tiedostonhallinnassa tiedostojen nimeämisessä) 
     672 
     673 
     674Siirrä pikakuvake hiirellä raahaamalla luomaasi ryhmään käynnistysvalikossa tai työpöydälle (User's Desktop). 
     675Lopuksi käännä vielä projekti uudestaan. Nyt asennusohjelma osaa luoda pikakuvakkeet käynnistysvalikkoon, työpöydälle tai molempiin. Asennusohjelma löytyy projektihakemiston Release-hakemistosta. 
     676 
     677Jos kohdekoneella on jo asennettuna ​.NET Framework 4 ja ​XNA Framework Redistributable 4.0, niin msi-tiedosto riittää pelin asentamiseksi. Muussa tapauksessa tarvitaan molemmat tiedostot ja järjestelmänvalvojan oikeudet. 
     678 
     679Attachments 
     680Download in other formats: 
     681Plain Text PDF 
     682FAQ (useimmin kysytyt kysymykset) 
     683Onko Visual Studion tai muiden ohjelmien asennuksessa tai käyttöönotossa ongelmia? Tällä sivulla käsitellään ohjelmien asennuksissa yleisimpiä esille tulleita ongelmia. Laita ongelmasi ohjaajien sähköpostilistalle pelik2009.group (at) korppi.jyu.fi tai oman kurssisi sähköpostilistalle. Voit myös pyytää etätukea. 
     684 
     685Yleisiä kysymyksiä 
     6861. Miten jatkan oman pelini tekemistä kotona? 
     687Asenna ohjelmat koneellesi 
     688Lataa pelisi SVN-palvelimelta koneelle (voit samalla ladata myös muut pelit) 
     689Avaa pelisi Solution-tiedosto (sln) 
     6902. Miten lataan oman pelini / muiden pelit / esimerkkipelit koneelleni? 
     691Selviää tätä ohjetta tarkasti seuraamalla. 
     6923. tartteeks tortoise olla koneella jos haluaa jypeli ja kirjaston ja jypeli kirjaston päivityksen. 
     693Ei välttämättä. Jos haluat saman version Jypelistä kuin mikä kurssilla oli käytössä niin tallenna haluamasi tagin kansiosta lib-kansion tiedostot itsellesi. 
     694Esim kurssin 23/2010 Jypeli-versio löytyy täältä: ​https://trac.cc.jyu.fi/projects/npo/browser/tags/2.1.3/lib 
     695Huomaa että tiedostojen tallennus tapahtuu tuolla siten että klikkaat tiedoston auki (hiiren vasemmalla), sitten "Try downloading the file instead." 
     696Uudempia versioita Jypelistä ilmestyy tuonne "tags" kansioon pikku hiljaa, eli sieltä voit tsekkailla päivityksiä. 
     6974. Mitä versiota Jypelistä pitäisi käyttää? 
     698Suositus on, että käytät aina ​viimeistä vakaata versiota (eli uusinta tagia). 
     699Jypeliin tulee jatkuvasti bugikorjauksia ja päivityksiä. Kun Jypeliin tehdään päivityksiä ja muutoksia, niin kaikki tiedot kirjataan aina ylös. Lokitieto löytyy seuraavasta osoitteesta: ​https://trac.cc.jyu.fi/projects/npo/browser/trunk/Jypeli/ChangeLog. 
     700Taaksepäin yhteensopivuutta ei Jypelissä ole (eli esim. versiolla 2.0.0 tehdyt pelit eivät välttämättä enää toimi 2.1.10 versiossa jne.), joten tuota ​ChangeLog-tiedostoa joutuu lukemaan siten, että miettii itse miten se vaikuttaa omaan peliin. Toki Jypelistä voi käyttää sitä versiota mikä itselle parhaiten sopii, mutta uudemmissa versioissa on enemmän (ja yleensä myös entistä parempia :)) ominaisuuksia. 
     701Ongelmatilanteita 
     7025. XNA with Visual Studio 2008 Error: "The project type is not supported by this installation" 
     703Yleensä johtuu siitä, että XNA Game Studiota ei ole asennettu, tai sitä ei ole asennettu Visual Studion asennuksen jälkeen. 
     704Asenna siis XNA, mutta vasta sen jälkeen kun olet asentanut Visual Studion. 
     705Yksi mahdollinen ratkaisu: Ks. ​http://forums.xna.com/forums/p/31995/182989.aspx 
     706ensin menet kansioon C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE 
     707etsi devenv.exe joka on XML Konfigurointitiedosto 
     708avaa se komentoriville, ja kirjoita siihen devenv /ResetSkipPkgs? 
     709avaa sitten Visual Studio 2008 Pro, jonka pitäisi nyt toimia moitteetta. 
     710Huom. Miten seuraavilla käynnistyskerroilla? Vaatiiko edelleen tuon vivun devenvin perään... (Selvittämättä) 
     7116. Peli aiheuttaa käynnistettäessä poikkeuksen "No suitable graphics card." 
     712Tämä voi johtua siitä, että koneessasi on liian vanha näytönohjain. XNA:lla (Jypeli perustuu XNA:han) tehdyt pelit vaativat näytönohjaimen, joka tukee 
     713DirectX 9:ää 
     714Shader Model 1.1:stä. 
     715Näet asennetun DirectX-version Windows XP:ssä seuraavasti: 
     716Klikkaa Käynnistä -> Aja (Start -> Run). 
     717Kirjoita dxdiag ja paina enteriä. 
     718Kannattaa tarkistaa myös Windowsin asetuksista, että laitteistokiihdytys on täysillä. Englanninkielisessä Windows XP:ssä: 
     719Työpöytää oikealla -> Properties. 
     720Settings-välilehti -> click Advanced. 
     721Troubleshoot-välilehti. 
     722Siirrä Hardware Acceleration -liukupalkki Full-asentoon. 
     723Klikkaa OK, ja sitten Close. 
     724Lähde: ​http://msdn.microsoft.com/en-us/library/bb203941%28v=XNAGameStudio.31%29.aspx 
     725 
     7267. Error: this template attempted to load an untrusted component "Microsoft.Xna.GameStudio?, Version=2.0.0.0" … 
     727Tämä ilmoitus johtuu todennäköisesti siitä, että olet asentanut väärän version XNA Frameworkista, tai olet asentanut sen ennen Visual Studion asentamista. 
     728Ratkaisu: Poista XNA:n asennus (Ohjauspaneelista), ja asenna sen jälkeen ​XNA 3.1 uudelleen. 
     729Download in other formats: 
     730Plain Text PDF 
     731Pelien hakeminen omalle koneelle 
     732Näillä ohjeilla voit kokeilla kaikkien kurssilaisten itse tekemiä pelejä (kohta 1), kurssin ohjaajien tekemiä esimerkkipelejä (kohta 2) tai hakea esimerkkipelin pohjaksi omalle projektillesi (kohta 3). 
     733 
     734Tässä ohjeessa oletetaan, että olet asentanut TortoiseSVN-ohjelman. 
     735 
     7361. Oppilaan pelin hakeminen (nuorten kurssit) 
     737Avaa Oma tietokone ja se kansio, jonne haluat pelit hakea, esimerkiksi 'MyTemp'. Valitse File-valikosta SVN Checkout.... 
     738 
     739Jos haluat kaikki (kaikkien vuosien!) pelit: Aukeavassa ikkunassa kirjoita kohtaan Url of repository seuraava osoite: 
     740 
     741https://svn.cc.jyu.fi/srv/svn/npo_pelit 
     742ja kohtaan Checkout directory poluksi esimerkiksi C:\MyTemp\npo_pelit. Paina OK. 
     743 
     744Huom! Jos haluat vain tietyn vuoden pelit (tai tietyn viikon, tai vain yhden pelin), kirjoita Checkout ikkunassa kohtaan Url of repository osoite: 
     745 
     746https://svn.cc.jyu.fi/srv/svn/npo_pelit/ 
     747ja paina sen perässä olevaa nappia, missä on kolme pistettä '...'. Tämä avaa valikon, josta voi selata koodivarastoa. 
     748 
     749 
     750 
     751Valitse hakemisto, jonka haluat hakea, esimerkiksi kansiossa 2010 on kaikkien kesän 2010 kurssien oppilaiden tuotokset. 
     752 
     753Jos haluat vain oman pelisi, valitse vielä kurssikansio, ja sieltä oma tunnuksesi. 
     754 
     755Paina OK. 
     756 
     757Palataan Checkout-ikkunaan. Tarkista, että kohdassa Url of repository on sen kansion osoite, jonka haluat hakea. 
     758 
     759Kohtaan Checkout directory valitse mihin kansio haetaan. 
     760 
     761 
     762 
     763Paina OK, niin siirto alkaa. 
     764 
     765Kun siirto on päättynyt, paina taas OK. 
     766 
     767Kun pelit ovat koneellasi, yksittäistä peliä voi kokeilla avaamalla sen hakemisto resurssienhallinnassa ja avaamalla sen sisällä oleva sln-päätteinen tiedosto (esim Pong.sln). Tämän jälkeen peli aukeaa Visual Studioon. Huomaa, että pelkän sln-tiedoston lataaminen ei riitä, vaan pelin muutkin tiedostot pitää myös ladata. 
     768 
     769Jos koitat ajaa peliä PC:llä, katso että työkalurivissä olevassa alasvetolistassa on valittuna kohta x86, jotta XBox-versiota ei turhaan yritetä kääntää. 
     770 
     771 
     772 
     773Aja peliä painamalla F5. 
     774 
     775HUOM! Jos latasit vain yhden pelin kansion, voi olla että kääntäminen epäonnistuu, koska Jypeli-kirjastoa ei löydy. Hae samalla tavalla kuin hait pelin kansion myös saman viikon/vuoden kansiosta lib-kansio. Se sisältää kyseisellä viikolla tai vuotena käytetyn Jypeli-kirjaston version. Uusi Jypeli ei välttämättä toimi vanhojen pelien kanssa!! Liitä kirjasto projektiin tarvittaessa kuten ohjeessa kirjastojen liittäminen projektiin. 
     776 
     7772. Kaikkien (ohjaajien tekemien) esimerkkipelien hakeminen 
     778Avaa hakemisto MyTemp Windowsin resurssienhallinnasta kuten aloitusohjeissa neuvottiin. Valitse File-valikosta SVN Checkout.... 
     779 
     780Aukeavassa ikkunassa kirjoita kohtaan Url of repository seuraava osoite: 
     781 
     782https://svn.cc.jyu.fi/srv/svn/npo/trunk 
     783ja kohtaan Checkout directory poluksi C:\MyTemp\npo. Paina OK. 
     784 
     785Seuraavaksi aukeaa dialogi, joka näyttää tiedostot joita haetaan koneellesi. Tässä voi kestää hetken aikaa, joten olethan kärsivällinen. 
     786 
     787Kun haku on valmis, voit painaa OK. Nyt hakemistossa MyTemp pitäisi näkyä hakemisto nimeltä npo. Avaa se tuplaklikkaamalla. Avaa vielä sen sisältä hakemisto nimeltä esimerkit. Sen sisällä näkyy esimerkkipelit omissa hakemistoissaan. 
     788 
     789Kun esimerkkipelit ovat koneellasi, yksittäistä esimerkkiä voi kokeilla avaamalla sen hakemisto resurssienhallinnassa ja avaamalla sen sisällä oleva .sln-päätteinen tiedosto. Tämän jälkeen peli aukeaa Visual Studioon. 
     790 
     791Jos koitat ajaa peliä PC:llä, katso että työkalurivissä olevassa alasvetolistassa on valittuna kohta x86, jotta XBox-versiota ei turhaan yritetä kääntää. 
     792 
     793 
     794 
     795Voit koittaa ajaa sitä painamalla F5-näppäintä. 
     796 
     797Jos ajaminen ei onnistu, se voi johtua siitä, että Jypeli-kirjastoa ei löydy. 
     798 
     799Lisää omalla koneellasi olevat kirjastot projektiin tämän ohjeen mukaan: 
     800 
     801Kirjastojen liittäminen projektiin 
     802 
     8033. Esimerkkipelin hakeminen oman projektin pohjaksi 
     804Avaa oma hakemistosi resurssienhallinnasta. Valitse valikosta 
     805 
     806File -> TortoiseSVN -> Export... 
     807 
     808jolloin aukeaa export-ikkuna. Kirjoita kohtaan URL of repository osoitteeksi 
     809 
     810https://svn.cc.jyu.fi/srv/svn/npo/trunk 
     811ja paina osoitekentän perässä olevaa ...-painiketta. Aukeaa palvelinnäkymä, jossa näkyy mm. kirjastojen koodit. Avaa hakemisto esimerkit, jossa on esimerkkipelit omissa hakemistoissaan. Klikkaa haluamasi pelin hakemistoa ja paina OK. 
     812 
     813Kirjoita kohtaan Export directory C:\MyTemp\tunnus\peli, missä sanan tunnus paikalla on oma hakemistosi ja sanan peli paikalla on pelin nimi. Paina OK, jolloin peli haetaan koneellesi. 
     814 
     815Voit avata pelin koodin Visual Studioon avaamalla pelin hakemiston ja tuplaklikkaamalla .sln-päätteistä tiedostoa (esim. LunarLander.sln). 
     816 
     817Jos koetat ajaa peliä, se ei varmaankaan käänny koska kirjastoja ei löydy. Lisää omalla koneellasi olevat kirjastot projektiin tämän ohjeen mukaan: 
     818 
     819Kirjastojen liittäminen projektiin 
     820 
     821Attachments 
     822Download in other formats: 
     823Plain Text PDF 
     824Jypeli-kirjaston liittäminen projektiin käsin 
     825Kurssilla käytetään paitsi Visual Studion tarjoamia standardikirjastoja, myös Jypeli-kirjastoa. 
     826 
     827Yleisesti, kirjastot ovat levyllä tiedostoina, joiden pääte on .dll, esimerkiksi Jypeli on tiedostossa nimeltä Jypeli.dll. Agorassa mikroluokan koneissa kirjasto pitäisi sijaita hakemistossa C:\MyTemp\lib. Jos tuo hakemisto puuttuu, voit hakea sen näiden ohjeiden mukaan: 
     828 
     829KirjastonHakeminen 
     830 
     831Kurssilla käytettävät projektimallit liittävät kirjaston mukaan uusiin projekteihin. Jos sinulla ei kuitenkaan ole valmiita projektimalleja käytössä, tai jos kirjasto on eri paikassa kuin mistä projektimallit luulevat sen olevan, täytyy kirjasto liittää projektiin näiden ohjeiden mukaan. 
     832 
     833​Voit katsoa tämän ohjeen myös videona (kesto 02:47). 
     834 
     835 
     8361. Kirjastoa ei löydy 
     837Avaa Visual Studion solution explorerissa References-kansio painamalla sen vieressä olevaa pientä plus-merkkiä. References-kansiossa näkyy projektiin liitetyt kirjastot. Jos jokin kirjasto on liitetty projektiin mukaan, mutta sitä ei löydy, näkyy kirjaston kohdalla keltainen merkki kuten kuvassa kirjastojen Jypeli2-kirjaston kohdalla. 
     838 
     839 
     840 
     8412. Viitteiden lisääminen kirjastoihin 
     842Viitteen lisääminen olemassaolevaan kirjastoon tapahtuu seuraavasti: 
     843 
     844Klikkaa solution explorerista References-kansiota hiiren oikealla painikkeella ja valitse Add Reference... 
     845Valitse aukeavasta ikkunasta Browse-välilehti. 
     846Etsi kirjasto levyltä. Mikroluokkien koneissa kirjasto löytyy seuraavasti: 
     847Valitse pudotusvalikosta My Computer 
     848Avaa hakemistot järjestyksessä Local Disk (C:) » MyTemp » lib 
     849Valitse liitettävä kirjasto (Jypeli4.dll) klikkaamalla .dll-päätteistä tiedostoa. 
     850Paina OK. 
     851Attachments 
     852Download in other formats: 
     853Plain Text PDF 
     854Etätuki ​TeamViewer-ohjelmalla 
     855Jos sinulla on ohjelman asennuksessa jokin ylitsepääsemätön ongelma, niin voit pyytää tukea kurssin ohjaajilta. Sovi ohjaajan kanssa ajankohta (esim. kurssin ohjaajien postituslistan välityksellä), jolloin ohjaaja voi ottaa tietokoneesi työpöydän haltuun, ja auttaa sinua selvittämään, missä on ongelma. Emme lupaa 24/7-tukea, mutta pyrimme auttamaan parhaamme mukaan. 
     856 
     857Etäyhteyden ottamiseksi sinun tulee ladata ja ajaa ​TeamViewer-ohjelma. 
     858 
     859TeamViewer on yksityiseen/ei-kaupalliseen käyttöön ilmainen työpöydän etähallintaohjelmisto. 
     860 
     861Lataa ja suorita ohjelma ​http://www.teamviewer.com/download/TeamViewerQS_fi.exe 
     862Jos Windows varoittaa ohjelman käynnistämisestä, voit huoletta vahvistaa sen. 
     863TÄRKEÄÄ: Ilmoita ohjaajalle koneesi ID ja salasana. Huomaa, että salasana vaihtuu jokaisella TeamViewerin käynnistyskerralla. 
     864 
     865 
     866Etätuen antaminen helpottuu, jos ohjaaja voi työpöydän näkemisen lisäksi puhua sinun kanssasi. Puheyhteyteen voi käyttää esimerkiksi ​Skypeä tai Microsoft Live Messengeriä. Jos sinulla on kirjautumistunnus jompaan kumpaan, ilmoita sekin ohjaajalle. Ellei ole, niin asenna Skype ja luo itsellesi tunnus. 
     867 
     868Attachments 
     869Download in other formats: 
     870Plain Text PDF 
     871Wiki-sivujen muokkaaminen 
     872Wiki on nettiselaimella käytettävä sivusto, johon kaikki käyttäjät voivat muokata sisältöä. Kurssilla jokaiselle tulee oma wiki-sivu suunnitelmaa varten. Suunnitelmaan voi tekstin lisäksi liittää kuvia. 
     873 
     874Muokataksesi sivuja sinun tulee ensin kirjautua sisään. Katso ensin, että olet kurssilaisten sivuilla (ylänurkassa on keltainen hahmo). Klikkaa sivun yläreunassa olevaa linkkiä Login. Kirjoita käyttäjätunnuksesi ja salasanasi. 
     875 
     876Kun kirjautuminen on tehty, voit muokata sivua klikkaamalla sivun alareunassa olevaa painiketta Edit this page. Tällöin aukeaa sivu, johon voit kirjoittaa tekstiä. Kun olet muuttanut sivun sisältöä mieleiseksesi, klikkaa lopuksi sivun alareunassa olevaa painiketta Submit changes, jolloin muutokset jäävät voimaan. 
     877 
     878Yleisimpiä merkintöjä 
     879Wiki-sivujen muokkaamiseen on omat merkintänsä, joilla tehdään esim. otsikot ja listat. Kattavan ohjeen merkinnöistä löydät sivulta WikiFormatting. 
     880 
     881Tässä tärkeimpiä merkintöjä: 
     882 
     883Pääotsikko: 
     884 
     885= Otsikko = 
     886Alaotsikko: 
     887 
     888== Otsikko == 
     889Ala-ala-otsikko: 
     890 
     891=== Otsikko === 
     892Pallotettu lista: 
     893 
     894 * kissa 
     895 * koira 
     896 * kana 
     897Numeroitu lista: 
     898 
     899 1. eka 
     900 1. toka 
     901 1. kolmas 
     902Ohjelmakoodin kirjoittaminen sivulle: 
     903 
     904 {{{ 
     905 int pallojenMaara = 8; 
     906 }}} 
     907Kuvan lisääminen sivulle 
     908Sivulle voi lisätä kuvan seuraavasti: 
     909 
     910Klikkaa sivun alareunassa olevaa Attach file-painiketta kun et ole muokkaustilassa. 
     911Klikkaa aukeavasta sivusta Browse...-painiketta. 
     912Etsi aukeavasta ikkunasta kuvatiedosto, jonka haluat lisätä. 
     913Klikkaa painiketta Add attachment. Kuvan pitäisi ilmestyä sivun alareunassa olevaan listaan. 
     914Siirry sivun muokkaukseen painamalla Edit this page-painiketta 
     915Vie kursori kohtaan, johon haluat lisätä kuvan. Kirjoita seuraava makro, missä kuva.png on kuvatiedostosi nimi. 
     916[[Image(kuva.png)]] 
     917Paina painiketta Submit changes. 
     918Linkin lisääminen toiseen sivuun 
     919Kun muokkaat wiki-sivun tekstiä, voit lisätä viitteen toiselle wiki-sivulle seuraavalla merkinnällä: 
     920 
     921[wiki:ToisenSivunNimi Toinen sivu] 
     922Tässä siis ToisenSivunNimi on wiki-sivun nimi ja "Toinen sivu" on linkin teksti, joka näkyy sivulla. Wiki-sivun nimen näkee selaimen osoitekentän lopusta. Esimerkiksi kurssilaisten wikin etusivun nimi on WikiStart. 
     923 
     924Jos linkittämääsi sivua ei ole olemassa, linkki näkyy harmaana. Voit klikata harmaata linkkiä, ja järjestelmä kysyy sinulta, haluatko luoda kyseisen sivun. 
     925 
     926Automaattinen linkitys 
     927Wiki-sivujen nimet ovat yleensä muotoa YhteenPötköönKirjoitettuIsoillaKirjaimilla. Jos kirjoitat tätä muotoa olevan sanan, tehdään siitä automaattisesti linkki ilman sen kummempia merkintöjä. Jos sen nimistä sanaa ei ole olemassa, tulee linkin perään vielä kysymysmerkki. 
     928 
     929Jos et halua tätä, kirjoita sanan eteen huutomerkki: 
     930 
     931!SivunNimenNäköinenSana 
     932Linkittäminen kaverin suunnitelmaan 
     933Jos teet peliä parin kanssa, suunnitelma tarvitsee tehdä vain toisen sivulle. Toinen voi sitten laittaa omalle sivulleen linkin toisen sivulla olevaan suunnitelmaan. 
     934 
     935Oppilaan suunnitelman wiki-sivun nimi on muotoa kurssix/OmatSivut/Nimi, missä x:n tilalla on kurssin numero ja Nimi on kurssilaisen nimi. Esimerkiksi linkki kurssilla 2 olevalle Aku Ankan sivulle tehtäisiin tälläisella merkinnällä: 
     936 
     937[wiki:kurssi2/OmatSivut/AkuAnkka Aku Ankka] 
     938Jos laitat sivullesi vain linkin parin sivulle, voit pyyhkiä sivullasi olevan valmiin suunnitelman mallin pois. 
     939 
     940Download in other formats: 
     941Plain Text PDF 
     942Wiki-sivujen muokkaaminen 
     943Wiki on nettiselaimella käytettävä sivusto, johon kaikki käyttäjät voivat muokata sisältöä. Kurssilla jokaiselle tulee oma wiki-sivu suunnitelmaa varten. Suunnitelmaan voi tekstin lisäksi liittää kuvia. 
     944 
     945Muokataksesi sivuja sinun tulee ensin kirjautua sisään. Katso ensin, että olet kurssilaisten sivuilla (ylänurkassa on keltainen hahmo). Klikkaa sivun yläreunassa olevaa linkkiä Login. Kirjoita käyttäjätunnuksesi ja salasanasi. 
     946 
     947Kun kirjautuminen on tehty, voit muokata sivua klikkaamalla sivun alareunassa olevaa painiketta Edit this page. Tällöin aukeaa sivu, johon voit kirjoittaa tekstiä. Kun olet muuttanut sivun sisältöä mieleiseksesi, klikkaa lopuksi sivun alareunassa olevaa painiketta Submit changes, jolloin muutokset jäävät voimaan. 
     948 
     949Yleisimpiä merkintöjä 
     950Wiki-sivujen muokkaamiseen on omat merkintänsä, joilla tehdään esim. otsikot ja listat. Kattavan ohjeen merkinnöistä löydät sivulta WikiFormatting. 
     951 
     952Tässä tärkeimpiä merkintöjä: 
     953 
     954Pääotsikko: 
     955 
     956= Otsikko = 
     957Alaotsikko: 
     958 
     959== Otsikko == 
     960Ala-ala-otsikko: 
     961 
     962=== Otsikko === 
     963Pallotettu lista: 
     964 
     965 * kissa 
     966 * koira 
     967 * kana 
     968Numeroitu lista: 
     969 
     970 1. eka 
     971 1. toka 
     972 1. kolmas 
     973Ohjelmakoodin kirjoittaminen sivulle: 
     974 
     975 {{{ 
     976 int pallojenMaara = 8; 
     977 }}} 
     978Kuvan lisääminen sivulle 
     979Sivulle voi lisätä kuvan seuraavasti: 
     980 
     981Klikkaa sivun alareunassa olevaa Attach file-painiketta kun et ole muokkaustilassa. 
     982Klikkaa aukeavasta sivusta Browse...-painiketta. 
     983Etsi aukeavasta ikkunasta kuvatiedosto, jonka haluat lisätä. 
     984Klikkaa painiketta Add attachment. Kuvan pitäisi ilmestyä sivun alareunassa olevaan listaan. 
     985Siirry sivun muokkaukseen painamalla Edit this page-painiketta 
     986Vie kursori kohtaan, johon haluat lisätä kuvan. Kirjoita seuraava makro, missä kuva.png on kuvatiedostosi nimi. 
     987[[Image(kuva.png)]] 
     988Paina painiketta Submit changes. 
     989Linkin lisääminen toiseen sivuun 
     990Kun muokkaat wiki-sivun tekstiä, voit lisätä viitteen toiselle wiki-sivulle seuraavalla merkinnällä: 
     991 
     992[wiki:ToisenSivunNimi Toinen sivu] 
     993Tässä siis ToisenSivunNimi on wiki-sivun nimi ja "Toinen sivu" on linkin teksti, joka näkyy sivulla. Wiki-sivun nimen näkee selaimen osoitekentän lopusta. Esimerkiksi kurssilaisten wikin etusivun nimi on WikiStart. 
     994 
     995Jos linkittämääsi sivua ei ole olemassa, linkki näkyy harmaana. Voit klikata harmaata linkkiä, ja järjestelmä kysyy sinulta, haluatko luoda kyseisen sivun. 
     996 
     997Automaattinen linkitys 
     998Wiki-sivujen nimet ovat yleensä muotoa YhteenPötköönKirjoitettuIsoillaKirjaimilla. Jos kirjoitat tätä muotoa olevan sanan, tehdään siitä automaattisesti linkki ilman sen kummempia merkintöjä. Jos sen nimistä sanaa ei ole olemassa, tulee linkin perään vielä kysymysmerkki. 
     999 
     1000Jos et halua tätä, kirjoita sanan eteen huutomerkki: 
     1001 
     1002!SivunNimenNäköinenSana 
     1003Linkittäminen kaverin suunnitelmaan 
     1004Jos teet peliä parin kanssa, suunnitelma tarvitsee tehdä vain toisen sivulle. Toinen voi sitten laittaa omalle sivulleen linkin toisen sivulla olevaan suunnitelmaan. 
     1005 
     1006Oppilaan suunnitelman wiki-sivun nimi on muotoa kurssix/OmatSivut/Nimi, missä x:n tilalla on kurssin numero ja Nimi on kurssilaisen nimi. Esimerkiksi linkki kurssilla 2 olevalle Aku Ankan sivulle tehtäisiin tälläisella merkinnällä: 
     1007 
     1008[wiki:kurssi2/OmatSivut/AkuAnkka Aku Ankka] 
     1009Jos laitat sivullesi vain linkin parin sivulle, voit pyyhkiä sivullasi olevan valmiin suunnitelman mallin pois. 
     1010 
     1011Download in other formats: 
     1012Plain Text PDF 
     1013Ohjelmien asentaminen kotikoneelle 
     1014Tarvitset ohjelmointia varten seuraavat työkalut. Jos ohjelmien asennuksessa on ongelmia, katso FAQ-sivu, tai kirjoita sähköpostia pelik2009.group@korppi.jyu.fi. 
     1015 
     1016​Asenna kurssin ohjelmistot. (Jos haluat vain pelata muiden tekemiä pelejä niin riittää ​XNA redistributable-paketti.) 
     1017Lataa pelit koneelle: 
     1018 
     1019Lataa pelit koneelle 
     1020Jos jatkat pelin tekemistä, saatat myös tarvita: 
     1021 
     1022Kuvankäsittely- ja äänenkäsittelyohjelmat 
     1023XBox 360 -ohjaimen ajuri (ei pakollinen jos pelaa vain näppäimistöltä)Tekstieditorin käyttäminen 
     1024Ohjeita tekstieditorin käyttöön. Ohjeet pätevän useimpiin käytössä oleviin editoreihin, mukaan lukien Visual Studio. 
     1025 
     1026Tekstieditori on ohjelma, joka sopii tekstin kirjoittamiseen. Nämä ohjeet on esitetty notepad-editorilla, joka tulee Windowsin mukana. Samat ohjeet pätevät kuitenkin moneen muuhunkin editoriin. 
     1027 
     1028Perusteet 
     1029Seuraavassa kuvassa on notepad-editori, jossa on kirjoitettu sana kissa. Sanan perässä näkyy kursori (pystysuora viiva), joka on se kohta johon näppäimistöllä kirjoitettu teksti tulee. 
     1030 
     1031 
     1032 
     1033Kursorin voi siirtää eri paikkaan hiirellä klikkaamalla. 
     1034 
     1035Editorin käyttö on usein tehokkainta näppäinkomentoja käyttämällä. Tärkeimpiä komentoja on lueteltu omalla sivulla: NappainKomentoja 
     1036 
     1037Kursorin liikuttelu näppäimistöllä 
     1038Kursorin liikuttaminen on usein nopeaa näppäimistöltä. 
     1039 
     1040Nuolinäppäimiä painamalla kursori liikkuu yhden kirjaimen verran. 
     1041Painamalla Ctrl-painiketta alaspainettuna ja vasenta tai oikeata nuolta kursori hyppää kokonaisen sanan kerrallaan. 
     1042Tekstin valitseminen 
     1043Editorissa voi valita tekstiä "maalaamalla" osan tekstistä. Valitsemista tarvitaan myöhemmissä kohdissa. Seuraavassa kuvassa on valittuna osa tekstistä: 
     1044 
     1045 
     1046 
     1047Valitseminen tapahtuu hiirellä painamalla hiiren vasen painike alas, siirtämällä hiirtä valittavan tekstin yli ja vapauttamalla vasen painike. 
     1048 
     1049Näppäimistöllä valitseminen tapahtuu käyttämällä aiemmin esiteltyjä komentoja kursorin liikuttamiseen siten, että Ctrl-näppäimen lisäksi painetaan myös shift-näppäintä (shift- eli vaihtonäppäin on näppäimistössä ctrl-näppäimen yläpuolella). Kokeilemalla selviää parhaiten. 
     1050 
     1051Tekstin kopiointi ja siirtäminen 
     1052Tekstiä voi siirtää seuraavasti: 
     1053 
     1054Valitse teksti, jonka haluat siirtää 
     1055Klikkaa hiiren oikeata painiketta ja valitse aukeavasta valikosta Leikkaa (engl. Cut). Näppäinkomento Ctrl + X. 
     1056Vie kursori paikkaan, johon haluat siirtää tekstin 
     1057Klikkaa hiiren oikeata painiketta ja valitse Liitä (engl. Paste). Näppäinkomento Ctrl + V. 
     1058Tekstiä voi kopioida seuraavasti: 
     1059 
     1060Valitse teksti, jonka haluat kopioida 
     1061Klikkaa hiiren oikeata painiketta ja valitse Kopioi (engl. Copy). Näppäinkomento Ctrl + C. 
     1062Vie kursori paikkaan, johon kopioitu teksti tulee 
     1063Klikkaa hiiren oikeata painiketta ja valitse Liitä (engl. Paste). Näppäinkomento Ctrl + V. 
     1064Tällä tavoin tekstiä voi myös kopioida tai siirtää eri ohjelmien välillä. Esimerkiksi nettisivulla olevan tekstin voi kopioida Visual Studion editoriin. 
     1065 
     1066Attachments 
     1067Download in other formats: 
     1068Plain Text PDF 
     1069Näppäinkomentoja koneen käyttöä nopeuttamaan 
     1070Näppäinkomentojen (sanotaan myös näppäinoikoteiksi) käyttö nopeuttaa työskentelyä huomattavasti. Käsi ja hartiat rasittuvat vähemmän, kun ei tarvitse käyttää koko ajan hiirtä. 
     1071 
     1072Seuraavissa listauksissa komento kuten 
     1073 
     1074Ctrl + C 
     1075 
     1076tarkoittaa, että Ctrl-painike pidetään alaspainettuna samalla kun painetaan C-kirjainta. 
     1077 
     10781. Yleiset Windows-pikanäppäimet 
     1079Alt + Tab       Vaihda ohjelmasta toiseen 
     1080Alt + Shift + Tab       Vaihda ohjelmasta toiseen (liikkuminen vastapäivään) 
     1081http://kurssit.it.jyu.fi/npo/2010/luentomateriaali/www/alt-tab.gif 
     1082 
     1083Windows-näppäin (eli Win-näppäin tai Winkey) löytyy useimmista näppäimistöistä Ctrl ja Alt -näppäinten välistä, ks. yllä. 
     1084 
     1085Win + E Avaa Oma tietokone 
     1086Win + D Näytä työpöytä 
     1087Win + R Suorita (Run) 
     1088Win + Tab       Sama kuin Alt + Tab mutta "hienompi" (toimii Windows Vistassa ja 7:ssa) 
     10892. Tekstinkäsittely 
     1090Näppäinkomentoja voi käyttää useimmissa Windows-ohjelmissa, kuten tekstinkäsittelyohjelmissa ja Visual Studiossa. 
     1091 
     1092Perustoiminnot 
     1093Ctrl + C        kopioi 
     1094Ctrl + X        leikkaa 
     1095Ctrl + V        liitä 
     1096Ctrl + Z        kumoa edellinen toiminto 
     1097Saattaa olla myös apua 
     1098Ctrl + A        valitse kaikki (teksti) ko. ikkunasta 
     1099Home    kursori rivin alkuun 
     1100End     kursori rivin loppuun 
     1101Shift + nuolet  valitse tekstiä 
     1102Ctrl + nuoli vas./oik.  hyppää yhden sanan yli 
     1103Ctrl + Shift + nuoli vas./oik.  kuten edellä, mutta valitsee tekstiä samalla 
     1104Ctrl + pyyhkimisnappi   pyyhi kursorin vasemmalla oleva sana(nosa) 
     1105Ctrl + Del      pyyhi kursorin oikealla puolella oleva sana(nosa) 
     1106Lisätietoa 
     1107Ctrl + Home     kursori tiedoston alkuun 
     1108Ctrl + End      kursori tiedoston loppuun 
     1109Shift + Home    valitse kaikki kursorin ja rivin alun välissä ko. rivillä oleva teksti 
     1110Shift + End     kuten edellä, mutta valinta tehdään kursorista rivin loppuun 
     1111Ctrl + Shift + Home     valitse kaikki teksti kursorin ja tiedoston alun väliltä 
     1112Ctrl + Shift + End      valitse kaikki teksti kursorin ja tiedoston lopun väliltä 
     1113Lisäksi: maalaa rivejä ja paina sarkaita sisentää vastaavasti Shift+sarkain poistaa sisennystä 
     1114 
     11153. Nettiselaimet 
     1116Ctrl + T        Luo uusi välilehti 
     1117Ctrl + Tab      Siirry seuraavalle välilehdelle 
     1118Ctrl + Shift + Tab      Siirry edelliselle välilehdelle 
     1119F11     Koko ruudun näyttötila päälle (pois pääset klikkaamalla uudestaan F11 
     1120F6      Siirry osoiteriville (ainakin Firefox, IE) 
     1121F6, Tab Siirry Google-hakupalkkiin 
     11224. Visual Studio 
     1123Näitä voi käyttää Visual Studiossa ohjelmoidessa. Pikanäppäimiä voi myös muuttaa halutessaan asetuksista. 
     1124 
     1125Seuraavissa kohdissa esimerkiksi 
     1126 
     1127Ctrl + E, C 
     1128 
     1129tarkoittaa, että Ctrl-painike pidetään alaspainettuna samalla kun painetaan E-kirjainta. Tämän jälkeen painetaan C-kirjainta vielä uudestaan (Ctrl-painiketta ei tarvitse enää painaa). Katso animaatio alla. 
     1130 
     1131 
     1132 
     1133Perustoiminnot 
     1134F5      suorittaa ohjelman eli käynnistää pelin 
     1135F6      käännä ohjelma (build) ilman pelin käynnistämistä 
     1136Ctrl + F        etsi 
     1137Ctrl + H        etsi ja korvaa 
     1138F3      etsi seuraava 
     1139F2      uudelleennimeä 
     1140Ctrl + E, D     siistii koodin 
     1141Muita näppäinkomentoja 
     1142F12     menee määritelmän kohtaan koodissa (esim. aliohjelmaan) 
     1143Ctrl + E, C     kommentoi valinnan 
     1144Ctrl + E, U     poistaa valinnan kommenteista 
     1145Ctrl + Miinus   palaa edelliseen kohtaan 
     1146Ctrl + Shift + Miinus   palaa seuraavaan kohtaan 
     1147Ctrl + Välilyönti       Näyttää intellisensen tai täydentää lauseen loppuun 
     1148Ctrl + M, M     Kutistaa tai laajentaa koodia (esim. region) 
     1149Ctrl + K, C     Kommentoi valinta 
     1150Ctrl + K, U     Poista valinta kommenteista 
     1151Ctrl + K, R     Etsii koodista kaikki viittaukset kursorin alla olevaan (muuttujan tai funktion) nimeen 
     1152Ctrl + P, Enter Luo aliohjelmakutsusta rungon. 
     1153Ctrl + .        Avaa pikkumenun joka virheen vasemmassa alakulmassa. 
     1154Shift + F10     Sama kuin hiiren oikean näppäimen menu 
     1155Ctrl-W viittaa window:iin, seuraavilla näppäinkomennoilla siis pääset liikkumaan ikkunoiden välillä 
     1156 
     1157Ctrl + W, S     Siirry Solution Exploreriin (esc-näppäimellä pääset takaisin) 
     1158Ctrl + W, E     Näytä Error List -paneeli 
     1159Näppäinkomennot debug-moodissa 
     1160F9      luo breakpointin 
     1161F10     hyppää yli 
     1162F11     hyppää sisään 
     1163Shift + F11     hyppää ohi 
     1164Ctrl + F5       jatkaa debuggausta 
     1165Shift + F5      lopettaa debuggauksen 
     1166IntelliSense-täydennyksiä 
     1167'prop' + 2 x Tab        public int MyProperty { get; set; } 
     1168'if' + 2 x Tab  if ( true ) { } 
     1169'for' + 2 x Tab for (int i = 0; i < length; i++) { } 
     1170'switch' + 2 x Tab      switch (switch_on) { default: } 
     1171'while' + 2 x Tab       while ( true ) { } 
     1172Katso lisää VS-pikanäppäimiä: 
     1173 
     1174​http://msdn.microsoft.com/en-us/library/vstudio/da5kh0wa.aspx 
     1175​http://www.dofactory.com/ShortCutKeys/ShortCutKeys.aspx 
     1176​http://www.shortcutworld.com/en/win/Visual-Studio_2010.html 
     1177Attachments 
     1178Download in other formats: 
     1179Plain Text PDF 
     1180Visual Studio 
     1181Kurssilla käytetään ohjelmointiin Microsoftin kehittämää ohjelmaa nimeltä Visual Studio. Sillä onnistuu koodin kirjoittaminen, ohjelman debuggaus (eli virheenjäljitys) ja monet muut ohjelmoinnissa tarvittavat asiat. Tällaisesta ohjelmointityökalusta käytetään yleisemmin nimitystä IDE (tulee englannin kielen sanoista Integrated Development Environment). Näissä oppaissa viitataankin Visual Studioon usein lyhenteellä IDE. 
     1182 
     1183Professional vs. express... 
     1184 
     1185käynnistäminen 
     1186Visual studion voi käynnistää käynnistä-valikosta valitsemalla 
     1187 
     1188Käynnistä -> Kaikki ohjelmat -> Microsoft Visual Studio 2008 -> Microsoft Visual Studio 2008 
     1189 
     1190Englanninkielisessä Windowsissa 
     1191 
     1192Start -> All Programs -> Microsoft Visual Studio 2008 -> Microsoft Visual Studio 2008 
     1193 
     1194TODO: miten express... 
     1195 
     1196 
     1197 
     1198Perusnäkymä 
     1199Visual Studion ikkuna näyttää tältä: 
     1200 
     1201 
     1202 
     1203Ikkunassa on seuraavia osia: 
     1204 
     1205Yläreunassa on työkalurivi, josta löytyy useimmin tarvittavat toiminnot. 
     1206Suurimman osan ikkunasta vie yleensä editori, jossa on koodi jota kirjoitetaan. Jos yhtään tiedostoa ei ole avattu, tässä ei näy mitään. 
     1207Ikkunan oikeassa reunassa on projektinäkymä, jossa näkyy projektissa tarvittavat tiedostot. 
     1208Nämä osat on korostettu seuraavassa kuvassa: 
     1209 
     1210 
     1211 
     1212Avatut tiedostot näkyvät välilehtinä editorin yläreunassa. Välilehteä klikkaamalla voi vaihtaa avattujen tiedostojen välillä. 
     1213 
     1214 
     1215 
     1216Projektit ja Solutionit 
     1217Visual studiossa uuden ohjelman luomista varten luodaan Projekti (engl. project). Joitakin ohjelmia varten saattaa olla tarvetta useammalle projektille. Tätä varten projekteja voi koota solutionin alle. Uutta projektia luodessa Visual Studio tekee automaattisesti solutionin, johon projekti liitetään. Yleensä solutioneista ei tarvitse välittää sen enempää. 
     1218 
     1219Seuraavasta projektinäkymästä selviää, että IDE:ssä on auki solution Fysiikkapeli1, jossa on yksi projekti, nimeltään myös Fysiikkapeli1. Projektin alla on lueteltu projektiin kuuluvia tiedostoja. 
     1220 
     1221 
     1222 
     1223Kun tuplaklikkaat tiedostoa projektinäkymästä, aukeaa tiedosto editoriin. 
     1224 
     1225Editori 
     1226Ohjeita tekstieditorin käyttöön: Editori. 
     1227 
     1228Tekstin editointi tapahtuu samaan tapaan kuin muissakin editoreissa. Lisäksi käytössä on monia ominaisuuksia erityisesti ohjelmakoodin kirjoittamiseen, kuten Koodin täydennys. 
     1229 
     1230XBox 360-projektin luominen 
     1231XBox 360-projektin luominen onnistuu tekemällä kopio Windows-projektista. Kopio luodaan klikkaamalla projektinäkymästä projektia hiiren oikealla painikkeella ja valitsemalla Create Copy of Project for Xbox 360. Uusi Xbox-projekti ilmestyy projektinäkymään. 
     1232 
     1233Kun IDE:ssä on auki projektit sekä PC:lle, että XBoxille, täytyy erikseen valita kummalla alustalla peliä ajetaan. Tämä tapahtuu työkalurivin alasvetolistasta, josta on valittavissa 
     1234 
     1235x86 PC-peliä varten 
     1236Xbox 360 
     1237 
     1238 
     1239Muita toimintoja 
     1240Uuden kirjastoa käyttävän projektin luominen on selitetty omalla sivullaan: PongProjektinLuominen 
     1241Kannattaa opetella hyödyllisiä näppäinkomentoja helpottamaan koodin kirjoittamista. 
     1242Attachments 
     1243Download in other formats: 
     1244Plain Text PDF 
     1245Työkalujen käyttöohjeet 
     1246Tällä sivulla on ohjeita kurssilla käytettävien ohjelmien käyttöön. 
     1247 
     1248Yleisiä ohjeita 
     1249Tekstieditorin käyttäminen 
     1250Näppäinkomentoja koneen käyttöä nopeuttamaan 
     1251Zip-tiedoston purkaminen 
     1252Ohjelmointi 
     1253Visual Studio -ohjelmointiympäristö 
     1254Ohjelman kääntäminen ja ajaminen 
     1255IntelliSensen käyttö 
     1256Debuggauksen perusteet? 
     1257Pelien siirtäminen Xbox 360 -pelikonsoliin 
     1258Jypeli-kirjasto 
     1259Jypeli-kirjaston käyttöohjeet 
     1260Oman pelin asennus 
     1261Oman pelin asentaminen muihin koneisiin 
     1262Asennusohjelman tekeminen (vain Visual Studio 2008 Professional) 
     1263Versionhallinta 
     1264TortoiseSVN:n käyttö 
     1265Grafiikka 
     1266Paint.NET:in käyttö 
     1267GIMP:in käyttö 
     1268Läpinäkyvyyden lisääminen kuvaan 
     1269Läpinäkyvän kuvan tekeminen Paint.NET:illä 
     1270Äänet ja musiikki 
     1271Audacityn käyttö äänitiedostojen käsittelyyn 
     1272sfxr:n käyttö retrotyyppisten äänitehosteiden tekemiseen 
     1273Slashstone SoundFX Builderin käyttö äänitehosteiden tekemiseen 
     1274MilkyTracker musiikinteko-ohjelman peruskäyttö 
     1275Download in other formats: 
     1276Plain Text PDF 
     1277 
     1278 
     1279