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

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

Jypelin käyttöohjeet» Miten voin liittää törmäyksiin tapahtumia?

1. Miten tehdään peliin toinen maila?

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

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

Jypelin käyttöohjeet» Ruutukentän luominen

1. Taustatietoa näppäimistönkuuntelusta

Jypelin käyttöohjeet» Miten lisään ohjaimet peliin

Jypelin käyttöohjeet» Ruutukentän luominen

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin peruskurssi Y1

Harjoitus Olkoon olemassa luokat Lintu ja Pelikaani seuraavasti:

ITKP102 Ohjelmointi 1 (6 op)

Tentti erilaiset kysymystyypit

Tentti erilaiset kysymystyypit

Muuttujien määrittely

Ohjelmoinnin jatkokurssi, kurssikoe

Sisältö. 22. Taulukot. Yleistä. Yleistä

ITKP102 Ohjelmointi 1 (6 op)

Ohjelmoinnin perusteet Y Python

Ohjelmassa henkilön etunimi ja sukunimi luetaan kahteen muuttujaan seuraavasti:

Ohjelmoinnin peruskurssi Y1

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

Informaatioteknologian laitos Olio-ohjelmoinnin perusteet / Salo

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

Ohjelmointitaito (ict1td002, 12 op) Kevät Java-ohjelmoinnin alkeita. Tietokoneohjelma. Raine Kauppinen

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

Vaatimusten versiointi DOORSissa

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin peruskurssi Y1

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

OpenOffice.org Base 3.1.0

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python

Ohjelmointi 1 C#, kevät 2014, 2. uusintatentti NIMI:

815338A Ohjelmointikielten periaatteet Harjoitus 3 vastaukset

Olio-ohjelmointi Javalla

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

Apuja ohjelmointiin» Yleisiä virheitä

Sokkelon sisältö säilötään linkitetyille listalle ja tekstitiedostoon. Työ tehdään itsenäisesti yhden hengen ryhmissä. Ideoita voi vaihtaa koodia ei.

Pythonin alkeet Syksy 2010 Pythonin perusteet: Ohjelmointi, skriptaus ja Python

Taulukot. Jukka Harju, Jukka Juslin

Jypelin käyttöohjeet» Millaisia olioita on olemassa?

List-luokan soveltamista. Listaan lisääminen Listan läpikäynti Listasta etsiminen Listan sisällön muuttaminen Listasta poistaminen Listan kopioiminen

2. Lisää Java-ohjelmoinnin alkeita. Muuttuja ja viittausmuuttuja (1/4) Muuttuja ja viittausmuuttuja (2/4)

Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op Rajapinnat ja sisäluokat

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python

Tietorakenteet (syksy 2013)

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

Tilastokeskuksen rajapintapalveluiden käyttöönotto QGISohjelmistossa

Ohjelmoinnin perusteet Y Python

Ohjeistus pöytäkirjan käyttöön. Suomen Lentopalloliitto ry

Liite 1. Projektin tulokset (Semaforit Javassa) Jukka Hyvärinen Aleksanteri Aaltonen

Taulukot. 1. Taulukon rakenne: ICT01D Elina Ulpovaara

Harjoitustyö: virtuaalikone

Ohjelmointitaito (ict1td002, 12 op) Kevät Java-ohjelmoinnin alkeita. Tietokoneohjelma. Raine Kauppinen

Luokan muodostimet (Constructors)

Tietotyypit ja operaattorit


ITKP102 Ohjelmointi 1 (6 op), arvosteluraportti

1 Tehtävän kuvaus ja analysointi

Kappale 20: Kantaluvut

Ohjelmoinnin perusteet Y Python

Kääreluokat (oppikirjan luku 9.4) (Wrapper-classes)

Tähtitieteen käytännön menetelmiä Kevät 2009 Luento 4: Ohjelmointi, skriptaus ja Python

Kirjoita oma versio funktioista strcpy ja strcat, jotka saavat parametrinaan kaksi merkkiosoitinta.

IDL - proseduurit. ATK tähtitieteessä. IDL - proseduurit

Käyttöliittymän muokkaus

815338A Ohjelmointikielten periaatteet Harjoitus 2 vastaukset

ATK tähtitieteessä. Osa 3 - IDL proseduurit ja rakenteet. 18. syyskuuta 2014

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

Harjoitus 2 (viikko 45)

ITKP102 Ohjelmointi 1 (6 op)

Algoritmit 1. Demot Timo Männikkö

Merkkijono on palindromi, jos se säilyy samana, vaikka sen kääntää väärinpäin.

Ohjelmointi 2. Jussi Pohjolainen. TAMK» Tieto- ja viestintäteknologia , Jussi Pohjolainen TAMPEREEN AMMATTIKORKEAKOULU

ITKP102 Ohjelmointi 1 (6 op), arvosteluraportti

7. Oliot ja viitteet 7.1

Ohjelmoinnin perusteet Y Python

Sisällys. 1. Omat operaatiot. Yleistä operaatioista. Yleistä operaatioista

RockID-varastonhallintajärjestelmän käyttöohje. v. 1.0

Luokka Murtoluku uudelleen. Kirjoitetaan luokka Murtoluku uudelleen niin, että murtolukujen sieventäminen on mahdollista.

Olion elinikä. Olion luominen. Olion tuhoutuminen. Olion tuhoutuminen. Kissa rontti = null; rontti = new Kissa();

1. Omat operaatiot 1.1

Metodien tekeminen Javalla

ITKP102 Ohjelmointi 1 (6 op)

Arviointimenetelmän valinta: Arviointimatriisi

Luokat ja oliot. Ville Sundberg

VHS-kasetin digitointi (DVD+RW)

T e k s t i n k ä s i t t e l y ä s e l k o k i e l e l l ä WORD

Ohjelmoinnin perusteet, kurssikoe

1. Mikä on lukujen 10, 9, 8,..., 9, 10 summa? 2. Mikä on lukujen 10, 9, 8,..., 9, 10 tulo? =?

Numeropelissä 3x3-ruudukko sisältää luvut 1, 2,, 9. Tehtäväsi on järjestää ruudukko näin:

Lainaosuusarviolaskurin Esimerkki 6 Lainaosuussuoritusten laskeminen tasalyhennyslainalle

Aloitustunti MAA22 Starttikurssi pitkän matematiikan opiskeluun

Sisällys. Metodien kuormittaminen. Luokkametodit ja -attribuutit. Rakentajat. Metodien ja muun luokan sisällön järjestäminen. 6.2

Ohjelmoinnin perusteet Y Python

Transkriptio:

Jypelin käyttöohjeet» Miten saan peliin pistelaskurin? Pistelaskurin saamiseksi tarvitaan kaksi osaa: Laskuri, joka laskee pisteitä Olio, joka näyttää pisteet ruudulla Laskuri voi olla esimerkiksi tyyppiä IntMeter tai DoubleMeter. IntMeter laskee kokonaislukuja ja DoubleMeter desimaalilukuja. Muuten niiden käyttö ei oikeastaan eroa toisistaan. Tässä esimerkissä tehdään IntMeter-tyyppinen laskuri ja kiinnitetään se Label-tyyppiseen olioon, joka osaa näyttää ruudulla laskurin arvon. Laskurin luominen Tehdään ensin yksinkertainen esimerkki pistelaskurista ja sen näytöstä: IntMeter pistelaskuri; void LuoPistelaskuri() pistelaskuri = new IntMeter(0); Label pistenaytto = new Label(); pistenaytto.x = Screen.Left + 100; pistenaytto.y = Screen.Top - 100; pistenaytto.textcolor = Color.Black; pistenaytto.color = Color.White; pistenaytto.bindto(pistelaskuri); Add(pisteNaytto); Ensin luodaan IntMeter-tyyppinen laskuri (huom. se on tässä esimerkissä attribuuttina) ja Label-tyyppinen tekstikenttä ja tehdään niille halutut asetukset. Tekstikentästä ei tarvitse tehdä attribuuttia, jos sen paikkaa, väriä tai muuta ominaisuutta ei muuteta sen luomisen jälkeen. Tekstikentän tekstin väriä voi muuttaa TextColor-ominaisuudesta jotta se erottuu paremmin. Color-ominaisuus asettaa tekstikentälle taustavärin, jos sellainen halutaan. Oletustaustaväri on läpinäkyvä, eli Color.Transparent. Laskurin luonnissa parametrina annetaan sen oletusarvo, eli mistä arvosta laskuri lähtee liikkeelle (tässä laskuri lähtee nollasta). Lopuksi pitää muistaa kiinnittää laskuri tekstikenttään. Silloin tekstikenttä osaa automaattisesti näyttää laskurin arvon, vaikka arvo muuttuukin. Lopuksi vielä lisätään tekstikenttä ruudulle Add-kutsulla. Esimerkissä tehtiin nämä asiat riveillä: pistenaytto.bindto(pistelaskuri); Add(pisteNaytto); Jypelin käyttöohjeet» Miten saan peliin pistelaskurin? 1

Lopuksi kutsutaan tätä kirjoittamaamme LuoPistelaskuri-aliohjelmaa pelin Begin-aliohjelmasta, jotta siinä oleva ohjelmakoodi tulee suoritetuksi. LuoPistelaskuri(); Laskurin laskentaväli Oletuksena laskuri voi saada arvoja nollasta ylöspäin niin pitkälle kuin lukualuetta riittää. Laskurin oletusarvo, eli arvo josta se aloittaa on 0. Näitä kaikkia voidaan muuttaa parametreilla haluttaessa. Esimerkiksi jos laskurin halutaan saavan myös negatiivisia arvoja, on sille alustettaessa annettava parametrina negatiivinen minimiarvo. Aloittaminen arvosta 1 kokonaisluvuilla IntMeter laskuri = new IntMeter(1) tai desimaaliluvuilla DoubleMeter laskuri = new DoubleMeter(1) Positiiviset ja negatiiviset kokonaisluvut IntMeter laskuri = new IntMeter(0, int.minvalue, int.maxvalue) Positiiviset ja negatiiviset desimaaliluvut DoubleMeter laskuri = new DoubleMeter(0, double.negativeinfinity, double.positiveinfinity) Lukuväli -100:sta 100:an oletusarvolla 10 kokonaisluvuilla IntMeter laskuri = new IntMeter(10, -100, 100) tai desimaaliluvuilla DoubleMeter laskuri = new DoubleMeter(10, -100, 100) Otsikko laskurille Usein on järkevää lisätä tekstikentällä otsikko, jotta tiedetään mitä laskuri ruudulla laskee. Tämä voidaan tehdä asettamalla teksti sen Title-ominaisuuteen: pistenaytto.title = "Pisteet"; Laskurin luominen 2

Nyt luomamme tekstikenttä näyttää tältä: Tarkempi otsikon määrittäminen Jos haluat vaikuttaa tarkemmin siihen, miltä laskurin arvo näyttää otsikossa, voit käyttää siihen C#:n?muotoilumerkkijonoja. pistenaytto.intformatstring = "Pisteitä: 0:D1"; Samoin jos labelille annetaan taustaväri, voi esim formaatilla: " Pisteitä: 0:D1 " laittaa tyhjän molemmin puolin tekstiä. Muoto D3 tulostaisi laskurin aina niin, että siinä on vähintään kolme numeroa, esim 005. Vastaavasti jos halutaan DoubleMeter, niin käytetään DoubleFormatString. Laskurin arvon muuttaminen Laskurin arvoa voidaan muuttaa sen Value-ominaisuudesta. Tämä kasvattaa laskurin arvoa yhdellä: pistelaskuri.value += 1; Tämä vähentää laskurin arvoa yhdellä: pistelaskuri.value -= 1; Tämä asettaa laskurin arvoksi arvon 5: pistelaskuri.value = 5; Laskurin arvon muuttaminen vähitellen Jos halutaan, että laskuri kasvaa vaikkapa viiden sekunnin aikana kolme yksikköä, voidaan sille sanoa pistelaskuri.addovertime(3, 5); Haluttaessa kolmanneksi parametriksi voidaan antaa aliohjelman nimi, joka suoritetaan kun lisäys on tehty. Näin saadaan helposti tehtyä esimerkiksi erilaisia voimamittareita. Mittarista voidaan myös vähentää samalla periaatteella käyttämällä negatiivista arvoa. pistelaskuri.addovertime(-3, 5); Laskurin arvon nollaus Laskuri voidaan nollata eli palauttaa oletusarvoonsa seuraavalla käskyllä: Otsikko laskurille 3

pistelaskuri.reset(); Laskurin ylä- ja alarajat sekä tapahtumat niille Pistelaskuriin voi myös lisätä tapahtuman, kun se saavuttaa sille asetetun suurimman tai pienimmän arvon. Tapahtuman kuuntelu tehdään näin: IntMeter keratytesineet = new IntMeter(0); laskuri.maxvalue = 5; laskuri.upperlimit += KaikkiKeratty; Tässä tapahtuman käsittelijän KaikkiKeratty suoritukseen siirrytään, kun laskuri saavuttaa suurimman arvonsa (5). Tapahtumankäsittelijä on yksinkertainen aliohjelma ilman parametreja. Seuraava aliohjelma näyttää tekstin "Pelaaja 1 voitti pelin". void KaikkiKeratty() MessageDisplay.Add("Pelaaja 1 voitti pelin."); Vastaavasti voidaan tehdä alarajalle: IntMeter pelaajanelamat = new IntMeter(3); laskuri.minvalue = 0; laskuri.lowerlimit += PelaajaHaviaa; missä tapahtumankäsittelijä voi olla esimerkiksi void PelaajaHaviaa() MessageDisplay.Add("Pelaaja 1 hävisi pelin."); Muut tapahtumat Ylä- ja alaraja eivät ole ainoita arvoja, joita voidaan tarkkailla. Mille tahansa mittarin arvolle voi asettaa tapahtumia AddTrigger-metodin avulla. Seuraava esimerkki soittaa äänen, kun pelaaja saa yli 9000 pistettä: pistelaskuri.addtrigger(9000, TriggerDirection.Up, SoitaAani);... void SoitaAani() PlaySound("OVER NINE THOUSAND"); AddTrigger-aliohjelman ensimmäinen parametri on luonnollisesti mittarin arvo, ja kolmanneksi annetaan aliohjelma, jonka tapahtuma laukaisee. Laskurin arvon nollaus 4

Toinen parametri määrää, kummasta suunnasta tultaessa tapahtuma suoritetaan. Esimerkiksi ylläolevassa esimerkissä mittarin laskiessa arvon 9000 alapuolelle ääntä ei soiteta. Sallitut arvot ovat TriggerDirection.Up (mittarin arvo kasvaa), TriggerDirection.Down (mittarin arvo vähenee) ja TriggerDirection.Irrelevant (ei väliä, suoritetaan kummassakin tapauksessa). Tapahtumien poistaminen Rajatapahtumat voidaan poistaa -=-operaattorilla. laskuri.lowerlimit -= PelaajaHaviaa; laskuri.upperlimit -= PelaajaVoittaa; AddTrigger-metodilla lisätyt tapahtumat voidaan poistaa RemoveTriggers-metodilla antamalla parametriksi joko aliohjelman nimi tai pisteraja. laskuri.removetriggers(9000); tai laskuri.removetriggers(soitaaani); Kaikki triggerit saa pois ClearTriggers-aliohjelmalla laskuri.cleartriggers(); Muut tapahtumat 5