1. Miten tehdään peliin toinen maila?

Samankaltaiset tiedostot
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 Aliohjelmakutsu laskureita varten. 2. Laskurin luominen. Muilla kielillä: English Suomi

1. Taustatietoa näppäimistönkuuntelusta

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

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» Miten voin liittää törmäyksiin tapahtumia?

Jypelin käyttöohjeet» Ruutukentän luominen

Apuja ohjelmointiin» Yleisiä virheitä

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

ITKP102 Ohjelmointi 1 (6 op)

Jypelin käyttöohjeet» Ruutukentän luominen

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

C:\MyTemp\ohj1\ohjdemot\k2012\demot\vastaukset\demo11\PP1\TokaPisin.cs 1 using System; 2 using System.Collections.Generic; 3 using System.

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

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

ITKP102 Ohjelmointi 1 (6 op)

1. Mitä tehdään ensiksi?

ITKP102 Ohjelmointi 1 (6 op)

Harjoitus Olkoon olemassa luokat Lintu ja Pelikaani seuraavasti:

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

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

C# Windows ohjelmointi perusopas

Metodien tekeminen Javalla

Metodit. Metodien määrittely. Metodin parametrit ja paluuarvo. Metodien suorittaminen eli kutsuminen. Metodien kuormittaminen

815338A Ohjelmointikielten periaatteet Harjoitus 5 Vastaukset

C# olio-ohjelmointi perusopas

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

ITKP102 Ohjelmointi 1 (6 op)

1. Omat operaatiot 1.1

UUSI AIKA UUDET TAIDOT Valtakunnalliset virtuaaliopetuksen päivät 2010

Javan perusteet. Ohjelman tehtävät: tietojen syöttö, lukeminen prosessointi, halutun informaation tulostaminen tulostus tiedon varastointi

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

ITKP102 Ohjelmointi 1 (6 op), arvosteluraportti

Ohjelmoinnin jatkokurssi, kurssikoe

Luokat ja oliot. Ville Sundberg

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

Ohjelmointi 2 / 2010 Välikoe / 26.3

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

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

7. Näytölle tulostaminen 7.1

Java-kielen perusteet

Operaattorin ylikuormitus ja käyttäjän muunnokset

Javan perusteita. Janne Käki

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

Java-kielen perusteita

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

KAAVAT. Sisällysluettelo

Taulukot. Jukka Harju, Jukka Juslin

ITKP102 Ohjelmointi 1 (6 op), arvosteluraportti

TIEP114 Tietokoneen rakenne ja arkkitehtuuri, 3 op. Assembly ja konekieli

1. Kun käyttäjä antaa nollan, niin ei tulosteta enää tuloa 2. Hyväksy käyttäjältä luku vain joltain tietyltä väliltä (esim tai )

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

9. Periytyminen Javassa 9.1

ITKP102 Ohjelmointi 1 (6 op), arvosteluraportti

T Olio-ohjelmointi Osa 3: Luokka, muodostin ja hajotin, this-osoitin Jukka Jauhiainen OAMK Tekniikan yksikkö 2010

T Olio-ohjelmointi Osa 5: Periytyminen ja polymorfismi Jukka Jauhiainen OAMK Tekniikan yksikkö 2010

Ohjelmointi 1 / 2009 syksy Tentti / 18.12

811120P Diskreetit rakenteet

1. Olio-ohjelmointi 1.1

Operaattoreiden ylikuormitus. Operaattoreiden kuormitus. Operaattoreiden kuormitus. Operaattoreista. Kuormituksesta

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

Olio-ohjelmointi Javalla

Toinen harjoitustyö. ASCII-grafiikkaa 2017

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

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

Ohjelmoinnin perusteet Y Python

Ohjelmointi 2, välikoe

8. Näppäimistöltä lukeminen 8.1

19. Olio-ohjelmointia Javalla 19.1

Sisällys. 19. Olio-ohjelmointia Javalla. Yleistä. Olioiden esittely ja alustus

ITKP102 Ohjelmointi 1 Tentti

Matriisit, L20. Laskutoimitukset. Matriisikaavoja. Aiheet. Määritelmiä ja merkintöjä. Laskutoimitukset. Matriisikaavoja. Matriisin transpoosi

Javan GUI Scratchaajalle

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

Peilaus pisteen ja suoran suhteen Pythonin Turtle moduulilla

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

OpeOodi Opiskelijalistojen tulostaminen, opiskelijoiden hallinta ja sähköpostin lähettäminen

C-kielessä taulukko on joukko peräkkäisiä muistipaikkoja, jotka kaikki pystyvät tallettamaan samaa tyyppiä olevaa tietoa.

Rajapinta (interface)

ITKP102 Ohjelmointi 1, syksy 2007

Tässä tehtävässä käsittelet metodeja, listoja sekä alkulukuja (englanniksi prime ).

Informaatioteknologian laitos Olio-ohjelmoinnin perusteet / Salo

CEM DT-3353 Pihtimittari

815338A Ohjelmointikielten periaatteet Harjoitus 3 vastaukset

12 Mallit (Templates)

TIEP114 Tietokoneen rakenne ja arkkitehtuuri, 3 op. Assembly ja konekieli

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

SQL-perusteet, SELECT-, INSERT-, CREATE-lauseet

17 BUDJETOINTI. Asiakaskohtainen Budjetti Ylläpito-ohjelma. Dafo Versio 10 BUDJETOINTI. Käyttöohje. BudgCust Yleistä

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

Alkuarvot ja tyyppimuunnokset (1/5) Alkuarvot ja tyyppimuunnokset (2/5) Alkuarvot ja tyyppimuunnokset (3/5)

5. HelloWorld-ohjelma 5.1

Rekursiolause. Laskennan teorian opintopiiri. Sebastian Björkqvist. 23. helmikuuta Tiivistelmä

8/20: Luokat, oliot ja APIt

Metodien tekeminen Javalla

Interaktiivinen tarinankerronta

Written by Administrator Monday, 05 September :14 - Last Updated Thursday, 23 February :36

Tietorakenteet ja algoritmit syksy Laskuharjoitus 1

3. Muuttujat ja operaatiot 3.1

Helsingin yliopisto WebOodi 1 Opiskelijarekisteri Versio 3.2. Tenttityökalu

Transkriptio:

Muilla kielillä: English Suomi Pong-peli, vaihe 4 Tässä oppaassa teemme toisenkin mailan. 1. Miten tehdään peliin toinen maila? Maila tehtiin edellisessä vaiheessa, aliohjelmassa LuoKentta, seuraavasti: maila.x = Level.Left + 20.0; maila.y = 0.0; Toisen mailan voisimme tehdä tietysti samaan tapaan kuin ensimmäisenkin. Voisimme kopioida ensimmäisen mailan luovat rivit ja vaihtaa joka riville muuttujan maila tilalle maila2 sekä muuttaa toisen mailan koordinaatit. Jos myöhemmin peliin haluttaisiin vielä lisää mailoja, voisimme jälleen kopioida rivit, vaihtaa muuttujien nimet ja tarvittavat ominaisuudet... Mutta kun mailat kerran tehdään ihan samaan tapaan, eikö tässä tehdä sama työ moneen kertaan? Voitaisiinko mailan luominen ohjelmoida kerran niin, että ainoastaan mailan paikka kerrotaan kummallekin mailalle erikseen? Kyllä voidaan! Mailan tekeminen voisi olla oma aliohjelma, jolle ainoastaan kerrotaan mihin halutaan tehdä uusi maila. Näin samalla aliohjelmalla voitaisiin tehdä monta eri mailaa. 1. Miten tehdään peliin toinen maila? 1

2. Mailoja luova aliohjelma ja parametrit Tehdään aliohjelma, jota kutsumalla tietokone tekee aina uuden mailan ja lisää sen peliin haluamaamme paikkaan. Koska eri mailoille tarvitaan eri koordinaatit, täytyy tämä pystyä jotenkin kertomaan aliohjelmalle. Annetaan koordinaatit aliohjelmalle parametreina. Aliohjelman parametrit luetellaan aliohjelman nimen jälkeen sulkujen sisällä. Ensin kerrotaan parametrin tyyppi ja sen jälkeen parametrin nimi. Useammat parametrit erotetaan pilkulla toisistaan. Kun aliohjelmaa kutsutaan, sille täytyy antaa juuri sellaiset parametrit mitä se haluaa. Lisää siis seuraavanlainen aliohjelma: LuoMaila-aliohjelman parametrit x ja y ovat tyyppiä double. Tyyppiä double käytetään desimaalilukujen esittämiseen. Siirrä punaisella merkityt mailan luomiseen liittyvät koodirivit LuoMaila-aliohjelmaan: maila.x = Level.Left + 20.0; maila.y = 0.0; Level.Background.Color = Color.Black; Otetaan vielä parametrit käyttöön. Sijoitetaan LuoKentta-aliohjelmassa parametrit x ja y mailan koordinaateiksi maila.x ja maila.y. 2. Mailoja luova aliohjelma ja parametrit 2

Muutosten jälkeen LuoMaila näyttää tältä: maila.x = x; maila.y = y; Voit kokeilla ajaa pelin, mutta yhtään mailaa ei vielä näy. Aliohjelmaa LuoMaila ei vielä kutsuta missään, eli sen koodirivejä ei koskaan suoriteta. 3. Mailoja luovan aliohjelman kutsuminen ja parametrien välittäminen Aliohjelman avulla mailoja on helppo tehdä useampikin. Äsken siirrettyjen rivien tilalle kirjoitetaan kaksi aliohjelmakutsua: LuoMaila(Level.Left + 20.0, 0.0); LuoMaila(Level.Right - 20.0, 0.0); Level.Background.Color = Color.Black; Aliohjelman kutsussa aliohjelmalle annettavat parametrit annetaan samassa järjestyksessä kuin ne aliohjelmassa otetaan vastaan. Tässä tapauksessa siis ensin x-koordinaatti ja sitten y-koordinaatti. Kutsussa ei luetella parametrien tyyppejä (kuten double). Tämä kuva havainnollistaa sitä, miten parametrit välittyvät aliohjelmakutsusta mailan koordinaateiksi: 3. Mailoja luovan aliohjelman kutsuminen ja parametrien välittäminen 3

Huomaa, että parametri voi olla myös yhteen- tai vähennyslaskun tulos. Esimerkiksi lasku Level.Left + 20.0 suoritetaan ennen aliohjelman kutsua ja siitä saatava tulos annetaan aliohjelmalle parametriksi. Nyt pelissä pitäisi näkyä kaksi mailaa! 4. Lopputulos Pong-peli kahdella mailalla näyttää nyt tältä: using System; using System.Collections.Generic; using System.Linq; using System.Text; using Jypeli; using Jypeli.Assets; using Jypeli.Controls; using Jypeli.Effects; using Jypeli.Widgets; public class Pong : PhysicsGame PhysicsObject pallo; public override void Begin() LuoKentta(); AloitaPeli(); Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli"); LuoMaila(Level.Left + 20.0, 0.0); LuoMaila(Level.Right - 20.0, 0.0); Level.BackgroundColor = Color.Black; void AloitaPeli() Vector impulssi = new Vector(500.0, 0.0); pallo.hit(impulssi); 4. Lopputulos 4

maila.x = x; maila.y = y; 4. Lopputulos 5