wiki:hiekkalaatikko
Last modified 6 weeks ago Last modified on 2018-06-07 14:12:07

Hiekkalaatikko

Kurssilaiset voivat kirjoittaa tänne ja kokeilla wikin muokkausta.

Mitä jos en haluu?

Tässä minä kirjoittelen uutta tekstiä.

Hyvin toimii No image "Kappa" attached to hiekkalaatikkotesttest

Ohjelmaa kirjoittaessasi saattaa Visual Studio ilmoittaa monenlaisista virheistä "punakynällä". Usein tämä johtuu vain siitä, että virheitä näytetään vaikket olisi kerennyt kirjoittaa lausetta loppuun asti. Jos olet kuitenkin kirjoittanut mielestäsi kaiken oikein, mutta virheitä esiintyy edelleen, katso löytyykö virhettä tämän sivun ohjeista.

Kun käännät ohjelmaa (Visual Studiossa F6-näppäin) tai yrität ajaa sitä (F5-näppäin), kaikki ohjelmaan jääneet kääntäjän virheet tulevat näkyviin listana ruudun alareunaan. Tuplaklikkaamalla virhetta hyppäät koodissa siihen kohtaan missä virhe esiintyy. Virheitä saattaa näkyä kerralla paljon, mutta ei kannata hätääntyä, sillä usein suuri osa virheistä on seurausta muista virheistä. Tämän vuoksi virheiden korjaaminen kannattaa aloittaa ensimmäisestä virheestä.

Muista kuitenkin, että vaikka kaikki käännöksen virheet olisikin korjattu, se ei suinkaan takaa sitä että ohjelma toimisi oikein!

Tässä yleisimpiä virheitä.

Tyyppiä tai nimiavaruutta ei löydy Viesti:

The type or namespace name 'PhysisObject?' could not be found (are you missing a using directive or an assembly reference?) Syitä:

Oletko kirjoittanut esim. jonkun aliohjelman tai tyypin nimen väärin? Katso sanoja, jotka on väritetty punakynällä. Äskeisessä virheviestissä PhysisObject? pitäisi kirjoittaa PhysicsObject?. Käytä Visual Studion koodin täydennystä kirjoitusvirheiden välttämiseksi. Jokin kirjasto puuttuu (kts Kirjastojen liittäminen projektiin: wiki, ​video) Jokin using-lause puuttuu. Jypeli-pelien projektimalleissa ovat vakiona seuraavat using-lauseet:

using System; using Jypeli; using Jypeli.Widgets; using Jypeli.Assets;

Peli.Aliohjelma(): not all code paths return a value Aliohjelmalle on määritelty paluuarvo, mutta se ei palauta mitään (eli return-lause puuttuu).

Seuraavassa aliohjelmassa paluuarvoksi on määritelty PhysicsObject?, mutta aliohjelma ei palauta mitään arvoa.

PhysicsObject? LuoPallo?() {

PhysicsObject? pallo = new PhysicsObject?(50.0, 50.0, Shape.Circle);

} Tällöin Visual Studio antaa virheilmoituksen.

Jos pallo halutaan palauttaa aliohjelmasta, niin aliohjelmaa pitää korjata seuraavasti.

PhysicsObject? LuoPallo?() {

PhysicsObject? pallo = new PhysicsObject?(50.0, 50.0, Shape.Circle); return pallo;

} Aliohjelman paluuarvo on void, mutta return palauttaa jotakin Viesti:

Since 'Peli.LuoPallo?()' returns void, a return keyword must not be followed by an object expression Tässä aliohjelman LuoPallo? paluuarvoksi on määritelty void, mutta siinä yritetään kuitenkin palauttaa arvo:

void LuoPallo?() {

PhysicsObject? pallo = new PhysicsObject?( 50.0, 50.0, Shape.Circle); return pallo;

} Jos tässä halutaan palauttaa muuttuja pallo, pitää aliohjelman paluuarvon tyypiksi määritellä pallon tyyppi eli PhysicsObject?.

PhysicsObject? LuoPallo?() {

PhysicsObject? pallo = new PhysicsObject?( 50.0, 50.0, Shape.Circle); return pallo;

} Muuttujaa ei ole olemassa nykyisessä kontekstissa Viesti:

The name 'massa' does not exist in the current context Seuraavassa koodinpätkässä käytetään muuttujaa nimeltä massa, mutta tuota muuttujaa ei ole esitelty missään.

Jokainen muuttuja, jota ohjelmassa käytetään, tulee esitellä jossakin. Esittely tarkoittaa, että jollakin rivillä kirjoitetaan muuttujan tyyppi sekä nimi seuraavasti:

double massa; Samalla rivillä esittelyn kanssa voi myös sijoittaa muuttujalle alkuarvon:

double massa = 100.0; Niinpä äskeisen koodin virhe voidaan korjata kertomalla muuttujan massa tyyppi (tyyppi on double eli desimaaliluku) siinä missä tuo muuttuja ensimmäisen kerran otetaan käyttöön:

Jos muuttuja esitellään aliohjelmassa, se pitää esitellä ennen sen käyttöä. Jos muuttujaa tarvitaan useammassa aliohjelmassa, pitää se esitellä luokan sisällä:

public class Peli : PhysicsGame? {

double massa;

protected override void Begin() {

massa = 100.0; PhysicsObject? pallo = new PhysicsObject?( 50.0, 50.0, Shape.Circle ); pallo.Mass = massa; TulostaMassa?();

}

void TulostaMassa?() {

MessageDisplay?.Add( "Massa on " + massa );

}

} Puolipiste puuttuu Viesti:

C# ja moni muu kieli vaatii puolipisteen (;) jokaisen lauseen loppuun. Visual Studio osaa kertoa, mistä kohtaa koodia puolipiste puuttuu. Alussa puolipisteet unohtuu helposti, mutta niitä kyllä oppii laittamaan.

Visual Studiokaan ei ole erehtymätön, ja ehdottaa puolipisteiden laittamista joskus sinne minne se ei kuulu. Esimerkiksi jos olet kirjoittamassa aliohjelman esittelyriviä, niin VS:n mielestä aliohjelman nimen perään kuuluisi puolipiste.

Mutta oikeastihan siihen kuuluu kaarisulut, ja sitten aaltosulut.

Muuttuja on jo määritelty Viesti:

A local variable named 'massa' is already defined in this scope Muuttuja ei tule esitellä kuin kerran. Jos saman niminen muuttuja on esitelty kahteen kertaan samassa koodilohkossa (esimerkiksi samassa aliohjelmassa), jää epäselväksi kumpaa muuttujaa oikein pitäisi käyttää.

Huomaa, että samanniminen muuttuja voi olla määriteltynä eri lohkossa (esimerkiksi luokan sisällä ja aliohjelman sisällä):

public class Peli : PhysicsGame? {

double massa = 50.0;

protected override void Begin() {

double massa = 100.0; PhysicsObject? pallo = new PhysicsObject?(50.0, 50.0, Shape.Circle); pallo.Mass = massa;

}

} Kun aliohjelmassa käytetään muuttujaa massa, viittaa se sisemmässä lohkossa määriteltyyn muuttujaan, tässä tapauksessa aliohjelman sisällä määriteltyyn muuttujaan. Tällaista tilannetta tulisi yleensä välttää, sillä silloin tulee helposti viitattua väärään muuttujaan kuin oli tarkoitus.

Aaltosulku puuttuu } expected Tämä voi johtua siitä, että oikea aaltosulku (}) on jäänyt kirjoittamatta tai siitä että ennen aaltosulkua on virheellistä koodia. Seuraavassa esimerkissä on kirjoitettu toinen aliohjelma, mutta se onkin lipsahtanut aliohjelman Begin sisälle:

public class Peli : PhysicsGame? {

double massa = 50.0;

protected override void Begin() {

double massa = 100.0; PhysicsObject? pallo = new PhysicsObject?(50.0, 50.0, Shape.Circle); pallo.Mass = massa;

void TulostaMassa?() { } }

}

Jos sulkumerkkien hahmottaminen tuntuu hankalalta, kannattaa viedä kursori toisen sulkumerkin viereen. Tällöin Visual Studio värittää tämän ja sitä vastaavan sulun. Seuraavassa kuvassa erottuu selvästi Begin-aliohjelman aaltosulut:

http://kurssit.it.jyu.fi/npo/2010/luentomateriaali/www/sulut.gif

Nimiavaruus ei suoraan sisällä attribuutteja tai aliohjelmia Viesti:

A namespace does not directly contain members such as fields or methods C#-kielessä kooditiedostossa on tyypillisesti määritelty nimiavaruus:

namespace Peli { } Ja sen sisällä luokka:

namespace Peli {

public class Peli : PhysicsGame? { }

} Nimiavaruudet ovat hyödyllisiä isommissa projekteissa, mutta tämän kurssin peleissä niitä ei käytetä. Oleellista tässä on se, että C# ei salli aliohjelmien ja muuttujien kirjoittamista suoraan nimiavaruuden sisään, vaan ne tulee kirjoittaa luokan sisään. Seuraavassa esimerkissä aliohjelma on lipsahtanut luokan ulkopuolelle:

Kun kursorin vie luokan aloittavan tai lopettavan aaltosulun viereen, Visual Studio esittää nuo aaltosulut eri värillä, jolloin on helpompi kirjoittaa aliohjelma oikeaan kohtaan:

Saavuttamatonta koodia havaittu Viesti:

Unreachable code detected Tämä virhe tarkoittaa, että jotkut aliohjelman lauseista eivät voi koskaan tulla suoritettavaksi. Esimerkiksi seuraavassa koodissa pallon x-koordinaattiin sijoitetaan arvo, mutta koska sitä edeltävä lause on return-lause, tuohon lauseeseen ei koskaan päästä. return-lausehan palaa samantien pois aliohjelmasta!

Tämä saadaan kuntoon tekemällä tarvittavat sijoitukset ennen paluuta:

Attachments Download in other formats: Plain Text PDF Tässä ohjeessa käydään läpi muuttujan ja tyypin käsitteet. Lisäksi käydään läpi tavallisia operaatioita.

  1. Mikä on muuttuja

Ohjelman 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.

Muuttujassa 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.

  1. Muuttujan määrittely

Muuttuja 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.

Esimerkkejä:

int x; string teksti; PhysicsObject? pallo; Muuttujalle voidaan myös asettaa lähtöarvo:

int x = 5; string teksti = "palturia";

  1. Muuttujan arvon asettaminen

Kun muuttuja on esitelty, sen arvoa voidaan muuttaa vapaasti, kunhan uusi arvo on samaa tyyppiä kuin muuttuja.

x = 10; toimii int x; x = "tekstiä"; antaa virheen, sillä arvo on tyyppiä string (merkkijono)

  1. Perustyypit

C#-kielen perustyyppejä:

4.1. Lukuarvotyypit Lukuarvotyyppejä 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ä:

(Linkit vievät MSDN-dokumentteihin.)

Tyyppinimi Pienin mahdollinen arvo Suurin mahdollinen arvo Selitys

byte 0 255 Tavu short -32768 32767 Etumerkillinen lyhyt kokonaisluku ushort 0 65535 Etumerkitön lyhyt kokonaisluku int -2147483648 (noin -2.1 miljardia) 2147483647 Etumerkillinen kokonaisluku uint 0 4294967296 (noin 4.3 miljardia) Etumerkitön kokonaisluku long -9.22 * 1018 (noin -9 triljoonaa) 9.22 * 1018 Etumerkillinen pitkä kokonaisluku ulong 0 1.84 * 1019 (noin 20 triljoonaa) Etumerkitön pitkä kokonaisluku

Liukuluvuille 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.

4.2. Merkit ja merkkijonot Muuttujiin 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.

char c = 'a'; string jono = "abcdef"; Merkkijonoja voidaan myös yhdistellä + -operaattorilla:

string a = "merkki"; string b = "jono"; string c = a + b; "merkkijono" 4.3. Oliotyypit Myös oliot ovat muuttujia. Lisätietoa Jypelin erilaisista olioista löytyy sivulta Oliot ja selitykset. Oliomuuttujan tyyppi on sen luokka.

  1. Operaatiot

Muuttujan paikalla voidaan aina käyttää myös operaatiota, jossa muuttujia lasketaan yhteen, kerrotaan keskenään tai muuten manipuloidaan. Esimerkiksi

int c = a + b; sijoittaa kokonaislukumuuttujaan c muuttujien a ja b yhteenlasketut arvot.

5.1. Aritmeettisia (laskennallisia) operaattoreita Operaattori Esimerkki Merkitys a = b Sijoitus (b:n arvo sijoitetaan muuttujaan a) + a + b Yhteenlasku

  • a - b Vähennyslasku
  • a * b Kertolasku
/ a / b Jakolasku. Huom. nollalla ei saa jakaa

% a % b Jakolaskun jakojäännös Lisä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.

5.2. Vertailuoperaattorit Kahden muuttujan vertailua voidaan käyttää esimerkiksi if-lauseessa. Muuttujien paikalla voidaan edelleen käyttää operaatiolausekkeita. Tässä yleisimmät vertailuoperaattorit:

Operaattori Esimerkki Merkitys a == b Yhtäsuuruus

a != b Erisuuruus

< a < b Pienempi kuin

a > b Suurempi kuin

< a <= b Pienempi tai yhtäsuuri kuin

a >= b Suurempi tai yhtäsuuri kuin

  1. Tyyppimuunnokset

Joskus 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:

int kokonaisluku = 7; double liukuluku = (double)kokonaisluku; Jypeli tarjoaa myös monille tyypeille omat muunnosfunktionsa:

int kokonaisluku = 7; double liukuluku = kokonaisluku.ToDouble?(); String merkkijono = kokonaisluku.ToString?(); Olioille on olemassa myös oma muunnoksensa varatulla sanalla as. Muunnos on turvallinen, sillä jos se ei onnistu, arvoksi asetetaan yksinkertaisesti null.

PhysicsObject? fysiikkaolio = new PhysicsObject?( "kissa", 2, 4 ); GameObject? peliolio = fysiikkaolio as GameObject?; Lisätietoa: tämä voidaan kirjoittaa myös käyttäen is-operaattoria ja perinteistä tyyppimuunnosta käyttäen muodossa

PhysicsObject? fysiikkaolio = new PhysicsObject?( "kissa", 2, 4 ); GameObject? peliolio = null;

if ( fysiikkaolio is GameObject? ) {

peliolio = (GameObject?)fysiikkaolio;

} Is tarkistaa, onko olio haluttua tyyppiä.

Download in other formats: Plain Text PDF Tässä ohjeessa käydään läpi mikä on attribuutti, mihin sitä tarvitaan ja kuinka sellainen saadaan luotua tavallisesta muuttujasta.

  1. Milloin muuttuja on olemassa?

Tarkempaa 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.

Muuttuja on määritelty (ts. olemassa) vain sitä edeltävän lähimmän aaltosulun ja sen sulkevan vastinparin välissä. Esimerkiksi ohjelma

public class Peli : PhysicsGame? {

public override void Begin() {

PhysicsObject? pallo = new PhysicsObject?(40, 40); pallo.Shape = Shape.Circle;

}

void LiikutaPalloa?() {

pallo.Hit(new Vector(200, 100));

}

} on 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.

  1. Muuttujan määrittely ja alustus

Muuttuja pallo on määritelty ja alustettu rivillä

PhysicsObject? pallo = new PhysicsObject?(40, 40); Määrittely ja alustus voidaan kirjoittaa myös kahdeksi erilliseksi lauseeksi. Tämä saattaa tuntua turhalta, mutta seuraavassa kohdassa se osoittautuu varsin hyödylliseksi.

PhysicsObject? pallo; pallo = new PhysicsObject?(40, 40);

  1. Attribuutti

Kuinka 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

public class Peli : PhysicsGame? jälkeen tulee aaltosulku! Nyt kun muuttujan määrittely ja alustus on kirjoitettu erikseen, voimme siirtää määrittelyn aikaisemman aaltosulun jälkeen.

public class Peli : PhysicsGame? {

PhysicsObject? pallo;

public override void Begin() {

pallo = new PhysicsObject?(40, 40); pallo.Shape = Shape.Circle;

}

void LiikutaPalloa?() {

pallo.Hit(new Vector(200, 100));

}

} jolloin pallo on käytettävissä kaikissa aliohjelmissa ja ohjelma toimii. Näin määriteltyä muuttujaa pallo sanotaan peliluokan attribuutiksi.

Download in other formats: Plain Text PDF Aliohjelmat 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.

Aliohjelmilla on nimi, parametrit ja palautusarvo. Seuraavassa esimerkki aliohjelmasta, joka yhdistää kaksi merkkijonoa.

Aliohjelma koostuu näistä osista:

Saantimääre: Voivatko muut ohjelmat käyttää aliohjelmaa. Voi yleensä olla public. Saantimäärettä ei ole pakko kirjoittaa C#:ssa. Palautusarvon tyyppi: esimerkissä String Aliohjelman nimi: esimerkissä Yhdista Parametrit: esimerkissä String jono1, String jono2 Runko: aaltosulkujen väliin kirjoitettava ohjelmakoodi Aliohjelmaa voidaan kutsua pääohjelmasta tähän tapaan, olettaen että String-tyyppiset muuttujat jonot1ja2, jono1 ja jono2 on määritelty ohjelmassa aikaisemmin:

jonot1ja2 = Yhdista( jono1, jono2 ); Palautusarvo ja sen tyyppi Aliohjelmalta odotettavaa vastausta sanotaan aliohjelman palautusarvoksi. Esimerkiksi aliohjelma SummaaLuvut? voisi palauttaa kysyjälle syötetyn kokonaisluvun summan.

Palautusarvon tyyppi kirjoitetaan aina ennen aliohjelman nimeä, ja se kertoo, minkä tyyppistä tietoa aliohjelmasta saadaan ulos.

Esimerkiksi 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.

Parametrit Aliohjelman 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ä:

String EiParametreja?() { } Yllä 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ä.

Aliohjelman runko Merkityksellisin osa aliohjelmassa on sen runko, joka kirjoitetaan aaltosulkujen väliin. Runko voi sisältää mitä tahansa ohjelmointikielen lauseita.

Return-lause Jos 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.

int Summaa( int a, int b ) {

return a + b;

} Aliohjelma voi palauttaa muuttujan (kuten yllä olevassa esimerkissä) tai suoraan jonkin arvon, esimerkiksi arvon 2, kun palautusarvon tyyppinä on kokonaisluku (int).

int Kakkonen() {

return 2;

} Attachments Download in other formats: Plain Text PDF Esimerkki ehtolauseesta Esimerkki if-lauseesta:

if ( maila.Top > Level.Top ) {

maila.Velocity = Vector.Zero; return;

} If-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.

Ehdoksi 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.

Esimerkissä, 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.

if-lauseessa voi käyttää monia muitakin ehtoja, esimerkiksi:

x == 8 eli muuttuja x on yhtäsuuri kuin 8 (HUOM! Yhtäsuuruus on C#:ssa kaksi =-merkkiä) y != 10 eli muuttuja y on erisuuri kuin 10 pallo.Mass <= kivi.Mass eli muuttujan pallo massa on pienempi tai yhtäsuuri kuin muuttujan kivi massa pallo.IsVisible? eli onko pallo näkyvä Ehtolauseet yleisemmin Ehtolauseet mahdollistavat eri ohjelmakoodin suorittamisen eri tilanteissa. Ehtolauseen rakenne on yksinkertaisimmillaan tällainen:

if (ehto) { } Aaltosulkujen väliin kirjoitetaan ohjelmakoodi, joka suoritetaan kun ehto toteutuu. Ehto voi olla mikä tahansa lauseke, joka palauttaa bool-tyyppisen arvon.

if (amparinKoko > 10) {

Tämä toteutuu, kun ämpärin koko on suurempi kuin 10

} if (nimi[0] == 's') {

Tämä toteutuu, kun nimi alkaa s-kirjaimella

} Vaihtoehtoiset tapaukset Joskus halutaan suorittaa oma ohjelmakoodinsa, kun ehto ei toteudu. Tämä onnistuu käänteisellä ehdolla tähän tapaan:

if (arvo > 2) {

tehdään yhtä

}

if (arvo <= 2) {

tehdään toista

} ...mutta yksinkertaisempikin vaihtoehto on olemassa - else-lause:

if (arvo > 2) {

tehdään yhtä

} else {

tehdään toista

} Tämä tekee täsmälleen saman kuin ylempi ohjelma. Huomaa, että else-osaa ei suoriteta, jos if-osa suoritetaan ja päinvastoin.

Kaksi tapausta ei aina riitä. Useampien ehtojen kokonaisuuksia varten on olemassa else if -lause, jota voidaan käyttää if- ja else-lauseiden kanssa yhdessä:

if (nakki < 0) {

tehdään jotain

} else if (nakki > 0) {

tehdään jotain muuta

} else {

/ jäljelle jää tapaus nakki == 0, joka johtaa tänne

} Else 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:

if (luku > 10) {

tänne tullaan kun luku on suurempi kuin 10

} else if (luku > 5) {

Tänne tullaan kun luku on suurempi kuin 5, mutta pienempi tai yhtäsuuri kuin 10. Jälkimmäinen "kirjoittamaton" ehto seuraa aiemmasta if-lauseesta.

} Download in other formats: Plain Text PDF Olio (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.

int luku; Luokka olio; Olioilla 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.

olio.Leveys = 20; olio.Ammu(); Olioiden 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).

Olion luominen Olion luomiseen käytetään erityistä new-avainsanaa, joka käyttää olion rakentajaa (constructor) sen luomiseen:

Timer kello = new Timer(); Suluissa 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:

PhysicsObject? nelio = new PhysicsObject?( 40.0, 40.0, Shape.Rectangle );

PhysicsObject? ympyra = new PhysicsObject?( 40.0, 40.0); ympyra.Shape = Shape.Circle; Olioon viittaaminen Olioon 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.

Jos 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.

Ominaisuudet Ominaisuus (property) voi olla esimerkiksi paikka, väri tai vaikkapa kissalla hännän pituus.

kissa.X = 20.0; kissa.HannanPituus? = 7; Ominaisuus voi olla myöskin olio:

Koira koira = new Koira(); kissa.vihollinen = koira; Sama yhdelle riville kirjoitettuna:

kissa.vihollinen = new Koira(); Joillekin 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:

Property or indexer 'luettava' cannot be assigned to -- it is read only Metodit Metodi on aliohjelma, joka on kirjoitettu olion sisälle. Samat säännöt parametrien ja paluuarvon kanssa pätevät.

int summa = laskuri.LaskeYhteen?( a, b ); pallo.Hit( 2000 ); Controls.Listen( Keys.Space, ButtonPosition?.DOWN, Ammu ); On myös olemassa ns. staattisia metodeita, joiden kutsumiseen ei tarvita oliota vaan niitä voidaan kutsua luokasta itsestään:

int satunnaisluku = RandomGen?.NextInt?( 1, 100 ); PhysicsObject? kiinteaSuorakulmio = PhysicsObject?.CreateStaticObject?(40.0, 40.0); Jäsenet Luokan jäseniksi sanotaan sen ominaisuuksia ja metodeja.

Periytyminen Monet 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.

C#-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ä.

Luokkaa, josta toinen luokka periytyy, sanotaan kantaluokaksi. Esimerkiksi GameObject? on PhysicsObjectin? kantaluokka. Vastaavasti PhysicsObject? on GameObjectin? perillinen.

Olioiden periytymisestä piirretään monesti luokkakaavioita. Luokkakaavio voi näyttää vaikkapa tältä:

Polymorfismi Polymorfismiksi sanotaan sitä, kun peritty luokka esiintyy kantaluokkansa tyyppisenä. Esimerkki valoittaa asiaa:

GameObject? peliolio = new PhysicsObject?(20, 20); Polymorfismia käytetään usein parametrien välityksessä aliohjelmalle, ettei jokaiselle peritylle luokalle tarvitse tehdä omaa aliohjelmaa.

void Aliohjelma1() {

PhysicsObject? peliolio = new PhysicsObject?(20, 20); Aliohjelma2( peliolio );

}

void Aliohjelma2( GameObject? otus ) {

tehdään jotain pelioliolla otus

} Tämä toimii, koska kaikki PhysicsObjectit? ovat myös GameObjecteja?. Toisin päin ei toimi, sillä läheskään kaikki GameObjectit? eivät ole PhysicsObjecteja?.

On 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:

void Aliohjelma2( GameObject? otus ) {

PhysicsObject? fysOtus = otus as PhysicsObject?; if ( fysOtus != null ) {

physOtus.Hit( new Vector(200, 0) );

}

} Yllä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.

Attachments Download in other formats: Plain Text PDF Ohjelmien asentaminen kotikoneelle Tarvitset ohjelmointia varten seuraavat työkalut. Jos ohjelmien asennuksessa on ongelmia, katso FAQ-sivu, tai kirjoita sähköpostia pelik2009.group@….

Asenna kurssin ohjelmistot. (Jos haluat vain pelata muiden tekemiä pelejä niin riittää ​XNA redistributable-paketti.)

Lataa pelit koneelle:

Lataa pelit koneelle Jos jatkat pelin tekemistä, saatat myös tarvita:

Kuvankäsittely- ja äänenkäsittelyohjelmat XBox 360 -ohjaimen ajuri (ei pakollinen jos pelaa vain näppäimistöltä)

  1. Pelin kopioiminen kaverille

Käännä pelisi lähdekoodi Visual Studiossa (ks. myös Miten saan lähdekoodit omalle koneelle) Kopioi Peli\bin\x86\debug-kansio kokonaisuudessaan kaverille Kaverilla pitää olla ​XNA Redistributable asennettuna Nyt kaverin pitäisi pystyä ajamaan pelisi EXE-tiedosto

  1. Asennusohjelman tekeminen

Tä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ä.

Huomaa, että asennusohjelman tekeminen onnistuu vain Visual Studion Professional-versiolla. Kohdekoneessa pitää olla toimiva nettiyhteys ja käytössä myös admin-tunnukset vaaditaan.

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.

Avaa Visual Studio ja oma peliprojektisi Valitse projektinäkymästä pelisi solution, ja lisää siihen uusi projekti

Valitse 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". Kirjoita projektin nimi Name-kohtaan ja Location-kohtaan "C:\MyTemp?\tunnus" missä tunnus on käyttäjätunnuksesi. Varmista projektin luonti valitsemalla OK.

Ensimmäisessä ja toisessa ikkunassa valinnat ovat oletuksena oikeat, voit ohittaa ne painamalla Next. Kolmannessa ikkunassa rastita nämä kohdat: Content files from (peli): sisällyttää pelin ääni- ja kuvatiedostot asennukseen Primary output from (peli): sisällyttää pelin käynnistys- (exe) ja kirjastotiedostot (dll) asennukseen

Luo asennusprojekti painamalla Finish. Asennuksen 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.

XNA:n lisääminen asennukseen Asennusohjelma 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ä:

Valitse ikkunasta Prerequisites (esivaatimukset) ja avautuvasta ikkunasta rasti "XNA Framework 4.0 Redistributable" (alimmaisena listassa).

Sulje molemmat ikkunat painamalla OK ja varmista, että projekti kääntyy.

Käynnistysvalikon ja työpöydän pikakuvakkeet Asennusohjelma toimii muuten oletusasetuksilla, mutta pikakuvakkeet Käynnistä-valikkoon ja/tai työpöydälle on lisättävä itse, mikä onnistuu seuraavalla tavalla:

Varmista, 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. Jos 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. Avaa asennushakemisto valitsemalla vasemmasta puusta "Application Folder". Valitse 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ä)

Siirrä pikakuvake hiirellä raahaamalla luomaasi ryhmään käynnistysvalikossa tai työpöydälle (User's Desktop). Lopuksi käännä vielä projekti uudestaan. Nyt asennusohjelma osaa luoda pikakuvakkeet käynnistysvalikkoon, työpöydälle tai molempiin. Asennusohjelma löytyy projektihakemiston Release-hakemistosta.

Jos 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.

Attachments Download in other formats: Plain Text PDF FAQ (useimmin kysytyt kysymykset) Onko 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.

Yleisiä kysymyksiä

  1. Miten jatkan oman pelini tekemistä kotona?

Asenna ohjelmat koneellesi Lataa pelisi SVN-palvelimelta koneelle (voit samalla ladata myös muut pelit) Avaa pelisi Solution-tiedosto (sln)

  1. Miten lataan oman pelini / muiden pelit / esimerkkipelit koneelleni?

Selviää tätä ohjetta tarkasti seuraamalla.

  1. tartteeks tortoise olla koneella jos haluaa jypeli ja kirjaston ja jypeli kirjaston päivityksen.

Ei 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. Esim kurssin 23/2010 Jypeli-versio löytyy täältä: ​https://trac.cc.jyu.fi/projects/npo/browser/tags/2.1.3/lib Huomaa että tiedostojen tallennus tapahtuu tuolla siten että klikkaat tiedoston auki (hiiren vasemmalla), sitten "Try downloading the file instead." Uudempia versioita Jypelistä ilmestyy tuonne "tags" kansioon pikku hiljaa, eli sieltä voit tsekkailla päivityksiä.

  1. Mitä versiota Jypelistä pitäisi käyttää?

Suositus on, että käytät aina ​viimeistä vakaata versiota (eli uusinta tagia). Jypeliin 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. Taaksepä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. Ongelmatilanteita

  1. XNA with Visual Studio 2008 Error: "The project type is not supported by this installation"

Yleensä johtuu siitä, että XNA Game Studiota ei ole asennettu, tai sitä ei ole asennettu Visual Studion asennuksen jälkeen. Asenna siis XNA, mutta vasta sen jälkeen kun olet asentanut Visual Studion. Yksi mahdollinen ratkaisu: Ks. ​http://forums.xna.com/forums/p/31995/182989.aspx ensin menet kansioon C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE etsi devenv.exe joka on XML Konfigurointitiedosto avaa se komentoriville, ja kirjoita siihen devenv /ResetSkipPkgs?? avaa sitten Visual Studio 2008 Pro, jonka pitäisi nyt toimia moitteetta. Huom. Miten seuraavilla käynnistyskerroilla? Vaatiiko edelleen tuon vivun devenvin perään... (Selvittämättä)

  1. Peli aiheuttaa käynnistettäessä poikkeuksen "No suitable graphics card."

Tä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 DirectX 9:ää Shader Model 1.1:stä. Näet asennetun DirectX-version Windows XP:ssä seuraavasti: Klikkaa Käynnistä -> Aja (Start -> Run). Kirjoita dxdiag ja paina enteriä. Kannattaa tarkistaa myös Windowsin asetuksista, että laitteistokiihdytys on täysillä. Englanninkielisessä Windows XP:ssä: Työpöytää oikealla -> Properties. Settings-välilehti -> click Advanced. Troubleshoot-välilehti. Siirrä Hardware Acceleration -liukupalkki Full-asentoon. Klikkaa OK, ja sitten Close. Lähde: ​http://msdn.microsoft.com/en-us/library/bb203941%28v=XNAGameStudio.31%29.aspx

  1. Error: this template attempted to load an untrusted component "Microsoft.Xna.GameStudio??, Version=2.0.0.0" …

Tämä ilmoitus johtuu todennäköisesti siitä, että olet asentanut väärän version XNA Frameworkista, tai olet asentanut sen ennen Visual Studion asentamista. Ratkaisu: Poista XNA:n asennus (Ohjauspaneelista), ja asenna sen jälkeen ​XNA 3.1 uudelleen. Download in other formats: Plain Text PDF Pelien hakeminen omalle koneelle Nä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).

Tässä ohjeessa oletetaan, että olet asentanut TortoiseSVN-ohjelman.

  1. Oppilaan pelin hakeminen (nuorten kurssit)

Avaa Oma tietokone ja se kansio, jonne haluat pelit hakea, esimerkiksi 'MyTemp?'. Valitse File-valikosta SVN Checkout....

Jos haluat kaikki (kaikkien vuosien!) pelit: Aukeavassa ikkunassa kirjoita kohtaan Url of repository seuraava osoite:

https://svn.cc.jyu.fi/srv/svn/npo_pelit ja kohtaan Checkout directory poluksi esimerkiksi C:\MyTemp?\npo_pelit. Paina OK.

Huom! Jos haluat vain tietyn vuoden pelit (tai tietyn viikon, tai vain yhden pelin), kirjoita Checkout ikkunassa kohtaan Url of repository osoite:

https://svn.cc.jyu.fi/srv/svn/npo_pelit/ ja paina sen perässä olevaa nappia, missä on kolme pistettä '...'. Tämä avaa valikon, josta voi selata koodivarastoa.

Valitse hakemisto, jonka haluat hakea, esimerkiksi kansiossa 2010 on kaikkien kesän 2010 kurssien oppilaiden tuotokset.

Jos haluat vain oman pelisi, valitse vielä kurssikansio, ja sieltä oma tunnuksesi.

Paina OK.

Palataan Checkout-ikkunaan. Tarkista, että kohdassa Url of repository on sen kansion osoite, jonka haluat hakea.

Kohtaan Checkout directory valitse mihin kansio haetaan.

Paina OK, niin siirto alkaa.

Kun siirto on päättynyt, paina taas OK.

Kun 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.

Jos koitat ajaa peliä PC:llä, katso että työkalurivissä olevassa alasvetolistassa on valittuna kohta x86, jotta XBox-versiota ei turhaan yritetä kääntää.

Aja peliä painamalla F5.

HUOM! 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.

  1. Kaikkien (ohjaajien tekemien) esimerkkipelien hakeminen

Avaa hakemisto MyTemp? Windowsin resurssienhallinnasta kuten aloitusohjeissa neuvottiin. Valitse File-valikosta SVN Checkout....

Aukeavassa ikkunassa kirjoita kohtaan Url of repository seuraava osoite:

https://svn.cc.jyu.fi/srv/svn/npo/trunk ja kohtaan Checkout directory poluksi C:\MyTemp?\npo. Paina OK.

Seuraavaksi aukeaa dialogi, joka näyttää tiedostot joita haetaan koneellesi. Tässä voi kestää hetken aikaa, joten olethan kärsivällinen.

Kun 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.

Kun 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.

Jos koitat ajaa peliä PC:llä, katso että työkalurivissä olevassa alasvetolistassa on valittuna kohta x86, jotta XBox-versiota ei turhaan yritetä kääntää.

Voit koittaa ajaa sitä painamalla F5-näppäintä.

Jos ajaminen ei onnistu, se voi johtua siitä, että Jypeli-kirjastoa ei löydy.

Lisää omalla koneellasi olevat kirjastot projektiin tämän ohjeen mukaan:

Kirjastojen liittäminen projektiin

  1. Esimerkkipelin hakeminen oman projektin pohjaksi

Avaa oma hakemistosi resurssienhallinnasta. Valitse valikosta

File -> TortoiseSVN -> Export...

jolloin aukeaa export-ikkuna. Kirjoita kohtaan URL of repository osoitteeksi

https://svn.cc.jyu.fi/srv/svn/npo/trunk ja 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.

Kirjoita 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.

Voit avata pelin koodin Visual Studioon avaamalla pelin hakemiston ja tuplaklikkaamalla .sln-päätteistä tiedostoa (esim. LunarLander?.sln).

Jos koetat ajaa peliä, se ei varmaankaan käänny koska kirjastoja ei löydy. Lisää omalla koneellasi olevat kirjastot projektiin tämän ohjeen mukaan:

Kirjastojen liittäminen projektiin

Attachments Download in other formats: Plain Text PDF Jypeli-kirjaston liittäminen projektiin käsin Kurssilla käytetään paitsi Visual Studion tarjoamia standardikirjastoja, myös Jypeli-kirjastoa.

Yleisesti, 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:

KirjastonHakeminen?

Kurssilla 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.

Voit katsoa tämän ohjeen myös videona (kesto 02:47).

  1. Kirjastoa ei löydy

Avaa 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.

  1. Viitteiden lisääminen kirjastoihin

Viitteen lisääminen olemassaolevaan kirjastoon tapahtuu seuraavasti:

Klikkaa solution explorerista References-kansiota hiiren oikealla painikkeella ja valitse Add Reference... Valitse aukeavasta ikkunasta Browse-välilehti. Etsi kirjasto levyltä. Mikroluokkien koneissa kirjasto löytyy seuraavasti: Valitse pudotusvalikosta My Computer Avaa hakemistot järjestyksessä Local Disk (C:) » MyTemp? » lib Valitse liitettävä kirjasto (Jypeli4.dll) klikkaamalla .dll-päätteistä tiedostoa. Paina OK. Attachments Download in other formats: Plain Text PDF Etätuki ​TeamViewer?-ohjelmalla Jos 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.

Etäyhteyden ottamiseksi sinun tulee ladata ja ajaa ​TeamViewer?-ohjelma.

TeamViewer? on yksityiseen/ei-kaupalliseen käyttöön ilmainen työpöydän etähallintaohjelmisto.

Lataa ja suorita ohjelma ​http://www.teamviewer.com/download/TeamViewerQS_fi.exe Jos Windows varoittaa ohjelman käynnistämisestä, voit huoletta vahvistaa sen. TÄRKEÄÄ: Ilmoita ohjaajalle koneesi ID ja salasana. Huomaa, että salasana vaihtuu jokaisella TeamViewerin? käynnistyskerralla.

Etä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.

Attachments Download in other formats: Plain Text PDF Wiki-sivujen muokkaaminen Wiki 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.

Muokataksesi 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.

Kun 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.

Yleisimpiä merkintöjä Wiki-sivujen muokkaamiseen on omat merkintänsä, joilla tehdään esim. otsikot ja listat. Kattavan ohjeen merkinnöistä löydät sivulta WikiFormatting.

Tässä tärkeimpiä merkintöjä:

Pääotsikko:

Otsikko

Alaotsikko:

Otsikko

Ala-ala-otsikko:

Otsikko

Pallotettu lista:

  • kissa
  • koira
  • kana

Numeroitu lista:

  1. eka
  2. toka
  3. kolmas

Ohjelmakoodin kirjoittaminen sivulle:

int pallojenMaara = 8;

Kuvan lisääminen sivulle Sivulle voi lisätä kuvan seuraavasti:

Klikkaa sivun alareunassa olevaa Attach file-painiketta kun et ole muokkaustilassa. Klikkaa aukeavasta sivusta Browse...-painiketta. Etsi aukeavasta ikkunasta kuvatiedosto, jonka haluat lisätä. Klikkaa painiketta Add attachment. Kuvan pitäisi ilmestyä sivun alareunassa olevaan listaan. Siirry sivun muokkaukseen painamalla Edit this page-painiketta Vie kursori kohtaan, johon haluat lisätä kuvan. Kirjoita seuraava makro, missä kuva.png on kuvatiedostosi nimi. No image "kuva.png" attached to hiekkalaatikko Paina painiketta Submit changes. Linkin lisääminen toiseen sivuun Kun muokkaat wiki-sivun tekstiä, voit lisätä viitteen toiselle wiki-sivulle seuraavalla merkinnällä:

Toinen sivu? Tä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.

Jos linkittämääsi sivua ei ole olemassa, linkki näkyy harmaana. Voit klikata harmaata linkkiä, ja järjestelmä kysyy sinulta, haluatko luoda kyseisen sivun.

Automaattinen linkitys Wiki-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.

Jos et halua tätä, kirjoita sanan eteen huutomerkki:

SivunNimenNäköinenSana Linkittäminen kaverin suunnitelmaan Jos teet peliä parin kanssa, suunnitelma tarvitsee tehdä vain toisen sivulle. Toinen voi sitten laittaa omalle sivulleen linkin toisen sivulla olevaan suunnitelmaan.

Oppilaan 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ä:

Aku Ankka? Jos laitat sivullesi vain linkin parin sivulle, voit pyyhkiä sivullasi olevan valmiin suunnitelman mallin pois.

Download in other formats: Plain Text PDF Wiki-sivujen muokkaaminen Wiki 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.

Muokataksesi 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.

Kun 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.

Yleisimpiä merkintöjä Wiki-sivujen muokkaamiseen on omat merkintänsä, joilla tehdään esim. otsikot ja listat. Kattavan ohjeen merkinnöistä löydät sivulta WikiFormatting.

Tässä tärkeimpiä merkintöjä:

Pääotsikko:

Otsikko

Alaotsikko:

Otsikko

Ala-ala-otsikko:

Otsikko

Pallotettu lista:

  • kissa
  • koira
  • kana

Numeroitu lista:

  1. eka
  2. toka
  3. kolmas

Ohjelmakoodin kirjoittaminen sivulle:

int pallojenMaara = 8;

Kuvan lisääminen sivulle Sivulle voi lisätä kuvan seuraavasti:

Klikkaa sivun alareunassa olevaa Attach file-painiketta kun et ole muokkaustilassa. Klikkaa aukeavasta sivusta Browse...-painiketta. Etsi aukeavasta ikkunasta kuvatiedosto, jonka haluat lisätä. Klikkaa painiketta Add attachment. Kuvan pitäisi ilmestyä sivun alareunassa olevaan listaan. Siirry sivun muokkaukseen painamalla Edit this page-painiketta Vie kursori kohtaan, johon haluat lisätä kuvan. Kirjoita seuraava makro, missä kuva.png on kuvatiedostosi nimi. No image "kuva.png" attached to hiekkalaatikko Paina painiketta Submit changes. Linkin lisääminen toiseen sivuun Kun muokkaat wiki-sivun tekstiä, voit lisätä viitteen toiselle wiki-sivulle seuraavalla merkinnällä:

Toinen sivu? Tä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.

Jos linkittämääsi sivua ei ole olemassa, linkki näkyy harmaana. Voit klikata harmaata linkkiä, ja järjestelmä kysyy sinulta, haluatko luoda kyseisen sivun.

Automaattinen linkitys Wiki-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.

Jos et halua tätä, kirjoita sanan eteen huutomerkki:

SivunNimenNäköinenSana Linkittäminen kaverin suunnitelmaan Jos teet peliä parin kanssa, suunnitelma tarvitsee tehdä vain toisen sivulle. Toinen voi sitten laittaa omalle sivulleen linkin toisen sivulla olevaan suunnitelmaan.

Oppilaan 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ä:

Aku Ankka? Jos laitat sivullesi vain linkin parin sivulle, voit pyyhkiä sivullasi olevan valmiin suunnitelman mallin pois.

Download in other formats: Plain Text PDF Ohjelmien asentaminen kotikoneelle Tarvitset ohjelmointia varten seuraavat työkalut. Jos ohjelmien asennuksessa on ongelmia, katso FAQ-sivu, tai kirjoita sähköpostia pelik2009.group@….

Asenna kurssin ohjelmistot. (Jos haluat vain pelata muiden tekemiä pelejä niin riittää ​XNA redistributable-paketti.)

Lataa pelit koneelle:

Lataa pelit koneelle Jos jatkat pelin tekemistä, saatat myös tarvita:

Kuvankäsittely- ja äänenkäsittelyohjelmat XBox 360 -ohjaimen ajuri (ei pakollinen jos pelaa vain näppäimistöltä)Tekstieditorin käyttäminen Ohjeita tekstieditorin käyttöön. Ohjeet pätevän useimpiin käytössä oleviin editoreihin, mukaan lukien Visual Studio.

Tekstieditori 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.

Perusteet Seuraavassa 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.

Kursorin voi siirtää eri paikkaan hiirellä klikkaamalla.

Editorin käyttö on usein tehokkainta näppäinkomentoja käyttämällä. Tärkeimpiä komentoja on lueteltu omalla sivulla: NappainKomentoja?

Kursorin liikuttelu näppäimistöllä Kursorin liikuttaminen on usein nopeaa näppäimistöltä.

Nuolinäppäimiä painamalla kursori liikkuu yhden kirjaimen verran. Painamalla Ctrl-painiketta alaspainettuna ja vasenta tai oikeata nuolta kursori hyppää kokonaisen sanan kerrallaan. Tekstin valitseminen Editorissa voi valita tekstiä "maalaamalla" osan tekstistä. Valitsemista tarvitaan myöhemmissä kohdissa. Seuraavassa kuvassa on valittuna osa tekstistä:

Valitseminen tapahtuu hiirellä painamalla hiiren vasen painike alas, siirtämällä hiirtä valittavan tekstin yli ja vapauttamalla vasen painike.

Nä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.

Tekstin kopiointi ja siirtäminen Tekstiä voi siirtää seuraavasti:

Valitse teksti, jonka haluat siirtää Klikkaa hiiren oikeata painiketta ja valitse aukeavasta valikosta Leikkaa (engl. Cut). Näppäinkomento Ctrl + X. Vie kursori paikkaan, johon haluat siirtää tekstin Klikkaa hiiren oikeata painiketta ja valitse Liitä (engl. Paste). Näppäinkomento Ctrl + V. Tekstiä voi kopioida seuraavasti:

Valitse teksti, jonka haluat kopioida Klikkaa hiiren oikeata painiketta ja valitse Kopioi (engl. Copy). Näppäinkomento Ctrl + C. Vie kursori paikkaan, johon kopioitu teksti tulee Klikkaa hiiren oikeata painiketta ja valitse Liitä (engl. Paste). Näppäinkomento Ctrl + V. Tällä tavoin tekstiä voi myös kopioida tai siirtää eri ohjelmien välillä. Esimerkiksi nettisivulla olevan tekstin voi kopioida Visual Studion editoriin.

Attachments Download in other formats: Plain Text PDF Näppäinkomentoja koneen käyttöä nopeuttamaan Nä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ä.

Seuraavissa listauksissa komento kuten

Ctrl + C

tarkoittaa, että Ctrl-painike pidetään alaspainettuna samalla kun painetaan C-kirjainta.

  1. Yleiset Windows-pikanäppäimet

Alt + Tab Vaihda ohjelmasta toiseen Alt + Shift + Tab Vaihda ohjelmasta toiseen (liikkuminen vastapäivään) http://kurssit.it.jyu.fi/npo/2010/luentomateriaali/www/alt-tab.gif

Windows-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ä.

Win + E Avaa Oma tietokone Win + D Näytä työpöytä Win + R Suorita (Run) Win + Tab Sama kuin Alt + Tab mutta "hienompi" (toimii Windows Vistassa ja 7:ssa)

  1. Tekstinkäsittely

Näppäinkomentoja voi käyttää useimmissa Windows-ohjelmissa, kuten tekstinkäsittelyohjelmissa ja Visual Studiossa.

Perustoiminnot Ctrl + C kopioi Ctrl + X leikkaa Ctrl + V liitä Ctrl + Z kumoa edellinen toiminto Saattaa olla myös apua Ctrl + A valitse kaikki (teksti) ko. ikkunasta Home kursori rivin alkuun End kursori rivin loppuun Shift + nuolet valitse tekstiä Ctrl + nuoli vas./oik. hyppää yhden sanan yli Ctrl + Shift + nuoli vas./oik. kuten edellä, mutta valitsee tekstiä samalla Ctrl + pyyhkimisnappi pyyhi kursorin vasemmalla oleva sana(nosa) Ctrl + Del pyyhi kursorin oikealla puolella oleva sana(nosa) Lisätietoa Ctrl + Home kursori tiedoston alkuun Ctrl + End kursori tiedoston loppuun Shift + Home valitse kaikki kursorin ja rivin alun välissä ko. rivillä oleva teksti Shift + End kuten edellä, mutta valinta tehdään kursorista rivin loppuun Ctrl + Shift + Home valitse kaikki teksti kursorin ja tiedoston alun väliltä Ctrl + Shift + End valitse kaikki teksti kursorin ja tiedoston lopun väliltä Lisäksi: maalaa rivejä ja paina sarkaita sisentää vastaavasti Shift+sarkain poistaa sisennystä

  1. Nettiselaimet

Ctrl + T Luo uusi välilehti Ctrl + Tab Siirry seuraavalle välilehdelle Ctrl + Shift + Tab Siirry edelliselle välilehdelle F11 Koko ruudun näyttötila päälle (pois pääset klikkaamalla uudestaan F11 F6 Siirry osoiteriville (ainakin Firefox, IE) F6, Tab Siirry Google-hakupalkkiin

  1. Visual Studio

Näitä voi käyttää Visual Studiossa ohjelmoidessa. Pikanäppäimiä voi myös muuttaa halutessaan asetuksista.

Seuraavissa kohdissa esimerkiksi

Ctrl + E, C

tarkoittaa, 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.

Perustoiminnot F5 suorittaa ohjelman eli käynnistää pelin F6 käännä ohjelma (build) ilman pelin käynnistämistä Ctrl + F etsi Ctrl + H etsi ja korvaa F3 etsi seuraava F2 uudelleennimeä Ctrl + E, D siistii koodin Muita näppäinkomentoja F12 menee määritelmän kohtaan koodissa (esim. aliohjelmaan) Ctrl + E, C kommentoi valinnan Ctrl + E, U poistaa valinnan kommenteista Ctrl + Miinus palaa edelliseen kohtaan Ctrl + Shift + Miinus palaa seuraavaan kohtaan Ctrl + Välilyönti Näyttää intellisensen tai täydentää lauseen loppuun Ctrl + M, M Kutistaa tai laajentaa koodia (esim. region) Ctrl + K, C Kommentoi valinta Ctrl + K, U Poista valinta kommenteista Ctrl + K, R Etsii koodista kaikki viittaukset kursorin alla olevaan (muuttujan tai funktion) nimeen Ctrl + P, Enter Luo aliohjelmakutsusta rungon. Ctrl + . Avaa pikkumenun joka virheen vasemmassa alakulmassa. Shift + F10 Sama kuin hiiren oikean näppäimen menu Ctrl-W viittaa window:iin, seuraavilla näppäinkomennoilla siis pääset liikkumaan ikkunoiden välillä

Ctrl + W, S Siirry Solution Exploreriin (esc-näppäimellä pääset takaisin) Ctrl + W, E Näytä Error List -paneeli Näppäinkomennot debug-moodissa F9 luo breakpointin F10 hyppää yli F11 hyppää sisään Shift + F11 hyppää ohi Ctrl + F5 jatkaa debuggausta Shift + F5 lopettaa debuggauksen IntelliSense?-täydennyksiä 'prop' + 2 x Tab public int MyProperty? { get; set; } 'if' + 2 x Tab if ( true ) { } 'for' + 2 x Tab for (int i = 0; i < length; i++) { } 'switch' + 2 x Tab switch (switch_on) { default: } 'while' + 2 x Tab while ( true ) { } Katso lisää VS-pikanäppäimiä:

http://msdn.microsoft.com/en-us/library/vstudio/da5kh0wa.aspx http://www.dofactory.com/ShortCutKeys/ShortCutKeys.aspx http://www.shortcutworld.com/en/win/Visual-Studio_2010.html

Attachments Download in other formats: Plain Text PDF Visual Studio Kurssilla 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.

Professional vs. express...

käynnistäminen Visual studion voi käynnistää käynnistä-valikosta valitsemalla

Käynnistä -> Kaikki ohjelmat -> Microsoft Visual Studio 2008 -> Microsoft Visual Studio 2008

Englanninkielisessä Windowsissa

Start -> All Programs -> Microsoft Visual Studio 2008 -> Microsoft Visual Studio 2008

TODO: miten express...

Perusnäkymä Visual Studion ikkuna näyttää tältä:

Ikkunassa on seuraavia osia:

Yläreunassa on työkalurivi, josta löytyy useimmin tarvittavat toiminnot. Suurimman osan ikkunasta vie yleensä editori, jossa on koodi jota kirjoitetaan. Jos yhtään tiedostoa ei ole avattu, tässä ei näy mitään. Ikkunan oikeassa reunassa on projektinäkymä, jossa näkyy projektissa tarvittavat tiedostot. Nämä osat on korostettu seuraavassa kuvassa:

Avatut tiedostot näkyvät välilehtinä editorin yläreunassa. Välilehteä klikkaamalla voi vaihtaa avattujen tiedostojen välillä.

Projektit ja Solutionit Visual 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ää.

Seuraavasta 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.

Kun tuplaklikkaat tiedostoa projektinäkymästä, aukeaa tiedosto editoriin.

Editori Ohjeita tekstieditorin käyttöön: Editori.

Tekstin editointi tapahtuu samaan tapaan kuin muissakin editoreissa. Lisäksi käytössä on monia ominaisuuksia erityisesti ohjelmakoodin kirjoittamiseen, kuten Koodin täydennys.

XBox 360-projektin luominen XBox 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.

Kun 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

x86 PC-peliä varten Xbox 360

Muita toimintoja Uuden kirjastoa käyttävän projektin luominen on selitetty omalla sivullaan: PongProjektinLuominen? Kannattaa opetella hyödyllisiä näppäinkomentoja helpottamaan koodin kirjoittamista. Attachments Download in other formats: Plain Text PDF Työkalujen käyttöohjeet Tällä sivulla on ohjeita kurssilla käytettävien ohjelmien käyttöön.

Yleisiä ohjeita Tekstieditorin käyttäminen Näppäinkomentoja koneen käyttöä nopeuttamaan Zip-tiedoston purkaminen Ohjelmointi Visual Studio -ohjelmointiympäristö Ohjelman kääntäminen ja ajaminen IntelliSensen? käyttö Debuggauksen perusteet? Pelien siirtäminen Xbox 360 -pelikonsoliin Jypeli-kirjasto Jypeli-kirjaston käyttöohjeet Oman pelin asennus Oman pelin asentaminen muihin koneisiin Asennusohjelman tekeminen (vain Visual Studio 2008 Professional) Versionhallinta TortoiseSVN:n käyttö Grafiikka Paint.NET:in käyttö GIMP:in käyttö Läpinäkyvyyden lisääminen kuvaan Läpinäkyvän kuvan tekeminen Paint.NET:illä Äänet ja musiikki Audacityn käyttö äänitiedostojen käsittelyyn sfxr:n käyttö retrotyyppisten äänitehosteiden tekemiseen Slashstone SoundFX Builderin käyttö äänitehosteiden tekemiseen MilkyTracker? musiikinteko-ohjelman peruskäyttö Download in other formats: Plain Text PDF