WEBVTT Kind: captions; Language: fi 1 00:00:02.140 --> 00:00:03.940 Oikein hyvää huomenta kaikille. 2 00:00:03.940 --> 00:00:08.950 Tervetuloa seuraamaan luentoa numero 12 mut yksi kurssi kevät kaksineljä. 3 00:00:08.950 --> 00:00:11.830 Tän päivän aiheena olisi tarkoitus jatkaa sitä olio ohjelmointia. 4 00:00:11.830 --> 00:00:13.730 Mistä eilen aloitettiinkin. 5 00:00:13.730 --> 00:00:17.450 Tehdään tänään ehkä marginaalisesti mielenkiintoisempi esimerkki. 6 00:00:17.450 --> 00:00:21.980 Tän tapainen juttu olisi tänään tarkoitus tehdä eleenä siinä pieni pallo, jolla voi liikkua 7 00:00:21.980 --> 00:00:26.650 näppäimistön avulla ja sitten meillä on täällä tämmöisiä palikoita, joita voi tökkiä ja 8 00:00:26.650 --> 00:00:31.550 näillä palikoilla nyt on ominaisuuksia eli eli paitsi että me voidaan tökkiä niitä, ne 9 00:00:31.550 --> 00:00:35.400 vaihtaa väriä ja niinku nähdään tuosta niin jokaisella. 10 00:00:35.400 --> 00:00:40.600 Kappaleella mihin voi törmätä, on vähän niinku oma oma väripaletti ja sitten täällä on tämmöisiä 11 00:00:40.600 --> 00:00:45.720 isompia kappaleita isompia neliöitä, joilla näyttää olevan ääretön maassa, mikä tarkoittaa sitä, 12 00:00:45.720 --> 00:00:50.800 että ne ei siitä liiku vaikka niitä kuinka tökkii ja sitten niillä tulee vielä tämmöinen kiva 13 00:00:50.800 --> 00:00:54.870 häviämisen animaatio kun se väripaletti sieltä on käyty läpi. 14 00:00:54.870 --> 00:00:57.790 Eli tavallaan meillä on tässä ikään kuin kappaleita 15 00:00:57.790 --> 00:01:00.050 tai palikoita, joita voi tökkiä niillä. 16 00:01:00.050 --> 00:01:02.290 Kaikilla on vaihtuva väri osa. 17 00:01:02.290 --> 00:01:05.350 Niistä on pikkuisen erilaisia kuin toiset ja osalla on sitten tämmöinen 18 00:01:05.350 --> 00:01:10.030 toiminto, jolla se sitten saadaan häviämään tolleen nätisti. 19 00:01:10.030 --> 00:01:15.070 Eli tästä nyt ehkä nokkelimmat sitten huomaakin vähän, että minkälaisia asioita tavallaan tuohon 20 00:01:15.070 --> 00:01:19.770 olio ohjelmointiin liittyen olisi tarkoitus tässä nyt lähteä hyödyntämään. 21 00:01:19.770 --> 00:01:23.640 Eli eli mä voisin vaikka vielä ottaa tuota valmista koodia mitä siellä tulee 22 00:01:23.640 --> 00:01:26.670 tulee olemaan eli tän näköinen jutska tässä olisi tarkoitus. 23 00:01:26.670 --> 00:01:29.310 Tehdä tai ikään kuin ohjelman rakenteena. 24 00:01:29.310 --> 00:01:31.770 Eli meillä on pääohjelma täällä. 25 00:01:31.770 --> 00:01:33.810 Palikat, jossa me luodaan. 26 00:01:33.810 --> 00:01:38.910 Sori mä laitan tuosta tuon suomalaisen päälle eli meillä on pääohjelman täällä palikat luokassa 27 00:01:38.910 --> 00:01:44.490 jossa tehdään tää liikuteltava pelaaja olio ja sitten tehdään useita tämmöisiä värikkäitä 28 00:01:44.490 --> 00:01:50.930 palikoita siellä sitten meillä on palikkaluokka joka käsittää tai jolloin ominaisuutena värit 29 00:01:50.930 --> 00:01:54.340 ja sitten se voi ottaa vastaan niitä osumia jonka kautta sitten me pystytään hallitsemaan 30 00:01:54.340 --> 00:01:59.990 sitä, että mikä väri meillä on milläkin kertaa menossa ja sitten mä peritään siitä palikkaluokasta 31 00:01:59.990 --> 00:02:03.510 vielä tämmöinen niin sanottu fancy palikka jolla on semmoinen erityinen ominaisuus tai erityinen 32 00:02:03.510 --> 00:02:05.570 toiminto oikeastaan. 33 00:02:05.570 --> 00:02:08.710 Että se voi tuhoutua silleen kivasti, mutta lähdetään nyt yksi kerrallaan tätä 34 00:02:08.710 --> 00:02:13.290 asiaa asiaa liikuttelemaan eteenpäin ja tehdään helpommasta alkaen. 35 00:02:13.290 --> 00:02:18.420 Eli tehdään siinä nyt ensinnäkin vähän vähän mielenkiintoisempi tuosta pelialueesta. 36 00:02:18.420 --> 00:02:22.430 Mulla oli tuossa nyt vähän valmista koodia, niin mä sitä tuohon lopusta eli muutetaan 37 00:02:22.430 --> 00:02:25.730 pelialueen kokoa ja lisäksi laitetaan toi ikkunan koko suureksi. 38 00:02:25.730 --> 00:02:27.590 Näähän on jypissä. 39 00:02:27.590 --> 00:02:30.160 Oletuksena on varmaan historiallisista syistä suhteellisen pieniä nää 40 00:02:30.160 --> 00:02:34.880 pelialue ja ikkunan kokoa, mutta mä laitan nyt ne tolleen että ne on ikään 41 00:02:34.880 --> 00:02:37.410 kuin täsmää tommoiseen full HD kokoiseen näyttö. 42 00:02:37.410 --> 00:02:41.130 Resoluutioon ja kun mä sen tuosta nyt laitan päälle. 43 00:02:41.130 --> 00:02:46.650 Niin se jaha eipä se näköjään nyt mennytkään kuitenkaan isommaksi set windows saisi. 44 00:02:46.650 --> 00:02:48.550 Mitäs mä nyt että tein väärin? 45 00:02:48.550 --> 00:02:54.400 Tässä tarkistetaan tilanne. Joo OK. 46 00:02:54.400 --> 00:02:59.230 Kun me ollaan kuitenkin oikea, että joo mulla oli varmaan väärä tiedosto tuolla auki. 47 00:02:59.230 --> 00:03:04.570 Ei kun hetkinen. Mä jostain syystä on tullut. 48 00:03:04.570 --> 00:03:07.030 Tullut tämmöisiä konflikteja tai varmaan johtuu nyt siitä 49 00:03:07.030 --> 00:03:11.370 niin, että mä teen tätä mun projektiani. 50 00:03:11.370 --> 00:03:15.370 Onedrive mikä ei nyt taida olla kovin hyvä ajatus. 51 00:03:15.370 --> 00:03:18.590 Niin siitä nyt varmaan johtuu niin, että tää nyt vähän käkiistelee tässä 52 00:03:18.590 --> 00:03:21.030 että mikäs projekti mulla nyt tässä onkaan menossa. 53 00:03:21.030 --> 00:03:23.210 Voi hitsiläinen, pitääkö mun tehdä uusi projekti? 54 00:03:23.210 --> 00:03:25.410 Ehkä mä teen uuden projektin, niin ei ei ei jäädä 55 00:03:25.410 --> 00:03:33.720 tätä surkuttelemaan tässä pikku hetki. Eli tähän se tuonne. 56 00:03:33.720 --> 00:03:38.110 Solutioniksi luento 12 ja projektin nimeksi nyt palikat. 57 00:03:38.110 --> 00:03:42.540 Noin. Joo, pahoittelut pieni. 58 00:03:42.540 --> 00:03:46.200 Tekninen kikkailu tässä mä oon huomannut, että toi onedriven 59 00:03:46.200 --> 00:03:49.420 tekeminen ei ole välttämättä hyvä ajatus, mutta. 60 00:03:49.420 --> 00:03:52.460 Se on tähän asti nyt kohtuullisesti toiminut, mutta nyt näköjään siellä noita 61 00:03:52.460 --> 00:03:57.220 konflikteja alkaa herkästi puskemaan, että en oikein tiedä mistä se johtuu, mutta 62 00:03:57.220 --> 00:04:01.380 hyvä siinä on meillä nyt asetettu tuo pelialueen koko ja ikkunan koko sitten 63 00:04:01.380 --> 00:04:06.340 lisäksi mä asetan taustavärin tuossa tämmöiseksi tummansiniseksi ja keskitan 64 00:04:06.340 --> 00:04:08.960 ikkunan myöskin sanomalla center windows. 65 00:04:08.960 --> 00:04:13.180 Jostain syystä toi ikkuna ainakin tässä windowsissa tuppaa menemään 66 00:04:13.180 --> 00:04:19.580 ei keskelle ja vielä siellä joku ahdistus. Niin palikat. 67 00:04:19.580 --> 00:04:25.450 Niin space luento 12 aamul namespace oli varmaan eri täällä. 68 00:04:25.450 --> 00:04:29.950 Niin space luento 12 nyt se pitäisi täsmätä. 69 00:04:29.950 --> 00:04:36.040 Ehkä. No niin. 70 00:04:36.040 --> 00:04:38.820 Pieniä käynnistymisvaikeuksia, mutta nyt siihen saatiin, 71 00:04:38.820 --> 00:04:40.840 saatiin kivan värinen ruutu ja. 72 00:04:40.840 --> 00:04:43.280 Nyt se on tuossa keskellä tota ikkunaa nätisti. 73 00:04:43.280 --> 00:04:45.420 Tää keskellä ruutua hyvä. 74 00:04:45.420 --> 00:04:49.130 No niin nyt sitten laitetaan niitä asioita sinne. 75 00:04:49.130 --> 00:04:54.050 Oikeita olioita sinne ruutuun, eli mä teen ensimmäisenä tuossa pelaaja olion laitetaan 76 00:04:54.050 --> 00:05:00.450 sille nyt vaikka kooksi 60 kertaa 60 ja muodoksi ympyrä eli tätä olisi tarkoitus lähteä 77 00:05:00.450 --> 00:05:04.150 tässä liikuttelemaan ja nythän se ei ole mitään muuta kuin valkoinen pallo siellä keskellä 78 00:05:04.150 --> 00:05:08.230 ruutua, mutta laitan sinne nyt ensimmäisenä vaikka noi kontrollit ja mitenkäs näitä 79 00:05:08.230 --> 00:05:10.580 kontrolleja tässä jypissä lisätään. 80 00:05:10.580 --> 00:05:15.370 Niitähän tehtiin siinä bong tutoriaalissa myöskin eli keyboard. 81 00:05:15.370 --> 00:05:21.270 Listen on aliohjelma kutsu jolla näitä näppäin ja pystytään kytkemään erilaisiin 82 00:05:21.270 --> 00:05:23.840 tapahtumiin ja mä nyt haluan ensimmäisenä vaikkapa. 83 00:05:23.840 --> 00:05:26.410 Näppäin niinku nuoli näppäin vasemmalle. 84 00:05:26.410 --> 00:05:32.260 Tässä siihen liittää jonkin toiminnon siten, että koko ajan kun tää kyseinen painike on 85 00:05:32.260 --> 00:05:38.180 alaspainettuna, niin tapahtuu jotakin ja mikä se on se mitä tapahtuu niin. 86 00:05:38.180 --> 00:05:42.720 Tota se voisi kutsua tällaista liikuta nimistä aliohjelma sitä ei ole vielä 87 00:05:42.720 --> 00:05:46.620 olemassa, mutta mun pitää se kohta kohta siihen valmiiksi tehdä. 88 00:05:46.620 --> 00:05:49.650 No nyt sitten tähän tulisi tämmöinen ohjeteksti. 89 00:05:49.650 --> 00:05:55.740 Tää on niinkuipelin dokumentaatiosta löytyvä asia niin että me lisätään tähän ohjetekstiä, joka 90 00:05:55.740 --> 00:06:00.620 sitten saadaan esille esille sieltä tarvittaessa liikuta pelaajaa vasemmalle. 91 00:06:00.620 --> 00:06:04.380 Mä nyt lisään sen tuohon ja sitten mä lisään tänne parinvalinnasta parametria. 92 00:06:04.380 --> 00:06:07.160 Nyt pahoittelut kun nää ikkunat tässä tuppaa menemään vähän 93 00:06:07.160 --> 00:06:09.230 vähän ärsyttävästi sekaisin mulla tänne kiinni. 94 00:06:09.230 --> 00:06:12.800 Tuosta esc painiketta painamalla, mutta että pelaajaa me halutaan liikuttaa 95 00:06:12.800 --> 00:06:16.680 ja vasemmalle päin niin mä lisään uuden vektorin. 96 00:06:16.680 --> 00:06:21.400 Uuden vektorin vasemmalle päin, jonka avulla mä saan sitten tuolla myöhemmin 97 00:06:21.400 --> 00:06:24.580 toteuttamassa niin aliohjelmassa liikutettua sitä sopivasti. 98 00:06:24.580 --> 00:06:28.980 Eli mä lisään tänne tämmöisen vasemmalle suuntaan osoittavan vektorin 99 00:06:28.980 --> 00:06:34.200 eli x, nolla jaahas on muuten oikealle itse asiassa tuo. 100 00:06:34.200 --> 00:06:36.980 Ei kun se on ylös. Ne laitetaan ylös noin. 101 00:06:36.980 --> 00:06:39.230 Keep up. 102 00:06:39.230 --> 00:06:43.250 Noin eli nyt mulla on siellä riittävät tiedot, jonka avulla mä saan 103 00:06:43.250 --> 00:06:47.750 pelaajaa sitten liikutettua eli toteutan tän aliohjelman niin tän 104 00:06:47.750 --> 00:06:54.160 näppäimen kuuntelijan ja sitä vastaavan tota. 105 00:06:54.160 --> 00:06:56.800 Kutsuttavan aliohjelman toteuttamisesta, niin siitähän löytyy. 106 00:06:56.800 --> 00:07:00.070 Löytyy tosiaan siellä konttorissa ohje ja sitten jypin. 107 00:07:00.070 --> 00:07:09.400 Dokumentaatiossa myöskin, niin en tässä nyt hirveän tarkkaan tätä tätä käy läpi. 108 00:07:09.400 --> 00:07:11.480 Mutta joka tapauksessa 2 parametria. 109 00:07:11.480 --> 00:07:14.800 Mä oon siellä 2 argumenttia tuolla keyboard listen kutsussa niin tarvitaan 110 00:07:14.800 --> 00:07:18.980 2 parametria tänne parametrin luetteloon ensimmäinen niistä on toi liikuteltava 111 00:07:18.980 --> 00:07:22.890 olio ja toisena on sitten suunta johon tätä. 112 00:07:22.890 --> 00:07:26.520 Oli, jota liikutellaan tai no oikeastaan siinä on suunta ja nopeus, koska vektorin 113 00:07:26.520 --> 00:07:31.390 sisältää molemmat asiat ja nyt laitetaan se liikuteltava olio liikkeelle käyttämällä 114 00:07:31.390 --> 00:07:35.340 ihan tota push metodia eli liikuteltava. Push. 115 00:07:35.340 --> 00:07:37.500 Ja argumenttina sinne suuntaaja. 116 00:07:37.500 --> 00:07:41.220 Katsotaan että saadaanko me tota ylöspäin nyt liikuteltua. 117 00:07:41.220 --> 00:07:44.480 Noin nyt se lähtee ylöspäin ja se menee nyt tuosta vielä huti. 118 00:07:44.480 --> 00:07:51.300 Ehkä mä voisin sinne laittaa pelialueelle myöskin reunat sanomalla level. 119 00:07:51.300 --> 00:07:56.130 Level. Create boards noin ja; Sinne perään. 120 00:07:56.130 --> 00:08:00.700 Mä laitan nää pelialueen liittyvät asiat tänne bikinin alkuun, sillä nyt ei periaatteessa 121 00:08:00.700 --> 00:08:07.880 ole väliä että missä kohtaa tota koodia tuon bordersin siellä luo. 122 00:08:07.880 --> 00:08:09.680 Hyvä. 123 00:08:09.680 --> 00:08:12.260 Elikkä nyt ylöspäin näppäintä pitämällä pohjassa niin se saadaan liikkumaan ylöspäin, mutta 124 00:08:12.260 --> 00:08:18.140 vasen oikea ja alas ei vielä toimi niin lisätään ne nyt vastaavasti sinne. 125 00:08:18.140 --> 00:08:19.940 Ja nyt mä otan ajan voitto. 126 00:08:19.940 --> 00:08:23.340 Miksi tuosta vähän copypastea eli kii down ja sitten 127 00:08:23.340 --> 00:08:30.370 left ja rait on ne suunnat jota tässä. Kuunnellaan. 128 00:08:30.370 --> 00:08:34.780 Ja sitten tuolta on muuten ohjetekstiä. Meni väärin eli ylös. 129 00:08:34.780 --> 00:08:41.960 Alas vasemmalle ja oikealle on nuo suunnattu tossa ja sitten nää vektorit 130 00:08:41.960 --> 00:08:47.830 kuntoon eli -2000 osoittaa alaspäin sitten left. 131 00:08:47.830 --> 00:08:53.570 Niin komponentti siellä on negatiivista ja nolla ja oikealle osoittava 132 00:08:53.570 --> 00:08:58.020 vektori voisi olla sitten sellaista että on. 133 00:08:58.020 --> 00:09:03.140 Reilusti positiivista ja nolla hyvä elikkä nyt tämmöinen perus 134 00:09:03.140 --> 00:09:07.850 liikkuminen pitäisi olla mahdollista tässä ja. 135 00:09:07.850 --> 00:09:12.330 Näinhän se näinhän se näyttäisi olevan. 136 00:09:12.330 --> 00:09:16.250 Ja suurin piirtein tämän tapaista varmaan se näppäimistöjen kuuntelu 137 00:09:16.250 --> 00:09:19.350 tai näppäimistön kuuntelu on melkeinpä missä tahansa. 138 00:09:19.350 --> 00:09:24.650 Tällaisessa tavallaan peliohjelmointiin keskittyvässä kirjastossa. 139 00:09:24.650 --> 00:09:29.870 Toki tässä jypelissä tämä näiden valinnaisten parametrien liittäminen tänne kutsun 140 00:09:29.870 --> 00:09:33.490 perään on ehkä tavallaan semmoista aika hypellä spesifiä asiaa. 141 00:09:33.490 --> 00:09:39.070 Ehkä tyypillisempää on se, että näissä peliohjelmointi kirjastoissa on joku erillinen. 142 00:09:39.070 --> 00:09:44.150 Aliohjelma jossa sitten kysellään että onko jokin näppäin painettu eli if keep. 143 00:09:44.150 --> 00:09:50.170 Down expressed tai jotain vastaavaa ja sitten vastaavasti ifk eeppisten espresso deep down ja 144 00:09:50.170 --> 00:09:55.720 niin edelleen joudutaan tekemään semmoista hifistelyä aika paljon, mutta että tässä jypissä se 145 00:09:55.720 --> 00:10:01.450 on tehty ja toteutettu näin että ei tarvita mitäänfeja vaan me voidaan siihen näppäimen kuuntelijan 146 00:10:01.450 --> 00:10:06.750 kytkeä suoraan ne argumentit joita me halutaan halutaan tähän näppäin Kuuntele valittaa niin 147 00:10:06.750 --> 00:10:10.250 mun mielestä tää on aika aika nätti tapa toimia, mutta. 148 00:10:10.250 --> 00:10:15.100 Ei toki maailman ainoa ainoa tyyliä tapa ja. 149 00:10:15.100 --> 00:10:16.900 OK elikkä siinä. 150 00:10:16.900 --> 00:10:19.630 Meillä on liikutus nyt valmiina ja sitten sitten tehdään 151 00:10:19.630 --> 00:10:22.190 siihen nyt vähän vähän niinku jotakin. 152 00:10:22.190 --> 00:10:25.150 Oikeasti oikeasti mielenkiintoista. 153 00:10:25.150 --> 00:10:28.520 Eli eli lähdetään laittamaan sinne niitä palikoita ja me voitaisiin 154 00:10:28.520 --> 00:10:30.350 nyt tehdä tehdä nyt aluksi vaikka yksi palikka. 155 00:10:30.350 --> 00:10:34.880 Se voisi olla fysiikka olio. Nimeltään palikka. 156 00:10:34.880 --> 00:10:38.780 Joka on uusi fysiikka olija, laitan sille kooksi vaikka 50 50. 157 00:10:38.780 --> 00:10:43.960 Lisätään se peli ruutuun ja toki se tulee nyt siihen. 158 00:10:43.960 --> 00:10:46.140 Siihen varmaan siihen me pelaajan päälle, mutta katsotaan 159 00:10:46.140 --> 00:10:48.930 että saadaanko se siitä liikkeelle. 160 00:10:48.930 --> 00:10:53.630 Noin elikkä nyt me voidaan sitä tökkiä ja nyt tietysti se tavoite mulla oli. 161 00:10:53.630 --> 00:10:56.150 Tässä se niin, että me voitaisiin tehdä näistä palikoista sellaisia, 162 00:10:56.150 --> 00:11:00.930 että niiden väri vaihtuu, että nää voisi nyt tavallaan ilmentää siinä 163 00:11:00.930 --> 00:11:03.910 vaikka sun omassa pelissäni jotain elämäpisteitä. 164 00:11:03.910 --> 00:11:09.410 Jos sulla on joku joku semmoinen asia johon jota pitää vaikka tökkiä monta kertaa 165 00:11:09.410 --> 00:11:15.060 tai johon pitää heittää jotain kukkia monta kertaa tai ampua tai vastaavaa yleensä 166 00:11:15.060 --> 00:11:18.570 peleissä jonkunlaisia elämäpisteitä on jotain yritetään säilyttää 167 00:11:18.570 --> 00:11:20.710 ja tässä nyt vastaavasti sitten näillä palikoilla. 168 00:11:20.710 --> 00:11:22.880 Voisi olla elämistä, joita yritetään. 169 00:11:22.880 --> 00:11:26.770 Yritetään sillä pelaajalla saada menemään ja. 170 00:11:26.770 --> 00:11:31.250 Se ensimmäinen ajatus voisi olla esimerkiksi seuraavanlainen. 171 00:11:31.250 --> 00:11:34.530 Lisätään tälle paikalle. 172 00:11:34.530 --> 00:11:39.330 Tämmöinen collision handler eli törmäysten kuuntelija, mikä tarkoittaa 173 00:11:39.330 --> 00:11:43.680 sitä, että kun jokin osuu tähän paikkaan. 174 00:11:43.680 --> 00:11:52.490 Niin tapahtuu jokin asia ja mikä se asia voisi olla niin? 175 00:11:52.490 --> 00:11:56.110 Se voi olla. Aliohjelma kutsu. 176 00:11:56.110 --> 00:12:00.840 Eli tämä lause tässä tarkoittaa sitä, että mitä tahansa kappale törmäämään 177 00:12:00.840 --> 00:12:04.610 tähän nimeen juuri äsken tekemäämme paikkaan, niin aina silloin kutsutaan 178 00:12:04.610 --> 00:12:06.800 tämmöistä aliohjelma nimeltä törmättiin paikkaan. 179 00:12:06.800 --> 00:12:13.940 Sitä ei ole vielä olemassa, jotenka te toteutetaan se seuraavaksi. 180 00:12:13.940 --> 00:12:17.110 Mä teen tästä kontrollista tämmöisen regionin kun nää häiritsee vähän 181 00:12:17.110 --> 00:12:19.580 tosi paljon kun ne on tässä tiellä, niin mä saan nyt 182 00:12:19.580 --> 00:12:22.200 ne. Ja tuonne tolleen kivasti piiloon. 183 00:12:22.200 --> 00:12:24.160 Itse asiassa menkööt nuo. 184 00:12:24.160 --> 00:12:26.500 Nuo kaksikin riviä vielä sinne sisään noin. 185 00:12:26.500 --> 00:12:30.180 Nyt me saadaan nää piiloon hyvä, eli me päästään nyt toteuttamaan. 186 00:12:30.180 --> 00:12:33.860 Tää törmättiin palikkaa ole ohjelmaa ja siellä jypin ohjeessa löytyy. 187 00:12:33.860 --> 00:12:37.740 Löytyy tuota dokumentaatio siihen, että mitä tässä 188 00:12:37.740 --> 00:12:39.580 tarkoittaa ja miten se pitää toteuttaa. 189 00:12:39.580 --> 00:12:42.740 Mä lisään sen luennon jälkeen niin tähän tähän url osoitteen tähän 190 00:12:42.740 --> 00:12:46.490 perään, että mistä se ohje siihen siihen löytyy. 191 00:12:46.490 --> 00:12:49.210 Jälleen kerran siellä. 192 00:12:49.210 --> 00:12:53.930 Bongi ohjeissa tehtiin sama homma myöskin eli törmättiin paikkaan. 193 00:12:53.930 --> 00:12:58.930 On aliohjelman nimi tää törmäysten käsittelijä on tämmöinen void tyyppinen. 194 00:12:58.930 --> 00:13:01.940 Se ei palauta mitään arvoa, mutta se tarvitsee 2 parametria 195 00:13:01.940 --> 00:13:04.930 ja ne ovat törmää ja ja kohde mihin törmätään. 196 00:13:04.930 --> 00:13:10.620 Nää molemmat on fysiikkaolijoita eli törmää ja. 197 00:13:10.620 --> 00:13:12.650 Ja kohde. 198 00:13:12.650 --> 00:13:16.490 Ja nyt mä tarkoituksella nimeä nää kuuntelijan aliohjelman parametrit 199 00:13:16.490 --> 00:13:19.210 tällä tavalla, että meillä on normaalia ja kohden me emme periaatteessa 200 00:13:19.210 --> 00:13:21.230 tiedä sitä, että kuka se törmää ja on. 201 00:13:21.230 --> 00:13:25.410 Tällä kertaa se nyt on tää meidän yksi tietty palikka, mutta josta tästä 202 00:13:25.410 --> 00:13:28.790 aliohjelma tulisi monikäyttöisempi, niin mä en ole tarkoituksellisesti nimeä 203 00:13:28.790 --> 00:13:32.590 nää tälleen vähän niinku geneerisesti niin että että ne ovat ikään kuin mikä 204 00:13:32.590 --> 00:13:35.710 tahansa törmää ja ja mikä tahansa kohde. 205 00:13:35.710 --> 00:13:39.070 Tää tulee havainnollisemmaksi tuossa myöhemmin. 206 00:13:39.070 --> 00:13:41.500 Hyvä, mutta nyt se ensimmäinen ajatus voisi olla niin, että 207 00:13:41.500 --> 00:13:46.500 OK jos se pelaa ja törmää siihen värikkään. 208 00:13:46.500 --> 00:13:52.390 Niin muutetaan se väriä ja ja ja nyt mä heti sanon tässä näin, että tää on niinku pedagogisesti 209 00:13:52.390 --> 00:13:56.150 haasteellinen tilanne, koska nyt mä joudun näyttämään ikään kuin vähän sen vaarantavan 210 00:13:56.150 --> 00:14:00.670 ensin ja sitten mennä siihen oikeaan siihen parempaan tapaan, joka on se mielekkäämpi 211 00:14:00.670 --> 00:14:03.250 tapa tehdä asioita, sillä olio ohjelmointi tyylillä. 212 00:14:03.250 --> 00:14:06.740 Mutta tää on nyt sallinette mulle tämmöisen poikkeuksen, että että mä näytän 213 00:14:06.740 --> 00:14:11.010 tässä tässä ikään kuin se väärän tavan elikkä korostan tässä nyt, että ei lähdetä 214 00:14:11.010 --> 00:14:15.650 oikeasti tekemään näin, mutta jotta nyt päästään niinku alkuun tässä hommassa 215 00:14:15.650 --> 00:14:18.410 ja mä nyt kuitenkin kuitenkin sen näytän. 216 00:14:18.410 --> 00:14:23.440 Eli nyt me voitaisiin kysyä siltä kohteelta, että onko sen väri. 217 00:14:23.440 --> 00:14:27.640 Väri joku leikitään nyt että se olisi vaikka no OK. Me ei annettu sille mitään väriä. 218 00:14:27.640 --> 00:14:29.800 Täällä sanotaan että se voisi olla vaikka. 219 00:14:29.800 --> 00:14:32.740 Vaikka punainen tai sen verran korjaan tätä mun aikaisempaa 220 00:14:32.740 --> 00:14:35.740 koodia että laitan se laitan se punaiseksi noin. 221 00:14:35.740 --> 00:14:38.260 Eli nyt meillä on punainen palikka siinä ja sitten kysytään 222 00:14:38.260 --> 00:14:42.880 että onko se kohteen väripunainen ja jos on. 223 00:14:42.880 --> 00:14:46.450 Niin värjätään se kohde vaikka. 224 00:14:46.450 --> 00:14:50.390 Keltaiseksi sanotaan, että mennään nyt liikennevalo värejä tässä läpi. 225 00:14:50.390 --> 00:14:54.590 Te punainen keltainen vihreä sitten tuhotaan se OK no. 226 00:14:54.590 --> 00:14:56.780 Katsotaan miten käy. 227 00:14:56.780 --> 00:14:59.800 Eli nytten, mikäli kyseinen palikka on punainen, niin sitten sen 228 00:14:59.800 --> 00:15:03.410 törmäyksen yhteydessä pitäisi muuttua keltaisiksi. 229 00:15:03.410 --> 00:15:07.370 No eipä epa. Eipä muuttunut. 230 00:15:07.370 --> 00:15:12.490 Katsotaan mitä mä tein väärin. Fyysisessä object. 231 00:15:12.490 --> 00:15:21.110 Kohde. Aa joo elikkä nyt että tämä. 232 00:15:21.110 --> 00:15:24.230 Nytten tämä itse asiassa tällä tavalla kirjoitettuna. 233 00:15:24.230 --> 00:15:26.030 Nytten tää palikka onkin. 234 00:15:26.030 --> 00:15:29.490 Itse asiassa se törmää, elikkä tehdäänpäs näin että laitetaan pelaamaan ja, palikka, 235 00:15:29.490 --> 00:15:34.090 törmättiin palikkaa nyt tällä tavalla kirjoitettuna, niin meillä on määriteltynä törmää 236 00:15:34.090 --> 00:15:37.160 ja ja sitten jälkimmäinen näistä argumenteista on kohde. 237 00:15:37.160 --> 00:15:42.020 Joo, elikkä tässä pelissä voi tehdä monenlaisia törmäys käsittelijöitä, mutta näin kirjoitettuna 238 00:15:42.020 --> 00:15:46.710 niin ensimmäinen argumentti tarkoittaa törmäämään jälkimmäinen kohdetta. 239 00:15:46.710 --> 00:15:49.800 Joo, pahoittelut pieni pieni sekoilu elikkä nytten nyt meillä pitäisi 240 00:15:49.800 --> 00:15:52.870 olla molemmat sekä törmäillä että kohde siellä. 241 00:15:52.870 --> 00:15:58.570 Tiedossa ja nyt se heti siitä värjäytyi kun kun tota ne syntyy päällekkäin, mutta laitetaan 242 00:15:58.570 --> 00:16:02.710 nyt vaikka vähän eri kohtaan niin emme sitten välittömästi törmää. 243 00:16:02.710 --> 00:16:04.790 Siihen laitetaan sille palikka. 244 00:16:04.790 --> 00:16:06.710 Position ominaisuuden arvoksi. 245 00:16:06.710 --> 00:16:10.790 Jokin satunnainen sijainti tuolta pelialueelta eli random. 246 00:16:10.790 --> 00:16:15.330 Next vector ja annetaan next sektorille argumentin arvoksi level. 247 00:16:15.330 --> 00:16:19.890 Counting boarding react tätä katsottiin jossain aikaisemmalla 248 00:16:19.890 --> 00:16:22.350 luennolla, että tämä on tapa millä me saadaan. 249 00:16:22.350 --> 00:16:24.790 Peli oli jo synnytettyä sinne pelialueelle. 250 00:16:24.790 --> 00:16:28.540 Mihin tahansa niin niin niin satunnaiseen kohtaan ja nyt meillä 251 00:16:28.540 --> 00:16:30.810 pitäisi sen olla oikeasti vähän eri paikoissa noin. 252 00:16:30.810 --> 00:16:33.420 Eli nyt se palikka on punainen siellä, mutta kun me törmätään niin 253 00:16:33.420 --> 00:16:36.890 muuttuu keltaiseksi, mutta sitten se ei enää muutukaan mihinkään 254 00:16:36.890 --> 00:16:40.010 ja niinpä me tarvittaisiin tässä lisää näitä. 255 00:16:40.010 --> 00:16:43.810 Ehto lauseita eli tutkia sitten sitä tavallaan että että OK no 256 00:16:43.810 --> 00:16:48.030 jos ei se olekaan punainen, niin onko se sitten? 257 00:16:48.030 --> 00:16:51.800 Onko se sitten tota noin niin keltainen? 258 00:16:51.800 --> 00:16:54.500 Ja jos tää on totta niin sitten voitaisiin vaihtaa sen 259 00:16:54.500 --> 00:16:58.340 väriä taas niin niin tota vihreäksi. Eikö vaan? 260 00:16:58.340 --> 00:17:03.880 Siihenhän me haluttiin se seuraavaksi colorpiste noin ja tehdään 261 00:17:03.880 --> 00:17:08.420 saman tien, että jos ei se nyt olekaan sitten. 262 00:17:08.420 --> 00:17:12.210 Se keltainen. Vaan se on vihreä kohde. 263 00:17:12.210 --> 00:17:14.010 Color. 264 00:17:14.010 --> 00:17:19.040 On colorpiste green niin sitten se voisi olla se tilanne missä me vaikka heitetään se kokonaan 265 00:17:19.040 --> 00:17:24.450 pois sieltä pelialueelta eli kohdepiste destroy näin eli nyt meillä on siinä. 266 00:17:24.450 --> 00:17:28.830 3 iffia punainen, keltainen ja vihreä ja mikäli se on vihreä 267 00:17:28.830 --> 00:17:32.040 se palikka, niin sitten lopuksi tuhotaan se. 268 00:17:32.040 --> 00:17:37.920 Katsotaan miten käy. 269 00:17:37.920 --> 00:17:42.550 OK muuttuu punaiseksi keltaiseksi keltaisesta vihreäksi ja vihreästä tuhoutuu. 270 00:17:42.550 --> 00:17:44.490 Eli sinänsä ihan OK tilanne. 271 00:17:44.490 --> 00:17:47.660 Nyt me saadaan se sinne sinne tota. 272 00:17:47.660 --> 00:17:50.240 Ne värit vaihtuvat niinku halutaankin ja nyt me voitaisiin tätä 273 00:17:50.240 --> 00:17:52.290 laajentaa siten, että tehdään näitä palikoita. 274 00:17:52.290 --> 00:17:58.970 Lisää tehdään sinne vaikka 20 palikkaa. Mä kopinasten nää. 275 00:17:58.970 --> 00:18:01.970 Nää koodit mitä mä tuossa tein niin tuonne forsell mukaan sisään. 276 00:18:01.970 --> 00:18:06.610 Eli nyt meillä on siellä silmukka joka kiertää 20 kierrosta silmukan jokaisella kierroksella 277 00:18:06.610 --> 00:18:12.510 tehdään yksi palikka, heitetään se satunnaiseen paikkaan ja lisätään pelialueelle ja huom nyt 278 00:18:12.510 --> 00:18:17.080 tärkeä havainto että jokaiselle paikalle myöskin lisätään törmäys käsittelijä eli meillä on siellä 279 00:18:17.080 --> 00:18:21.880 20 kappaletta törmäys käsittelijöitä mikä on sinänsä ihan OK. 280 00:18:21.880 --> 00:18:24.760 OK no nyt katsotaan sitten miten käy elikkä jokainen palikka 281 00:18:24.760 --> 00:18:28.090 käyttäytyy omalla tavallaan jokainen palikka. 282 00:18:28.090 --> 00:18:31.990 Vaihtaa väriään vuorollaan, kun me siihen törmätään ja kaikki kaikki 283 00:18:31.990 --> 00:18:35.950 näyttää sinänsä ihan ookoolta, mutta nyt tulisikin se tilanne, että 284 00:18:35.950 --> 00:18:38.230 että meillä on 20 palikkaa tässä kyllä hienosti. 285 00:18:38.230 --> 00:18:42.540 Mutta miten jos me haluttaisiin tehdä 20. 286 00:18:42.540 --> 00:18:48.320 20 ympyrää sanotaan me haluttaisi tehdä 20 ympyrää. 287 00:18:48.320 --> 00:18:51.960 Noin jotka höpsistä. 288 00:18:51.960 --> 00:18:55.800 On vaikka kaksikymmentäviisi kertaa kaksikymmentäviisi kokoisia ja tosissaan 289 00:18:55.800 --> 00:19:01.420 shape circle muotoisia, mutta ne eivät aloittaessaan punaisesta väristä 290 00:19:01.420 --> 00:19:06.010 vaan ne aloittaisivat vaikka mustasta väristä ja. 291 00:19:06.010 --> 00:19:07.860 Laitetaan sinne color. 292 00:19:07.860 --> 00:19:13.950 Black ja ne eivät menisi niitä tietenkään niitä liikennevalon värejä vaan vaan 293 00:19:13.950 --> 00:19:18.420 tota ne voisi mennä mustavalkoinen ja sitten hävitä sen jälkeen. 294 00:19:18.420 --> 00:19:23.210 OK no nyt kun me katsotaan tätä niin tää on nyt jo semmoisen hengästyttää hengästymistä aiheuttavan 295 00:19:23.210 --> 00:19:27.160 pituinen tämä koodi ja nyt jos me jouduttaisiin vielä miettimään erikseen sitä, että OK, mitäs 296 00:19:27.160 --> 00:19:33.650 jos se ei olekaan punainen vaan se on musta, niin me muutettaisiin sitten mustasta valkoiseen 297 00:19:33.650 --> 00:19:38.530 OK seuraava kysymys, mitäs jos meillä olisikin toiveena tehdä vielä tällaisten ympyröiden 298 00:19:38.530 --> 00:19:44.510 lisäksi kolmiota, jotka menevät musta, vihreä, valkoinen ja vasta sitten tuhoutuvat, niin 299 00:19:44.510 --> 00:19:49.110 tää menisi itse mahdottomaksi tämmöinen tilanne, jossa me jouduttaisiin tutkimaan, että että 300 00:19:49.110 --> 00:19:51.280 että OK sen pitää olla musta. 301 00:19:51.280 --> 00:19:55.560 Ja muodoltaan kolmio, niin siinä tilanteessa me muutettaisiin sitä, mitä 302 00:19:55.560 --> 00:19:58.060 mä sanoin äsken vihreäksi ja sitten vasta valkoiseksi. 303 00:19:58.060 --> 00:20:00.980 Eli menisi aivan älyttömäksi spagettikoiksi, eikä tästä 304 00:20:00.980 --> 00:20:03.280 tulisi loppujen lopuksi yhtään mitään. 305 00:20:03.280 --> 00:20:05.920 Ja nyt tähän ratkaisu olisi oikeasti parempi. 306 00:20:05.920 --> 00:20:07.920 Se, että tämä. 307 00:20:07.920 --> 00:20:12.780 Muoto itsessään tietäisi sen oman väriskaalansa oman väripalettiinsa se pystyisi 308 00:20:12.780 --> 00:20:19.230 hoitamaan sen tota värinvaihdoksen itse ilman että tätä täällä peliluokan puolella 309 00:20:19.230 --> 00:20:22.950 tarvitsee sitä logiikkaa ikään kuin pitää yllä. 310 00:20:22.950 --> 00:20:29.550 Niinpä se muoto itsessään tai tää kappale pitäisi toisin sanoen tavalla. 311 00:20:29.550 --> 00:20:33.380 Omana ominaisuutena on omana ominaisuuden arvona sen, että paitsi mikä mun 312 00:20:33.380 --> 00:20:37.390 väri on, mutta myöskin se, että mitkä ne mun se väriskaala on tää väripaletti 313 00:20:37.390 --> 00:20:42.100 joita pitää noudattaa siinä kun törmäys tapahtuu. 314 00:20:42.100 --> 00:20:46.580 Ja lähdetään tätä nyt sitten muuttamaan muuttamaan siihen suuntaan, että se palikka 315 00:20:46.580 --> 00:20:52.420 itse tietäisi sen oman väri väriskaalan ja lähdetään nyt tästä liikkeelle niin että 316 00:20:52.420 --> 00:20:57.480 toivotaan niin, että meillä voisi olla semmoinen luokka tai tyyppi kuin palikka 317 00:20:57.480 --> 00:21:01.920 jolla me voidaan sanoa että OK olet 50 kokoinen. 318 00:21:01.920 --> 00:21:08.790 Ja ja ja muuten muuten niinku kaikki kaikki tavallaan kuten kuten ennenkin. 319 00:21:08.790 --> 00:21:12.640 No nytten visuaalisuus anteeksi raideri valintaa tässä nyt tämmöistä palikkatyyppiä ei 320 00:21:12.640 --> 00:21:16.870 ole olemassa, joten kuten eilenkin niin lisätään tämmöinen palkkaluokka tänne eli add 321 00:21:16.870 --> 00:21:21.740 new class ja annetaan sille nimeksi palikka joka sitten peritään. 322 00:21:21.740 --> 00:21:26.200 Fysiikka oliosta eli me halutaan totta kai näistä palikoista tehdä siinä 323 00:21:26.200 --> 00:21:28.850 mielessä samanlaisia kuin noista muistakin fysiikka olleista, mutta niillä 324 00:21:28.850 --> 00:21:32.980 on hieman enemmän ominaisuuksia ja ne osaavat ikään kuin hieman enemmän 325 00:21:32.980 --> 00:21:36.460 kuin mitä tommoinen perus fysiikka oli jo osa. 326 00:21:36.460 --> 00:21:39.210 Ja. 327 00:21:39.210 --> 00:21:43.590 Ensimmäisenä me tarvitaan tähän konstruktioriin, eli se rakentaja, jolla näitä 328 00:21:43.590 --> 00:21:47.470 palikoita tehdään ja nyt näissä fysiikkaolijoiden tapauksessa on semmoinen 329 00:21:47.470 --> 00:21:51.660 huomio, että se tarvitsee aina leveyden ja korkeuden. 330 00:21:51.660 --> 00:21:53.970 Jotenka tehdään tälle palikanllekin. 331 00:21:53.970 --> 00:21:57.170 Nyt sellainen konstruktiori. 332 00:21:57.170 --> 00:22:02.490 Joka ottaa vastaan leveyden ja korkeuden ja nämä leveys ja korkeus 333 00:22:02.490 --> 00:22:05.090 valitetaan sinne kantaluokan konstruktiorille. 334 00:22:05.090 --> 00:22:09.990 Eli nytten tää on nyt semmoista syntaksia mitä ei oikeasti teidän tarvitse osata. 335 00:22:09.990 --> 00:22:11.940 Mutta tää liittyy tähän. 336 00:22:11.940 --> 00:22:16.620 Tähän perintään syntaksin, että kun me peritään se fysiikka olio, niin me 337 00:22:16.620 --> 00:22:20.230 välitetään ne saadut leveys ja korkeus tuonne kantaluokalla. 338 00:22:20.230 --> 00:22:22.140 Elikkä sinne fysiikkaan on konstruktiorille. 339 00:22:22.140 --> 00:22:25.340 Me voidaan itse asiassa tehdä niin, että me klikataan tässä base sanan 340 00:22:25.340 --> 00:22:30.170 päällä näppäintä 12, jolloin me päästään oikeasti tarkastelemaan myöskin 341 00:22:30.170 --> 00:22:33.340 sitä, että miten se fysiikka olion käyttöönotto. 342 00:22:33.340 --> 00:22:36.420 Miten se fysiikka olon kontrollointi siellä jypin puolella. 343 00:22:36.420 --> 00:22:39.430 Itse asiassa on tehty eli sieltä löytyy tämmöinen. 344 00:22:39.430 --> 00:22:43.430 Sieltä löytyy tämmöinen konstruktiori kuin fyysiset objektit nimeltään, joka ottaa 345 00:22:43.430 --> 00:22:48.760 vastaan leveyden ja korkeuden ja sitten se vielä itse välittää ne tota. 346 00:22:48.760 --> 00:22:53.100 Toiselle konstruktioreille sanomalla dish ja argumentteina vht 347 00:22:53.100 --> 00:22:56.360 ja red tangle eli tässä näkyy niin, että tää. 348 00:22:56.360 --> 00:23:01.200 Suorakulmio on se oletusmuoto, joka sinne toisenlaiselle konstruktioreille välitetään ja jos 349 00:23:01.200 --> 00:23:05.740 mä siinä vielä klikkaan yksi kerran f 12 niin mä pääsen tutkimaan että OK. 350 00:23:05.740 --> 00:23:08.120 Minkä näköinen sitten taas se konstruktio. 351 00:23:08.120 --> 00:23:10.120 No ei mennä nyt tämän syvemmälle. 352 00:23:10.120 --> 00:23:14.260 Tässä täältä löytyy sitten sitä jypin lähdekoodia tarkemmin jos joku haluaa sitä tutkia, 353 00:23:14.260 --> 00:23:18.060 mutta me tehdään nyt tätä meidän palikka struktuuria ja oikeastaan me voidaan tässä 354 00:23:18.060 --> 00:23:22.290 kohtaa jopa jopa laittaa tää ohjelma ohjelma vaikka käyntiin. 355 00:23:22.290 --> 00:23:25.380 Tai no, itse asiassa se ei vielä vielä mene ihan käyntiin, koska meidän pitää sanoa 356 00:23:25.380 --> 00:23:28.580 että nyy palikka sen sijaan että me sanotaan nyt fyysisessä objekti. 357 00:23:28.580 --> 00:23:30.820 Ja nyt ollaan itse asiassa siinä tilanteessa, että me 358 00:23:30.820 --> 00:23:33.310 voidaan jopa laittaa tää peli käynti. 359 00:23:33.310 --> 00:23:37.670 Ja tän pitäisi kaiketi kääntyä, paitsi että se. 360 00:23:37.670 --> 00:23:39.790 Ei. Käänny. 361 00:23:39.790 --> 00:23:44.450 Mikäs toi upper tuolla on? Katsotaan. 362 00:23:44.450 --> 00:23:49.540 Tee mulle tommoinen sinne jäi. 363 00:23:49.540 --> 00:23:54.940 Se ei ainakaan kesken tuossa silmukka, eli nyt se pitäisi varmaankin kääntyä. 364 00:23:54.940 --> 00:23:56.870 Katsotaan kääntyykö kyllä se kääntyy. 365 00:23:56.870 --> 00:23:59.960 Eli nyt mä periaatteessa pystyn tätä pelaamaan kuten äskenkin. 366 00:23:59.960 --> 00:24:04.900 Nuo mustat ympyrät siellä nyt ei eivät vielä vaihda väriä kun mä en tehnyt sitä ominaisuutta loppuun 367 00:24:04.900 --> 00:24:11.190 asti, mutta ainakaan nyt en kovin pahasti nähtävästi rikkonut tätä koodia. 368 00:24:11.190 --> 00:24:16.630 Mutta nytten tosissaan niin ei lähdetä tekemään tätä törmäys käsittelijää näin vaan 369 00:24:16.630 --> 00:24:21.630 lähdetään siitä ajatuksesta, että se palikka tietää ne omat värinsä. 370 00:24:21.630 --> 00:24:27.210 Ja ja ja. Lunttaan tuosta. 371 00:24:27.210 --> 00:24:29.060 Tuosta samalla elikkä pyyhitään. 372 00:24:29.060 --> 00:24:31.560 Nytten tämä tämä tämä koodi täältä kerta kaikkiaan pois. 373 00:24:31.560 --> 00:24:35.350 Mä en ole tähän ollenkaan ollenkaan tyytyväinen. 374 00:24:35.350 --> 00:24:39.470 Ja ja lähdetään miettimään asiaa sieltä. 375 00:24:39.470 --> 00:24:43.470 Palikka luokan tilan ylläpitämisen kautta. 376 00:24:43.470 --> 00:24:47.190 Eli palataan tänne näin tänne palkkaluokan toteutukseen ja katsotaan 377 00:24:47.190 --> 00:24:52.160 mitä me voitaisiin asialle täällä tehdä. 378 00:24:52.160 --> 00:24:56.290 Mun toive olisi oikeastaan sellainen niin että tää. 379 00:24:56.290 --> 00:24:58.300 Palikkaa konstruktiori. 380 00:24:58.300 --> 00:25:01.470 En mä itse asiassa vielä palaan tuonne peliluokan puolelle, elikkä tää palikka 381 00:25:01.470 --> 00:25:07.130 konstruktiori voisi olla sellainen, että mä voin sinne valittaa sen tiedon niistä 382 00:25:07.130 --> 00:25:13.250 väreistä ja lähdetään nytten luomaan sitä väriä kokoelmaa ja mä nyt teen tänne 383 00:25:13.250 --> 00:25:17.430 tällaisen taulukon väreistä joka pitää sisällään ne. 384 00:25:17.430 --> 00:25:21.930 Liikennevalon värit. 385 00:25:21.930 --> 00:25:25.140 Näin elikkä tää on ihan ihan tavallinen taulukko. 386 00:25:25.140 --> 00:25:27.550 Ja mä annan sinne arvoksi nyt 3 kappaletta värejä. 387 00:25:27.550 --> 00:25:31.660 Me ollaan tähän mennessä tehty string taulukoita taulukoita, double taulukoita 388 00:25:31.660 --> 00:25:34.740 ja kaikenlaisia taulukoita, mutta nää paritalot niitä ei ole vielä tehty, 389 00:25:34.740 --> 00:25:36.980 mutta näissä ei ole sinänsä mitään sen kummempaa. 390 00:25:36.980 --> 00:25:41.780 Mä laitan vaan tyypiksi color taulukko eli color häkään sille nimeksi värit ja sitten aalto 391 00:25:41.780 --> 00:25:45.950 sulkeiden sisäinen arvot mitä mä sinne värit taulukkoon nyt haluan laittaa ja tässä tapauksessa 392 00:25:45.950 --> 00:25:51.740 siellä on 3 kappaletta ja nyt se mun toive oli se että tää värit taulukko menisi sinne 393 00:25:51.740 --> 00:25:56.620 konstruktiorille tiedoksi eli tää palikka itsessään tietäisi ja ottaisi vastaan sen tiedon 394 00:25:56.620 --> 00:25:59.200 että minkälaisia värejä sillä palikalla. On hyvä. 395 00:25:59.200 --> 00:26:02.290 No nyt tulee valitusta siitä, että välikangas tuo parameters 396 00:26:02.290 --> 00:26:05.160 plast isin wood with three argument. 397 00:26:05.160 --> 00:26:10.020 Eli tää on nyt ihan selvä asia että se mun palkkaluokan konstruktio ottaa 398 00:26:10.020 --> 00:26:15.120 vastaan 2 parametria, mutta se kolmas parametri eli ne värit. 399 00:26:15.120 --> 00:26:18.510 Täytyy ottaa myöskin vastaan, eli lisätään tänne yksi 400 00:26:18.510 --> 00:26:20.530 parametri ihan niinku mihin tahansa. 401 00:26:20.530 --> 00:26:23.790 Aliohjelman muokatessamme argumentteja tai argumenttien 402 00:26:23.790 --> 00:26:26.380 määrää niin sitten pitää korjata myöskin se. 403 00:26:26.380 --> 00:26:29.760 Se tota parametrien lista siellä toteutuksen puolella ja näin 404 00:26:29.760 --> 00:26:32.820 nyt on toimittu ja periaatteessa nyt tää kääntyy. 405 00:26:32.820 --> 00:26:35.260 Mulla ei siellä probleemeja ole. 406 00:26:35.260 --> 00:26:38.680 Mä pidän tätä probleemeja täällä yleensä kiinni kun tää vie valitettavasti 407 00:26:38.680 --> 00:26:40.970 tilaa tuosta näytöltä niin paljon. 408 00:26:40.970 --> 00:26:47.130 Mutta laitetaan tää käyntiin ja ja vielä ei tapahdu mitään, mutta ei ainakaan 409 00:26:47.130 --> 00:26:51.260 mennyt nyt tota siis ohjelma kääntyy mä saan sen käyntiin mutta tää ei 410 00:26:51.260 --> 00:26:53.450 tietenkään vielä nyt tee sitä mitä halutaan. 411 00:26:53.450 --> 00:26:57.070 Eli nytten mun pitäisi miettiä sitä että OK mulla on tiedossa nyt täällä palkkaluokassa 412 00:26:57.070 --> 00:27:01.620 täällä konstruktio tää väri muuttuu mitä mä sillä itse asiassa teen. 413 00:27:01.620 --> 00:27:06.850 No nyt mä tarvin laittaa sen tänne mun olion ominaisuuden arvoksi tän palikan 414 00:27:06.850 --> 00:27:12.650 ominaisuuden arvoksi ja nyt mä luon tänne uuden muuttujan. 415 00:27:12.650 --> 00:27:14.510 Värit. 416 00:27:14.510 --> 00:27:18.950 Ja annetaan sille tota tyyppi ihan niinku meille tahansa muuttujalle ja 417 00:27:18.950 --> 00:27:22.100 se nimi samaan tapaan kuin eilen annettiin sille koiralle. 418 00:27:22.100 --> 00:27:28.430 Ominaisuus, rotu ja ominaisuus nimi niin nyt tällä palikalla on ominaisuusvärit. 419 00:27:28.430 --> 00:27:32.550 Ja itse asiassa mä meen nyt tässä taas asiassa millin verran eteenpäin, eli 420 00:27:32.550 --> 00:27:37.910 tää tulee olemaan tämmöinen yksityinen muuttuja jota ei ole tarpeen sieltä 421 00:27:37.910 --> 00:27:40.710 muista luokista käydään niinku suoraan kaapistatelemassa. 422 00:27:40.710 --> 00:27:45.550 Tää tarkoittaa siis sitä, että mä en sinne sieltä peliluokan puolelta pääse jonkun yksittäisen 423 00:27:45.550 --> 00:27:48.650 palikan väreihin vaikuttamaan tavallaan siihen spektriin mitä sillä on. 424 00:27:48.650 --> 00:27:52.400 Siis tässä tapauksessa nyt esimerkiksi se punainen keltainen vihreä, niin mä en sieltä 425 00:27:52.400 --> 00:27:56.170 pelokasta valaise puukottamalla joita vaihdetaanpa siksi kun ihan muuksi väri kokoelmaksi 426 00:27:56.170 --> 00:28:00.620 ei niin vaan sieltä peliluokan puolelta olisi ainoastaan tarkoitus. 427 00:28:00.620 --> 00:28:02.680 Tavallaan päästä. 428 00:28:02.680 --> 00:28:06.480 Niinku sitä seuraavaa väriä vaihtamaan, mutta ei. 429 00:28:06.480 --> 00:28:11.330 Tai tavallaan edistämään sitä, että mikä se väri nyt tällä hetkellä on, mutta sitä värikokoelma 430 00:28:11.330 --> 00:28:15.420 sinänsä ei ole tarpeen päästä muuttamaan ja sen takia mä teen tästä tämmöisen privaatti 431 00:28:15.420 --> 00:28:21.240 muuttujan privaattiluokka muuttujan joka nyky CR suositusten mukaisesti kirjoitetaan tällä 432 00:28:21.240 --> 00:28:23.940 tavalla, että siellä on_ ja sitten pienen aakkosilla. 433 00:28:23.940 --> 00:28:30.100 Eli tää on yksityinen yksityinen luokka muuttuja tai oli jo muuttuja. 434 00:28:30.100 --> 00:28:34.230 OK katsotaanpa nyt oikeita termejä elikkä tää on yksityinen. 435 00:28:34.230 --> 00:28:37.850 Niin no se on yksityinen arja muuttuja pitää ihan miettiä kun puhutaan 436 00:28:37.850 --> 00:28:41.110 englanniksi puhutaan fields ja sitten puhutaan. 437 00:28:41.110 --> 00:28:45.580 Niinku tässäkin näkyy, raider sanoi että field is never use niin tää englanninkielinen termi 438 00:28:45.580 --> 00:28:52.020 on tosiaan tyypillisimmin fead, mutta suomeksi ehkä puhutaan olio muuttujista. 439 00:28:52.020 --> 00:28:56.800 Kirjoitetaan. Nykyisillä sharp. 440 00:28:56.800 --> 00:29:00.380 Suosituksissa näin. 441 00:29:00.380 --> 00:29:05.660 OK mut nyt mä pitkä selitys, mutta että nyt päästään siihen niin että että sijoitetaan nyt se 442 00:29:05.660 --> 00:29:10.400 parametrina saatu värit muuttujan sisältö nyt sitten tänne ominaisuuden arvoksi. 443 00:29:10.400 --> 00:29:14.560 Hyvä nyt testataan onko onko ohjelma vielä siinä tilassa että 444 00:29:14.560 --> 00:29:17.830 se kääntyy ja me ollaan saan sen toimintaan. 445 00:29:17.830 --> 00:29:21.460 Näyttäisi olevan vielä mitkään värit eivät vaihdu, mutta nyt me päästään 446 00:29:21.460 --> 00:29:25.800 tekemään sitten sitä sitä vihdoin ja viimein. 447 00:29:25.800 --> 00:29:32.280 Eli palikkaluokassa on nyt periaatteessa datatiedosto, jota jota sen värin vaihtamiseksi tarvitaan, 448 00:29:32.280 --> 00:29:36.380 mutta nyt me tarvitaan vielä toiminnallisuus siihen, että miten se. 449 00:29:36.380 --> 00:29:39.000 Miten se tota väri oikeasti saadaan muuttumaan? 450 00:29:39.000 --> 00:29:43.720 Eli nyt meillä on ad collision handler tehty täällä pelaaja törmätessään puolikkaan kyllä 451 00:29:43.720 --> 00:29:48.530 kutsuu tätä tätä tota aliohjelma ja me voidaan niinku katsoa niin että että kutsutaan 452 00:29:48.530 --> 00:29:51.140 tätä ihan oikeasti me voidaan laittaa tänne message display. 453 00:29:51.140 --> 00:29:53.120 Ad. 454 00:29:53.120 --> 00:29:57.780 No laittaa joku pieni viesti niin että että OKOK törmättiin ja ja ja nähdään niin että 455 00:29:57.780 --> 00:30:03.600 tämä aliohjelma sinänsä niin sitä kutsutaan tuossa törmäyksen hetkellä. 456 00:30:03.600 --> 00:30:07.080 Eli periaatteessa meillä tällä hetkellä se törmäystilanne siellä kuitenkin 457 00:30:07.080 --> 00:30:11.020 on on niinku toiminnassa, mutta nyt meidän pitää vielä vielä saada se väri 458 00:30:11.020 --> 00:30:14.990 muuttumaan ja nyt kun tää ifi ratkaisu ei ollut se toimiva ratkaisu, niin 459 00:30:14.990 --> 00:30:17.420 mitenkäs me nyt sitten sitä väriä muutettaisiin? 460 00:30:17.420 --> 00:30:20.710 No nyt meillä on tiedossa tää kohde olio täällä. 461 00:30:20.710 --> 00:30:25.030 Ja nyt meillä on toisaalta tiedossa myöskin se, että sillä kohteella on niitä värejä. 462 00:30:25.030 --> 00:30:28.990 No, voitaisiinko me nyt sanoa jotenkin, että se kohteen värit jotain jotain tähän 463 00:30:28.990 --> 00:30:32.330 liittyvää, niin tää ei ole nyt kuitenkaan se toimiva ratkaisu, vaan meidän pitäisi 464 00:30:32.330 --> 00:30:36.890 oikeastaan tänne kohteille pystyä sanomaan niin, että hei. 465 00:30:36.890 --> 00:30:39.420 Kun suvun törmätään niin. 466 00:30:39.420 --> 00:30:44.900 Toteuta tai ajaa sellainen toiminnallisuus kun tota noin niin. 467 00:30:44.900 --> 00:30:50.380 Ota vastaan osuma eli nyt me esitetään semmoinen toive niin että tällä kohdeolla 468 00:30:50.380 --> 00:30:55.270 oli se sellainen toiminto, jonka avulla se voisi tuottaa ne toimenpiteet, 469 00:30:55.270 --> 00:30:58.780 jotka siihen osuman vastaanottamiseen tarvitaan. 470 00:30:58.780 --> 00:31:05.580 Ja tän tän ajatus nyt olisi olla sen olion toiminto olion metodi ihan niinku eilen tehtiin 471 00:31:05.580 --> 00:31:10.840 sille koiralle ja kissalle niitä äänelle metodeja ja marsullekin niin niin nyt tämän palikka 472 00:31:10.840 --> 00:31:16.740 olion toiminnallisuus olisi tai metodi olisi tällainen öötävästään osuma joka hoitaa sen värin 473 00:31:16.740 --> 00:31:20.990 vaihtamisen ja tehdäänpä se nyt tänne palkkaluokan puolelle. 474 00:31:20.990 --> 00:31:26.640 Ja se olisi nyt tällainen, joka ei palauta mitään arvoa. 475 00:31:26.640 --> 00:31:31.820 Eikä ota myöskään parametreja, vaan ainoa tehtävä olisi vaihtaa väriä. 476 00:31:31.820 --> 00:31:38.430 No miten me voidaan vaihtaa väriä, niin nyt meidän pitäisi sitä. 477 00:31:38.430 --> 00:31:41.830 Tän. Olion väriä käyvä muuttamaan. 478 00:31:41.830 --> 00:31:43.630 No miksi? 479 00:31:43.630 --> 00:31:47.280 Miten me tiedetään se, että että mikä väri menee nyt pitää sitten itse asiassa vaihtaa 480 00:31:47.280 --> 00:31:51.610 niin tää on nyt itse asiassa hyvä kysymys, mutta mä teen nyt niin tässä jotta päästään 481 00:31:51.610 --> 00:31:56.280 asiassa pikkuisen eteenpäin, niin mä nyt vaan kiinteästi heitän sieltä, että OK otetaan 482 00:31:56.280 --> 00:32:02.920 sieltä värit taulukosta ykköspaikasta oleva alkio, joka nyt saattaa olla mitä vaan, 483 00:32:02.920 --> 00:32:05.140 mutta katsotaan miten tää toimii. 484 00:32:05.140 --> 00:32:07.890 No valitettavasti tää ei vieläkäänny ja me tarvitaan nyt 485 00:32:07.890 --> 00:32:10.860 tähän tämmöinen pieni tekninen jekku joka on. 486 00:32:10.860 --> 00:32:16.750 Pikkuisen semmoinen ikävän puoleinen, mutta liittyy nyt tähän tapaan, jolla nää. 487 00:32:16.750 --> 00:32:23.550 Jypelin törmäys käsittelijät toimii eli nythän tää meidän kohde olio täällä törmäyskäsittelyjassa 488 00:32:23.550 --> 00:32:26.320 on tyypiltään fysiikka objekti ja fyysiset objektit. 489 00:32:26.320 --> 00:32:31.010 Tyypillä ei mitään ota vastaan osuma niin mistä metodia tietenkään ole, se on tehty meillä 490 00:32:31.010 --> 00:32:37.680 siellä palkkaluokassa eli oikeasti tän kohteen pitäisi olla palikka ja nyt me kiinnitetään 491 00:32:37.680 --> 00:32:42.340 sen kohteen tyyppi tällä tavalla täällä parametrin listassa ja nyt tää meni vihreäksi eli 492 00:32:42.340 --> 00:32:46.390 nyt me voidaan täällä törmättiin palikka nimisessä. 493 00:32:46.390 --> 00:32:52.400 Aliohjelma sitä oikeasti kutsua sitä kohdeolian metodia asianmukaisella tavalla, mutta 494 00:32:52.400 --> 00:32:58.890 toinen murhe eli cannot resolve blaa blaa blaa tosi vaikean tuntuinen virheilmoitus tulee 495 00:32:58.890 --> 00:33:02.710 riviltä neljäkymmentäkolme taas päästä pois niin näkyy paremmin. 496 00:33:02.710 --> 00:33:08.990 Eli nytten jype ei tiedä että mitä tässä tilanteessa pitäisi tehdä ja nytten 497 00:33:08.990 --> 00:33:14.570 joudun vaan ikään kuin toteamaan tässä niin, että näiden törmäyskasittelijoiden 498 00:33:14.570 --> 00:33:17.850 tapauksessa silloin kun meillä on itse tehty ja olijoita. 499 00:33:17.850 --> 00:33:21.940 Itse tehtyjä luokkia, niin me joudutaan täällä sanomaan, 500 00:33:21.940 --> 00:33:27.240 että minkä tyyppisiä ovat nämä törmää ja. Ja sitten se kohde olio. 501 00:33:27.240 --> 00:33:30.710 Mä kirjoitan ne tyypit tämmöisten kulma sulkeiden väliin. 502 00:33:30.710 --> 00:33:32.750 Tää liittyy tän. 503 00:33:32.750 --> 00:33:37.130 Metodin geneerisyyteen eli siihen niin, että me kiinnitetään 504 00:33:37.130 --> 00:33:39.610 tässä, että minkä tyyppisiä. 505 00:33:39.610 --> 00:33:42.620 Olijoita me tässä käsitellään ja tää on ihan hieno ominaisuus, mutta 506 00:33:42.620 --> 00:33:45.510 me ei valitettavasti tällä kurssilla päästä hirveästi paneutumaan 507 00:33:45.510 --> 00:33:48.390 tähän geneeriseen kovinkaan syvällisesti. 508 00:33:48.390 --> 00:33:51.790 Mutta mutta tota nyt teidän joutuu niinku pikkuisen vaan niinku 509 00:33:51.790 --> 00:33:54.470 uskomaan niin että että näin se näin se tehdään. 510 00:33:54.470 --> 00:33:56.790 Mä otan vielä tuon hetkeksi tuosta pois pois, niin 511 00:33:56.790 --> 00:33:59.110 se ei aiheuta siellä virheilmoitusta. 512 00:33:59.110 --> 00:34:08.260 Tuo oli se jälkimmäinen jälkimmäinen tota. Hetkinen? 513 00:34:08.260 --> 00:34:10.100 Ei kun tuo piti nimenomaan jättää. 514 00:34:10.100 --> 00:34:15.800 Mä taisin väärään väärään kohtaan tuonne tuo piti ottaa sieltä tonne ja tämä 515 00:34:15.800 --> 00:34:19.040 ympyröiden collision hande tätä hieman myöhäisemmäksi noin. 516 00:34:19.040 --> 00:34:22.800 Eli nyt meillä on tässä ne suorakaiteen ja siellä on pelaajia. 517 00:34:22.800 --> 00:34:29.500 Palikka on argumentteina ja törmättiin puolikkaan on on kutsuttava käsittelijä funktio. 518 00:34:29.500 --> 00:34:32.820 Ja käsittelijä funktio ottaa vastaan 2 parametria. 519 00:34:32.820 --> 00:34:35.460 Ensimmäinen niistä on tosiaan fysio object tyyppinen. 520 00:34:35.460 --> 00:34:40.540 Jälkimmäinen palikkatyyppinen ja sitten se kohde oli ottaa vastaan osuman. 521 00:34:40.540 --> 00:34:46.300 Ja katsotaan että toimiiko tää vaiko, eikö? Tota että toimii. 522 00:34:46.300 --> 00:34:50.820 Ja kyllä näyttäisi, että keltaiseksi se vaihtuu ja nyt me saadaan kaikki oliot vaihdettua 523 00:34:50.820 --> 00:34:55.810 kyllä keltaiseksi, mutta myöhäisemmät tai sitä pidemmälle näitä. 524 00:34:55.810 --> 00:34:57.850 Näitä törmäyksiä nyt ei saada. 525 00:34:57.850 --> 00:34:59.930 Valitettavasti tässä vietyä, mutta näyttäisi siltä, että 526 00:34:59.930 --> 00:35:02.890 jotakin jotakin toimivaa saatiin aikaiseksi. 527 00:35:02.890 --> 00:35:07.210 No, katsotaan vielä tätä palkkaluokan toteutusta eli täällä me kiinteästi asetetaan se 528 00:35:07.210 --> 00:35:13.550 väri nytten siihen ykkösaamioon, mikä se sitten ikinä sattuukaan olemaan. 529 00:35:13.550 --> 00:35:18.150 Ja tässä meidän tapauksessa se ykkösasia, joka on asetettu täällä peliluokan puolella, 530 00:35:18.150 --> 00:35:23.610 on tietysti se keltainen, mutta tää ei ole se oikea tapa toimia, vaan meillä pitäisi 531 00:35:23.610 --> 00:35:28.390 olla tieto täällä palkkaluokassa, että kuinka monta osumaa. 532 00:35:28.390 --> 00:35:33.670 Tää onkaan ottanut vastaan, eli tehdään vielä toinen ominaisuus tälle palikka 533 00:35:33.670 --> 00:35:38.200 oliolle, joka olisi tämmöinen, että kuinka monta osumaa se. 534 00:35:38.200 --> 00:35:40.640 Kuinka monta osumaa se palikka on ottanut? 535 00:35:40.640 --> 00:35:44.590 Ja tietysti ihan alkutilanteessa se. 536 00:35:44.590 --> 00:35:47.770 Palikka ei ole ottanut yhtään ainutta osumaa, niin alustetaan tuo sillä 537 00:35:47.770 --> 00:35:52.030 tavalla, että se tässä konstruktioissa heitetään nolla. 538 00:35:52.030 --> 00:35:57.670 Ja tehdään vielä toinen lisäys tähän, että myöskin se alkutilanteessa niin se väri 539 00:35:57.670 --> 00:36:02.190 väri on aivan se aivan se ensimmäinen sieltä värit taulukosta. 540 00:36:02.190 --> 00:36:05.280 Sori mä menen nyt kohtalaisen nopeasti tässä. 541 00:36:05.280 --> 00:36:08.640 Eli tota. Kysykää. 542 00:36:08.640 --> 00:36:13.980 Kysykää vaikka siellä chatissa jos jos haluatte johonkin asiaan johonkin asiaan tarkennusta, 543 00:36:13.980 --> 00:36:18.730 mutta että nyt täällä mun palikkaluokalla on 2 privaattia ominaisuutta värit ja sitten 544 00:36:18.730 --> 00:36:24.520 osumat ja mä lisään tuonne nyt dokumentaation. 545 00:36:24.520 --> 00:36:26.710 Eli laitetaan sinne summeri. 546 00:36:26.710 --> 00:36:31.330 Tagit tonne noin ja nää on nyt se. 547 00:36:31.330 --> 00:36:39.260 Olion väri kokoelma tai värit. Ja. 548 00:36:39.260 --> 00:36:44.390 Tosiaan tää osumat nyt tarvitaan sen takia tänne näin että me pystytään sitten loppujen 549 00:36:44.390 --> 00:36:50.050 lopuksi täällä ota vastaan osumakohdassa muuttamaan sitä väriä sellaiseksi, että se ei 550 00:36:50.050 --> 00:36:56.410 ole mikään kiinteä ykkönen vaan täsmälleen se osumat muuttujan. 551 00:36:56.410 --> 00:36:58.640 Osoittamaan arvo. 552 00:36:58.640 --> 00:37:00.880 Ja jos nyt laitetaan peli käyntiin, katsotaan miten 553 00:37:00.880 --> 00:37:07.160 käy, saadaanko sieltä värejä vaihdettua. No ei saada törmäys. 554 00:37:07.160 --> 00:37:08.960 Siellä tapahtuu. 555 00:37:08.960 --> 00:37:12.660 Törmättiin viestejä sinne vasempaan ylänurkkaan tulee, mutta se osumat 556 00:37:12.660 --> 00:37:15.910 muuttujan arvo ei meillä missään kohtaa vaihdu. 557 00:37:15.910 --> 00:37:21.810 Tää on aina nolla koska on vaihdeta ja niin mä meidän pitäisi täällä ota vastaan osuma 558 00:37:21.810 --> 00:37:27.690 kohdassa sitten tietysti käydä sitä muuttamaan eli osumat plus plus jotta sitten me saadaan 559 00:37:27.690 --> 00:37:32.240 sieltä väritaulukossa otettua oikea väri kullakin osuma kerralla. 560 00:37:32.240 --> 00:37:34.300 Ja nyt sormet ristiin. 561 00:37:34.300 --> 00:37:37.680 Katsotaan, että punainen vaihtuu keltaiseksi ja jee kyllä vaihtuu. 562 00:37:37.680 --> 00:37:39.500 Entäs tuolla sama homma? 563 00:37:39.500 --> 00:37:43.420 No entäs vaihtuuko tuolla se vihreäksi kyllä vaihtuu eli nyt näyttäisi siltä 564 00:37:43.420 --> 00:37:47.800 niin että ollaan saavutettu se sama toiminnallisuus kuin mitä niillä alkuperäisillä 565 00:37:47.800 --> 00:37:50.980 ifillä tehtiin, mutta pikku problem eli system. 566 00:37:50.980 --> 00:37:56.860 Index of section ja nyt me emme missään kohtaa tarkista, että yritämmekö 567 00:37:56.860 --> 00:38:01.360 me ottaa sieltä värittaulukossa niinku asiallisesta kohdasta. 568 00:38:01.360 --> 00:38:03.160 Väriä vai ei? 569 00:38:03.160 --> 00:38:06.580 Eli katsotaanpas toi osumat muuttujan arvo se näyttäisi olevan 3. 570 00:38:06.580 --> 00:38:10.680 Mutta meidän värit taulukon pituus on on 3 eli siellä ei 571 00:38:10.680 --> 00:38:12.880 enää sitä paikkaa numero 3 ole olemassa. 572 00:38:12.880 --> 00:38:19.590 Meillä on paikat 0 1 2 meille ihan asiallisen indeksit of concepción siinä ja niinpä 573 00:38:19.590 --> 00:38:24.950 meidän täytyy tutkia, että onko meillä jäljellä enää niitä osumia eli onko osumat 574 00:38:24.950 --> 00:38:29.340 suurempaa tai yksi suurta kun se meidän värit taulukon pituus ja mikäli on niin 575 00:38:29.340 --> 00:38:32.840 emmehän me tietenkään mitään väriä voi muuttaa, vaan meidän pitää 576 00:38:32.840 --> 00:38:35.430 tuhota se palikka miten me tehdään palikka tuhottua? 577 00:38:35.430 --> 00:38:37.620 No kaikkein yksinkertaisin tapa on sanoa disc. 578 00:38:37.620 --> 00:38:42.150 Destroy eli sille oliolle itselleen kutsua sitä destroy metodeita. 579 00:38:42.150 --> 00:38:47.440 Tähän ollaan tehty aikaisemminkin kurssilla että että että että tota palikka. 580 00:38:47.440 --> 00:38:51.960 Destroy, niin sillä sillä saan se fysiikka oli jo tuhottua sieltä. 581 00:38:51.960 --> 00:38:57.350 Ja ja tehdään näin ja mikäli kuitenkin niitä osumia on siellä vielä jäljellä. 582 00:38:57.350 --> 00:39:00.680 Tai siis värit taulukossa on pituutta jäljellä niin sitten sitä 583 00:39:00.680 --> 00:39:10.610 väriä vaihdetaan ja katsotaan että toimiiko tämä. 584 00:39:10.610 --> 00:39:15.190 Ja hyvin näyttäisi värit vaihtuvan ja nyt ne palikatkin sieltä tuhoutuu. 585 00:39:15.190 --> 00:39:17.350 No entäs nuo mustat palleroiset sieltä? 586 00:39:17.350 --> 00:39:20.640 No niillä ei ollut vielä sitä törmäyskäsittelyä määritelty, 587 00:39:20.640 --> 00:39:23.170 niin voitaisiin lähteä tekemään seuraavaksi. 588 00:39:23.170 --> 00:39:26.530 Eli nytten tässä vielä kaiken tämän työn jälkeen niin ei saavutettu. 589 00:39:26.530 --> 00:39:31.370 Nyt periaatteessa mitään kovin kummallista oltaisi se sama homma saatu niillä ifillä tehtyä, 590 00:39:31.370 --> 00:39:37.300 mutta nyt kun tää peli tästä laajenee ja vaikeutuu tai monimutkaistuu, niin tulee tavallaan 591 00:39:37.300 --> 00:39:42.090 tän olio ajattelun huomattavat edut myöskin myöskin esille. 592 00:39:42.090 --> 00:39:44.410 Eli lähdetään tälle ympyröille tekemään nyt hieman eri 593 00:39:44.410 --> 00:39:47.330 värit eli tehdään niille nyt sitten. 594 00:39:47.330 --> 00:39:53.540 Vaikkapa nytten ne musta. Musta ja valkoinen. 595 00:39:53.540 --> 00:39:58.700 Ja huomaat, että vain 2 väriä pitkää joukko. 596 00:39:58.700 --> 00:40:00.710 Ja sitten. 597 00:40:00.710 --> 00:40:03.910 En mä tiedä kun tää palikka niin me nyt välttämättä ole hyvä nimi tälle luokalle kun jos 598 00:40:03.910 --> 00:40:08.030 meillä on ympyröitä niin eivät ne nyt ne nyt oikeastaan ole palikoita, mutta laitetaan 599 00:40:08.030 --> 00:40:12.420 sinne nytten kolmanneksi argumentiksi värit mä vähän suurena myöskin näitä ympyröitä niin 600 00:40:12.420 --> 00:40:15.910 näyttää paremmalta ja sitten mun tarvitsee nyt täällä. 601 00:40:15.910 --> 00:40:22.010 Itse asiassa toi shape muuttaa vielä erikseen. 602 00:40:22.010 --> 00:40:26.850 Noin ja katsotaan tää loppuosa eli tuo colori tuosta pois 603 00:40:26.850 --> 00:40:29.460 koska se colorin tulee nytten sieltä. 604 00:40:29.460 --> 00:40:32.950 Väreistä sama homma muuten täällä tuo colori on turha. 605 00:40:32.950 --> 00:40:37.020 Otetaan sekin pois ja nyt tämä ad collision handler 606 00:40:37.020 --> 00:40:40.840 pitäisi periaatteessa olla kunnossa. 607 00:40:40.840 --> 00:40:45.710 Eli se näyttää samalta kuin tuo ylempikin hyvä lisätään se pelialueelle 608 00:40:45.710 --> 00:40:54.140 ja katsotaan että toimiiko tää peli. 609 00:40:54.140 --> 00:40:56.700 Neliötä ainakin toimii kuten äskenkin. 610 00:40:56.700 --> 00:41:03.830 Entäs noi ympyrät näyttäisi toimivan ja hyvältä vaikuttaa eli näin. 611 00:41:03.830 --> 00:41:07.600 Tota tekemällä niin meidän ei tarvinnut tehdä tänne. 612 00:41:07.600 --> 00:41:12.890 Törmättiin palikkana oli ohjelmaa yhtään mitään eli tää kohde tietää sen, että kuinka 613 00:41:12.890 --> 00:41:16.530 monta väriä sillä on ja se osaa ottaa vastaan sen oman osumansa. 614 00:41:16.530 --> 00:41:20.590 Meidän ei tarvitse täällä peliluokan puolella huolehtia siitä logiikasta, joka 615 00:41:20.590 --> 00:41:23.510 liittyy siihen kohteen värin vaihtamiseen ja tuhoutumiseen. 616 00:41:23.510 --> 00:41:26.510 Ainoa mitä meidän tarvitsee täällä. 617 00:41:26.510 --> 00:41:29.630 Tehdä niin on on ikään kuin valittaa sille olijoille viestiä, että hei, 618 00:41:29.630 --> 00:41:33.850 nyt sinun pitää ottaa vastaan osuma, eli tää kohde olio tai palikkaoli jo 619 00:41:33.850 --> 00:41:37.730 kapseli sen oman tietonsa siitä värin vaihtumisesta. 620 00:41:37.730 --> 00:41:41.760 Tai nyt ensinnäkin niiden värien määrästä ja niistä väreistä itsestäni sitten siitä, 621 00:41:41.760 --> 00:41:46.530 että mitä tapahtuu siinä osuman vastaanottamisen yhteydessä. 622 00:41:46.530 --> 00:41:49.240 Tää on tuo me siitosta pois, niin sitä ei enää. 623 00:41:49.240 --> 00:41:56.080 Enää siinä myöskään tarvita. 624 00:41:56.080 --> 00:42:04.440 Nyt vilkaisen tuonne palkkaluokan puolelle, että tuliko siinä nyt kaikki asiat tehtyä. 625 00:42:04.440 --> 00:42:08.780 Kyllä elikkä nytten. Nytten tota. 626 00:42:08.780 --> 00:42:13.660 Me voidaan voidaan tehdä hyvin hyvin monenlaisia kappaleita ja mulla oli siinä alkuperäisessä 627 00:42:13.660 --> 00:42:16.940 pelissä myöskin semmoisia kappaleita, jotka ei liikkunut mihinkään. 628 00:42:16.940 --> 00:42:21.660 Ne eivät periaatteessa ole mitään spesiaalia. 629 00:42:21.660 --> 00:42:26.040 Tehdään niistä nyt vaikka 100 kertaa 100 kokoisia ja laitetaan niille myöskin värit. 630 00:42:26.040 --> 00:42:32.720 Mä teen nyt vaihtelun vuoksi tässä suoraan tässä konstruktio kutsussa sen värikokoelma eli 631 00:42:32.720 --> 00:42:39.940 new color taulukko, jolle annetaan argumentiksi vaikka sanotaan nytten color. 632 00:42:39.940 --> 00:42:46.590 Akua ja color. Joku kiva väri sieltä lavender. 633 00:42:46.590 --> 00:42:52.040 Laitetaan vielä muutama muukin väri orange ja. 634 00:42:52.040 --> 00:42:56.540 Pink sillä olisi nytten spring green olko semmoinen hyvä. 635 00:42:56.540 --> 00:43:01.420 Eli siellä on nyt taas eri määrä noita värejä verrattuna noihin aikaisempiin palikoihin, 636 00:43:01.420 --> 00:43:06.180 mutta OK elikkä se on semmoinen liikkumaton palikka ja miten tehdään liikkumaton palikka 637 00:43:06.180 --> 00:43:11.260 niin liikkumaton palikka tehdään sillä tavalla, että asetetaan se. 638 00:43:11.260 --> 00:43:18.500 Äänettömälle massalle sanomalle make static eli tää make static on nytten jypellin. 639 00:43:18.500 --> 00:43:22.100 Tapa tehdä oliosta liikkumaton tai siis liity siihen public static 640 00:43:22.100 --> 00:43:26.430 yhtään mitenkään vaan tästä tää on tapa tehdä kappale jolla ääretön 641 00:43:26.430 --> 00:43:31.480 massa ja se ei noudata noita painovoiman. Sääntöjä. 642 00:43:31.480 --> 00:43:33.280 No samaan tapaan. 643 00:43:33.280 --> 00:43:36.260 Me tarvitaan sille myöskin toi törmäyksen käsittelijä otetaan täältä. 644 00:43:36.260 --> 00:43:39.430 Nyt itse asiassa tuo positio ja törmäyksen käsittelijä. 645 00:43:39.430 --> 00:43:42.350 Koodi copy paste meret sä oot vähän häiritsee se että 646 00:43:42.350 --> 00:43:45.730 mä joudun tässä copypasteen näitä. 647 00:43:45.730 --> 00:43:49.270 Tekstiä me voitaisiin tehdä myöskin sellainen törmäyskäsittely, että pelaaja törmätä 648 00:43:49.270 --> 00:43:54.670 saan mihin vaan niin tapahtuu toi, mutta mä teen sen nyt kuitenkin näin. 649 00:43:54.670 --> 00:43:58.940 Ja katsotaan että OK joku virhe sieltä tuli ympyrä. 650 00:43:58.940 --> 00:44:04.790 Tuo ne tarvitaan oikea muuttujan nimi. Noin hyvä. 651 00:44:04.790 --> 00:44:07.080 Eli nyt meillä pitäisi olla siellä. 652 00:44:07.080 --> 00:44:11.820 5 kappaletta liikkumattomia, joihin pystyy törmäämään ne vaihtaa 653 00:44:11.820 --> 00:44:17.060 muutaman kerran väriä ja sitten häviää noin. 654 00:44:17.060 --> 00:44:19.230 Hieno. 655 00:44:19.230 --> 00:44:21.910 Eli vielä korostan sitä niin, että ei tarvittu tänne peliluokan 656 00:44:21.910 --> 00:44:24.570 puolelle tehdä yhtään mitään muutoksia. 657 00:44:24.570 --> 00:44:28.990 Se varsinainen logiikka tapahtuu siellä palkkaluokan puolella ja me voidaan 658 00:44:28.990 --> 00:44:33.950 tässä peliluokan puolella keskittyä tähän ikään, kun jos tätä nyt käyttöliittymäksi 659 00:44:33.950 --> 00:44:37.380 voi kutsua, mutta joka tapauksessa tähän. 660 00:44:37.380 --> 00:44:42.200 Mielenkiintoisempaan osaan ja tähän peliin varsinaiseen sisältöön. 661 00:44:42.200 --> 00:44:46.820 Ja tää on ehkä myöskin tämmöistä hyvin alkeellista arkkitehtuuria ajattelua. 662 00:44:46.820 --> 00:44:53.260 Eli me erotetaan se, jos nyt voi datasta puhua tai siitä dataamallista niin 663 00:44:53.260 --> 00:44:57.100 niin tää palikka nyt meillä edustaa sitä sitä tietomallia. 664 00:44:57.100 --> 00:45:02.420 Eli tää palikka on tavallaan tämmöinen tieto joka huolehtii siitä että 665 00:45:02.420 --> 00:45:07.130 siellä on se on sen tarvittava data ja sitten sen datan käsittely hoidetaan 666 00:45:07.130 --> 00:45:13.500 myöskin täällä mallin puolella ja sitten. 667 00:45:13.500 --> 00:45:17.720 Tämä visuaalinen puoli tai tämä käyttöliittymä puoli. 668 00:45:17.720 --> 00:45:20.240 On sitten eri ikään kuin kerroksessa. 669 00:45:20.240 --> 00:45:24.280 Eli tää on hyvin hyvin hyvin alkeellista model view ajattelua. 670 00:45:24.280 --> 00:45:29.510 Tavallaan 2 kerrosarkkitehtuuri missä se model on on siellä palkkaluokassa 671 00:45:29.510 --> 00:45:34.530 eli se malli ja sitten www.on tämä mikä näkyy käyttäjälle esimerkiksi nyt 672 00:45:34.530 --> 00:45:39.180 juurikin nämä neliöiden lisääminen tänne ruutuun ja sitten tämä käyttäjän 673 00:45:39.180 --> 00:45:43.340 kontrollointi tai tää näppäimistön toiminta. 674 00:45:43.340 --> 00:45:49.840 Ja tietysti sitten kun asiat monimutkaistuu ja ohjelmasta tulee monimutkaisempi, niin tää arkkitehtuurin 675 00:45:49.840 --> 00:45:56.500 monimutkaistuu ja ehkä yksi suosituimmista malleista toteuttaa arkkitehtuuria on tämmöinen 676 00:45:56.500 --> 00:46:01.670 model view controller eli eli se tietomalli ja sitten on tää näkyvä osa ja sitten välissä semmoinen 677 00:46:01.670 --> 00:46:05.650 kontrolleri joka hoitaa sitä että miten se. 678 00:46:05.650 --> 00:46:11.740 Tieto välitetään ja miten se tieto näytetään sinne käyttäjälle? 679 00:46:11.740 --> 00:46:14.240 Että nyt ollaan tehty 2 kerrosta arkkitehtuuria. 680 00:46:14.240 --> 00:46:17.420 Ei ole kovin pitkä matka enää sitten semmoiseen niinku oikeaan 681 00:46:17.420 --> 00:46:19.720 oikean ohjelman 3 kerros arkkitehtuuriin. 682 00:46:19.720 --> 00:46:23.740 Mutta joo, jätetään se myöhempien kurssien hoidettavaksi. 683 00:46:23.740 --> 00:46:27.460 Mutta nyt mulla oli vielä yksi toive tässä ja se toive oli sellainen niin että 684 00:46:27.460 --> 00:46:30.940 me voitaisiin näistä liikkumattomista kaveriuksesta tehdä, tehdä semmoisia vähän 685 00:46:30.940 --> 00:46:35.400 hienommin häviä eli tehdään, tehdään siitä tällainen. 686 00:46:35.400 --> 00:46:43.100 Fancy palikka, jonka tuhoutuminen tapahtuu, tapahtuu vähän nätimmin ja ja tota tän 687 00:46:43.100 --> 00:46:48.360 voisi nyt tietysti taas tehdä monella eri tavalla ja ja ja tota tietysti se kaikista 688 00:46:48.360 --> 00:46:53.160 oleellisin asia nyt tässä on jo ikään kuin tehty, että että että että se palikka tietää 689 00:46:53.160 --> 00:46:58.300 sen oman tilansa ja hoitaa siihen tilan muuttumiseen liittyvät aktiivit, jotka ei sitten 690 00:46:58.300 --> 00:47:00.920 suoranaisesti liity tähän peliin itsensä. 691 00:47:00.920 --> 00:47:03.630 Mutta nyt mä haluan tähän vähän vähän vielä visuaalisuutta lisää, koska 692 00:47:03.630 --> 00:47:06.800 mä tykkään että että tää on hienon hienon näköinen niin. 693 00:47:06.800 --> 00:47:10.800 Niin tehdään tästä palikasta sellainen hieman erikoistuneempia versio, jonka 694 00:47:10.800 --> 00:47:15.500 nimi voisi nyt olla sitten tämmöinen fancy palikka eli tehdään tästä liikkumattomista 695 00:47:15.500 --> 00:47:18.630 kappaleesta niin tämmöisiä fancy palikoita. 696 00:47:18.630 --> 00:47:24.630 Jotka jotka tota tuhoutuessaan niin antavat semmoisen pienen kivan animaation 697 00:47:24.630 --> 00:47:28.060 ja nyt tää ei toimi vielä koska tämmöistä tanssipaikka nimistä luokkaa ei tietenkään 698 00:47:28.060 --> 00:47:32.070 ole olemassa ja ja tää ei vielä vieläkäänny mutta lähdetään toteuttamaan sitä 699 00:47:32.070 --> 00:47:36.300 fancy palikkaa tänne ja add new class. 700 00:47:36.300 --> 00:47:38.520 Ja tää on melkein samanlainen kuin se palikka. 701 00:47:38.520 --> 00:47:43.840 Eli tää perii palkkaluokan kaikkine ominaisuuksineen ja toimintoineen, 702 00:47:43.840 --> 00:47:46.020 mutta me tarvitaan tänne fancypaikkaan. 703 00:47:46.020 --> 00:47:50.170 Myöskin se konstruktiori koska tää palikka puolestaan perii fysiikkaöljyn ja kaikilla 704 00:47:50.170 --> 00:47:54.260 perillä luokilla täytyy myöskin se 2 barometrin konduktööri olla. 705 00:47:54.260 --> 00:47:59.230 Eli mulla tarvitsee olla täällä public fancy palikka joka ottaa 2. 706 00:47:59.230 --> 00:48:04.030 Parametreja vastaan ja nyt mä ajan voittamiseksi sen tuosta copypas mallikoodi 707 00:48:04.030 --> 00:48:09.970 eli leveys ja korkeus tarvitaan ottaa vastaan ja itse asiassa. 708 00:48:09.970 --> 00:48:15.260 Sama katsotaan mikä mulla oli tuolla. Pikkuhetki. 709 00:48:15.260 --> 00:48:20.820 OK eli mä olin näköjään ajatellut niin, että täällä voisi olla vakioväri. 710 00:48:20.820 --> 00:48:25.590 Tehdään. Tehdään se nyt niin joo. 711 00:48:25.590 --> 00:48:30.220 Tehdään se niin eli eli tanssipaikka jolla on vakiovärit, pinkki, vihreä musta 712 00:48:30.220 --> 00:48:33.690 ja niinpä mä käyn muokkaamassa tuolta palikat pääluokan puolelta. 713 00:48:33.690 --> 00:48:40.700 Nytten pieni hetki otetaan täältä tää väri listaus pois joo. 714 00:48:40.700 --> 00:48:43.040 Tehdään se nyt näin. 715 00:48:43.040 --> 00:48:46.900 Totta kai sinne voisi värejäkin tehdä, mutta mä teen nyt ajon voittamiseksi 716 00:48:46.900 --> 00:48:50.300 sen sen tälleen niinku mä tuossa mallissa olin ajatellut. 717 00:48:50.300 --> 00:48:53.620 OK palataan tonne fancypaikan puolelle. 718 00:48:53.620 --> 00:48:57.470 Eli se ottaa vastaan leveyden ja korkeuden kutsussa konstruktion 719 00:48:57.470 --> 00:49:00.800 kutsussa ja sitten kutsuu keis elikkä on. 720 00:49:00.800 --> 00:49:04.640 Anteeksi kantaluun kantaluun konstruktio. 721 00:49:04.640 --> 00:49:08.600 Toisin sanoen sitä palkkaluokan konstruktioria välittäen 722 00:49:08.600 --> 00:49:12.320 sinne leveyden korkeuden ja hetkinen. 723 00:49:12.320 --> 00:49:17.090 Mulla on siellä näköjään ollut vielä muotokin. 724 00:49:17.090 --> 00:49:18.930 Mä otan sen muodon nyt hetkeksi pois. 725 00:49:18.930 --> 00:49:22.490 Tuosta emme me sitä tarvitse eli sinne menee nyt sitten vain 726 00:49:22.490 --> 00:49:26.860 toi 3 3 argumenttia leveyskorkeus ja väri. 727 00:49:26.860 --> 00:49:33.200 Luettelo tai väritaulukko ja mistä tää valitus tulee että. 728 00:49:33.200 --> 00:49:40.000 Jype color, multiple choices. Nyt täytyy ihan katsoa. 729 00:49:40.000 --> 00:49:43.180 Nyt täytyy ihan katsoa, että mistä toi valitus tulee. 730 00:49:43.180 --> 00:49:47.040 Onko mulla on juuso? Mulla ei ole juuri jypiä täällä ollenkaan. 731 00:49:47.040 --> 00:49:49.630 Housing jype eli se tarvitaan tietysti tänne mukaan, niin 732 00:49:49.630 --> 00:49:52.300 saadaan kaikki jype ominaisuudet käyttöön. 733 00:49:52.300 --> 00:49:55.110 Eli nyt tää periaatteessa kääntyilee ja mä pystyisin 734 00:49:55.110 --> 00:50:00.820 tän jopa ajamaan ja tää varmaan ei. Ei tota. 735 00:50:00.820 --> 00:50:03.840 Eroa siinä mielessä nyt tuosta äskeisestä tilanteesta. 736 00:50:03.840 --> 00:50:08.180 Toki nää värit nyt ovat tällä tanssipelikoilla nyt pinkki vihreä 737 00:50:08.180 --> 00:50:10.920 ja sitten harmaa ja musta ja sitten se tuhoutuu. 738 00:50:10.920 --> 00:50:14.520 Eli nytten tää vielä vielä itse ihan sitä mitä halutaan, mutta mutta ainakin 739 00:50:14.520 --> 00:50:18.810 kääntyy ja ja tuota pystyn sen laittamaan käyntiin. 740 00:50:18.810 --> 00:50:23.570 Oikein hyvä, mutta nyt se oleellinen asia eli se tulee palikan tuhoutuminen ja mä haluan niin 741 00:50:23.570 --> 00:50:27.730 että tän palikan tuhoutuminen on pikkuisen erilaista, kun sillä peruspalikat. 742 00:50:27.730 --> 00:50:31.430 Jos me vielä vilkaistaan tänne peruspalkkaan, niin mullahan oli täällä siis tää public 743 00:50:31.430 --> 00:50:36.870 void ota vastaan osuma, mut niinku teknisiä termejä käyttäen niin mä haluaisin nyt ylikirjoittaa 744 00:50:36.870 --> 00:50:42.750 sen vakio toteutuksen täällä perimässä luokassa eli täällä ihan niinku eilen tehtiin sinne 745 00:50:42.750 --> 00:50:46.370 eläinluokkaan se perussääntö eli hei hei olen. 746 00:50:46.370 --> 00:50:51.100 Se ja se nimeltään niin se kissahan pystyy sanoa miumau joka pystyy sanoa 747 00:50:51.100 --> 00:50:55.990 hau hau eli hieman tavallaan erikoista sitä tiettyä toimintaa. 748 00:50:55.990 --> 00:51:00.850 No nyt mä haluan tätä fancy palikkaa muokata, siten niitä se erikoisttaa. 749 00:51:00.850 --> 00:51:05.470 Sitä. Ota vastaan. 750 00:51:05.470 --> 00:51:08.880 Osuma toiminnallisuutta, joka siellä kantaluokan puolella on, 751 00:51:08.880 --> 00:51:11.650 on on määritelty ja nyt täällä tulee valitusta. 752 00:51:11.650 --> 00:51:13.830 No. 753 00:51:13.830 --> 00:51:18.940 Suitable method for overrid, jolloinka mun pitää täällä palkkaluokassa. 754 00:51:18.940 --> 00:51:21.940 Onhan se samanniminen ota vastaan osuma ota vastaan. 755 00:51:21.940 --> 00:51:27.140 Osuma on joo elikkä mun pitää palkkaluokassa käydä sanomassa, että tämä on yli kirjoitettavaa 756 00:51:27.140 --> 00:51:34.160 metodi eli virtual sana käydä huikkaamassa silleen että hei tän voi siellä perimässä luokassa 757 00:51:34.160 --> 00:51:39.140 ylikirjoittaa ja nyt se valitus täältä myöskin myöskin sitten ne häviää. 758 00:51:39.140 --> 00:51:44.040 Ja nyt mä voin tehdä tänne vähän vähän paremman törmäyksen ja ennen kun oikeastaan 759 00:51:44.040 --> 00:51:47.680 tehdään sitä niin katsotaan että menikö tää mun peli rikki. 760 00:51:47.680 --> 00:51:51.020 Eli jos mä nyt tän laitan käyntiin niin. 761 00:51:51.020 --> 00:51:55.340 Käsittääkseni näiden tavallisten neliöiden ja ympyröiden pitää sieltä tuhoutua, 762 00:51:55.340 --> 00:52:00.800 mutta sitten nää tanssipaikat, niin nyt kun me ollaan se osuman vastaanottaminen 763 00:52:00.800 --> 00:52:04.100 oven raidat, niin nytpähän ei osaakaan tehdä mitään. 764 00:52:04.100 --> 00:52:06.250 Eli se mun. 765 00:52:06.250 --> 00:52:09.970 Ota vastaan osuman täysin tyhjä OK tehdään tässä semmoinen pikku kikka, 766 00:52:09.970 --> 00:52:15.050 että kutsutaan sitä kantaluokan ota vastaan osumaa eli tehdään se mitä se 767 00:52:15.050 --> 00:52:19.260 kantaluokan eli base luokan ota vastaan osuma tekee. 768 00:52:19.260 --> 00:52:23.360 Ja nyt täältä tulee sitten raiderilta vinkkejä, että se saisi tarvitse tämmöistä, mutta 769 00:52:23.360 --> 00:52:29.740 ja ja sehän se nyt näin, eli eli me voidaan kutsua täällä perimässä luokassa sitä kantaluokan 770 00:52:29.740 --> 00:52:34.240 toteutusta, jos näin haluamme ja katsotaan nyt, että se sitten toimii elikkä kyllä 771 00:52:34.240 --> 00:52:38.770 pystyisimme periaatteessa hyödyntämään sitä kantaluun toteutusta, jolloinka ne tanssipaikat 772 00:52:38.770 --> 00:52:40.940 nyt sitten tuhoutuvat sieltä. 773 00:52:40.940 --> 00:52:43.580 Mutta oikeastaan mä en halua tehdä sitä, vaan mä haluan 774 00:52:43.580 --> 00:52:49.340 tehdä nyt siitä vähän hienomman. Ja ja tota. 775 00:52:49.340 --> 00:52:52.560 Tota tota. 776 00:52:52.560 --> 00:52:57.660 Se miten se tehdään niin on on taas aavistuksen tekninen, jotenka 777 00:52:57.660 --> 00:53:01.560 mä nytten sen sen tässä nopeasti näytän. 778 00:53:01.560 --> 00:53:06.430 Eli idea olisi nyt seuraavanlainen. 779 00:53:06.430 --> 00:53:08.350 Pienennetään oliota nolla. 780 00:53:08.350 --> 00:53:11.690 Yksi sekunnin välein 5 kertaa ja vasta sitten kutsutaan 781 00:53:11.690 --> 00:53:16.560 kantaluokan tuhoa palikkaa aliohjelmaa. Eli. 782 00:53:16.560 --> 00:53:18.710 Eli tota. 783 00:53:18.710 --> 00:53:20.760 Anteeksi nyt mä menin muuten väärään kohtaan. 784 00:53:20.760 --> 00:53:37.610 Joo pieni hetki. Pieni hetki pieni hetki. 785 00:53:37.610 --> 00:53:43.540 Joo nyt mä tein muuten väärin elikkä mun piti tehdä. 786 00:53:43.540 --> 00:53:48.120 Ei tästä ota vastaan osumasta erilaista vaan tuhoa. 787 00:53:48.120 --> 00:53:52.660 Palikka aliohjelma joo, pahoittelut nyt mä nyt mä näköjään sekoilin ihan huolella 788 00:53:52.660 --> 00:53:58.480 elikkä jätetään tää ota vastaan osuma tälleen niinku se olikin ja sitten tehdään 789 00:53:58.480 --> 00:54:04.100 tänne palkkaluokan elikkä tänne kantaluokan puolelle tuhoa palikka joka oletus 790 00:54:04.100 --> 00:54:06.140 toteutuksena tuhoaa sen palikan itsensä. 791 00:54:06.140 --> 00:54:11.760 Joo pahoittelut nyt elikkä tätä tuhoa palikka aliohjelmaa kutsutaan sitten täällä palkkaluokassa, 792 00:54:11.760 --> 00:54:14.930 niin tässä kohtaa missä me aikaisemmin vaan tuhottiin se näin. 793 00:54:14.930 --> 00:54:19.560 Eli nyt me saadaan tästä palikan tuhoutumisesta yli kirjoitettava, joka me voidaan 794 00:54:19.560 --> 00:54:22.510 siellä finanssipolitiikan luokan puolella ylikirjoittaa. 795 00:54:22.510 --> 00:54:27.170 Eli vielä kokonaiskuva tästä, eli ota vastaan osuma. 796 00:54:27.170 --> 00:54:31.250 Toimii niin kuin ennenkin, mutta siellä palikan tuhoutumisen kohdalla kutsutaan 797 00:54:31.250 --> 00:54:35.020 tuhoa palikkana nimistä aliohjelmaa, joka meillä täällä palkkaluokassa on tämmöinen 798 00:54:35.020 --> 00:54:39.350 virtuaalinen eli yli kirjoitettava ja oletus toteutus sille on, että se vaan 799 00:54:39.350 --> 00:54:45.330 tuhoaa sen palikan itsensä ja tacit ja nyt mennään fancy palkkaluokan puolelle 800 00:54:45.330 --> 00:54:47.530 ja tätä ei pidä nyt siis nytten tehdä. 801 00:54:47.530 --> 00:54:53.710 Näin sori mä otan sen pois siitä ja ylikirjoittaa. 802 00:54:53.710 --> 00:55:00.970 Public överit ford. Tuhoa palikka näin tämä piti ylikirjoittaa. 803 00:55:00.970 --> 00:55:06.630 Joo hyvä. Tässä on monta monta. 804 00:55:06.630 --> 00:55:12.270 Muuttujaa kun tätä tätä tehdään niin niin pahoittelut että meni nyt vähän tuossa. 805 00:55:12.270 --> 00:55:15.280 Tuossa pasmat sekaisin, elikkä täällä olisi nyt tarkoitus tehdä 806 00:55:15.280 --> 00:55:20.090 se se mitä tuossa äsken äsken sanoin eli nolla. 807 00:55:20.090 --> 00:55:22.150 Tuhoutumisen yhteydessä niin nolla. 808 00:55:22.150 --> 00:55:27.510 Yksi sekunnin välein 5 kertaa pienentää kyseistä oliota ja vasta sitten kutsua sitä kantaluokan 809 00:55:27.510 --> 00:55:32.560 turvapaikkaa oli ohjelmaa eli sitä pistoroi metodia käytännössä. 810 00:55:32.560 --> 00:55:36.280 Eli meillä olisi joku aika askel eli eli nolla. 811 00:55:36.280 --> 00:55:38.300 Yksi sekuntia tässä tapauksessa. 812 00:55:38.300 --> 00:55:42.280 Mikä indikoi nyt sitä, että minkä ajan välein oli jota pienennetään 813 00:55:42.280 --> 00:55:44.260 ja sitten meillä olisi joku askeleiden määrä? 814 00:55:44.260 --> 00:55:49.200 Eli kuinka monta kertaa oli jotta pienennetään ennen kyseisen olion tuhoutumista 815 00:55:49.200 --> 00:55:54.880 ja nyt sitten se varsinainen homma tähän eli pieni silmukka. 816 00:55:54.880 --> 00:55:58.280 Joka käy läpi lukuja. 817 00:55:58.280 --> 00:56:02.140 Pannaan siellä lähtemään ykkösestä ja menemään. 818 00:56:02.140 --> 00:56:07.010 Pienennys askeleita. Verran eteenpäin. 819 00:56:07.010 --> 00:56:13.870 Ja joka ikisellä kierroksella niin me luodaan tämmöinen pikku ajastin. 820 00:56:13.870 --> 00:56:20.010 Jonka ainoana tehtävänä. On. 821 00:56:20.010 --> 00:56:24.290 On tota. Pienentää himpun verran sitä. 822 00:56:24.290 --> 00:56:29.040 Olion leveyttä. Tarkkaan ottaen puolittaa se. 823 00:56:29.040 --> 00:56:33.680 Ja sama juttu korkeudelle eli puolittaa korkeus ja nyt tää saattaa näyttää 824 00:56:33.680 --> 00:56:37.630 vähän oudolta, mutta tää on oikeasti jos pikkuisen katsoo niin oikeasti aika 825 00:56:37.630 --> 00:56:41.970 aika yksinkertainen homma, eli mä teen ajastimen joko laukeaa tasan yksi kerran 826 00:56:41.970 --> 00:56:44.190 eli se ei ole niinku säännöllisesti laukeava. 827 00:56:44.190 --> 00:56:49.760 Ajastin vain yksi kerran tapahtuva asia siellä meidän pelissä ja sitten ensimmäisenä 828 00:56:49.760 --> 00:56:53.450 argumenttina että milloin se tapahtuu ja nyt mulla on tässä tää forsell luokassa 829 00:56:53.450 --> 00:56:57.910 tää joka käy läpi lukuja ykkösestä vitoseen ja. 830 00:56:57.910 --> 00:57:02.860 Ja tota. Aika askel oli nolla. 831 00:57:02.860 --> 00:57:12.500 Yksi sekuntia eli tän homman tarkoitus on luoda nolla. 832 00:57:12.500 --> 00:57:14.520 Yksi sekunnin kohdalle ajastin nolla. 833 00:57:14.520 --> 00:57:18.240 2 sekunnin kohdalle ajastin nolla. 3 sekunnin kohdalle yksi 834 00:57:18.240 --> 00:57:18.240 ajastin ja niin edelleen aina sinne nolla. 835 00:57:18.240 --> 00:57:20.040 5 saakka ja jokaisella kierroksella sitten puolittaa sitä. 836 00:57:20.040 --> 00:57:23.570 Olion koko. 837 00:57:23.570 --> 00:57:28.690 Kirjoittaa vain vähän koodia kerrallaan ja katsoa, että toimiiko se homma vaiko eikö? 838 00:57:28.690 --> 00:57:32.430 No nää peruspalikat nyt ei ainakaan ole mennyt rikki, ne näyttäisi toimivan. 839 00:57:32.430 --> 00:57:34.250 Entäs nuo palleroiset nekin toimii? 840 00:57:34.250 --> 00:57:41.740 No sitten tää fancy eli punainen vihreä harmaa musta ja kyllä näyttäisi. 841 00:57:41.740 --> 00:57:44.900 Toimivan se ihan niinku pikkuiseksi tuonne ja nyt jos mä meen sitä 842 00:57:44.900 --> 00:57:47.610 vieläkin tökkimään niin ehkä mä sitäkin pystyn vielä tökkimään, että 843 00:57:47.610 --> 00:57:50.140 tää ei niinku se ei lopullisesti häviä sieltä. 844 00:57:50.140 --> 00:57:53.740 Eli se lopullinen häviäminen pitää vielä tehdä. 845 00:57:53.740 --> 00:57:56.280 Eli se kyllä hienosti siinä pienenee, mutta se ei lopullisesti 846 00:57:56.280 --> 00:57:59.680 häviä niin laitetaan sinne vielä yksi ajastin. 847 00:57:59.680 --> 00:58:03.660 Eli vielä yksi ajastin tuonne ihan loppuun, että kun ne kaikki aika 848 00:58:03.660 --> 00:58:07.040 askeleet on käyty läpi, niin sitten kutsutaan tätä base. 849 00:58:07.040 --> 00:58:10.590 Tuhoa palikka, joka on se kantaluokan toteutus sille tuhoamiselle. 850 00:58:10.590 --> 00:58:13.930 Ja jos mä nyt vielä kerran sinne vilkaisen niin sehän on se. 851 00:58:13.930 --> 00:58:16.030 Bistro. 852 00:58:16.030 --> 00:58:22.960 Eli sitten se pitäisi aivan lopullisesti hävitä. 853 00:58:22.960 --> 00:58:26.880 Ja nyt katsotaan miten käy pienen pienen taistelun jälkeen. 854 00:58:26.880 --> 00:58:28.680 Niin. 855 00:58:28.680 --> 00:58:33.020 Nyt se palikka sieltä tolleen kivasti animaation omaisesti siellä häviää ja tähän voi 856 00:58:33.020 --> 00:58:37.290 tehdä näitä aika askeleita vielä enemmänkin, että siihen saa vaikka. 857 00:58:37.290 --> 00:58:40.140 Vieläkin sulavammaksi tuon pienennysoperaation, mutta 858 00:58:40.140 --> 00:58:43.700 tuo nyt kelpaa mulle ihan ihan OK. 859 00:58:43.700 --> 00:58:47.720 Että tämmöistä pientä pientä visuaalista karkkia sitten voidaan voidaan 860 00:58:47.720 --> 00:58:50.410 tällä tavalla sinne peliin etten ajastimen avulla tehdä. 861 00:58:50.410 --> 00:58:52.520 Tässä on pienen pieni bugi. 862 00:58:52.520 --> 00:58:54.680 Paljastan sen nyt teille. 863 00:58:54.680 --> 00:58:58.100 Eli jos mä meen tähän pienentymisen yhteydessä tokaisemaan 864 00:58:58.100 --> 00:59:00.780 tota katsotaan onnistunko mä tokaisemaan sitä. 865 00:59:00.780 --> 00:59:04.990 Eli tuolla tavalla jos mä tokaisen sitä sen pienentymisen yhteydessä, niin valitettavasti 866 00:59:04.990 --> 00:59:09.080 tässä tapahtuu tämmöinen, että että se on jo tuhoutumassa. 867 00:59:09.080 --> 00:59:14.240 Eli tuolla hyppelin taustajärjestelmä niin kun me sanotaan että. 868 00:59:14.240 --> 00:59:17.850 Että tota base. Tuhoa palikka joka kutsuu sitä disc. 869 00:59:17.850 --> 00:59:19.720 Bistro metodia. 870 00:59:19.720 --> 00:59:24.700 Niin se lisätään semmoisten tuhottava öljyjen listaan ja jos mä menen semmoista tuhottävien 871 00:59:24.700 --> 00:59:29.420 olioiden listassa olevaa oliota tokaisemaan ja koskettelemaan sitä uudestaan ja ja sano 872 00:59:29.420 --> 00:59:32.970 vaan sille uudestaan, ettäpiste destroy, niin se ei oikein käy. 873 00:59:32.970 --> 00:59:36.330 Eli tässä tapahtuu tämmöinen niin että. 874 00:59:36.330 --> 00:59:41.890 Että tota se tuhottava olio yritetään tuhota sitä uudestaan ja ja siitä tulee 875 00:59:41.890 --> 00:59:47.590 tämmöinen ajonaikainen virhe tai invalid operation exception poikkeus ja tää 876 00:59:47.590 --> 00:59:52.770 voidaan korjata sillä tavalla, että kun kun se oli jo on nyt tässä kertaalleen 877 00:59:52.770 --> 00:59:57.500 merkitty tuhottävien olijoiden joukkoon lisätään. 878 00:59:57.500 --> 00:59:59.390 Lisätään se tota hetkinen. 879 00:59:59.390 --> 01:00:04.460 Mä ihan lunttaan tuossa noin että. 880 01:00:04.460 --> 01:00:06.880 Joo, eli tälle voidaan tehdä. 881 01:00:06.880 --> 01:00:09.800 Tähän on 2 tapaa miten tää bugi voidaan välttää. 882 01:00:09.800 --> 01:00:15.790 Eli me voidaan tässä palikan tuhoutumisen yhteydessä sanoa niin, että poistetaan siltä. 883 01:00:15.790 --> 01:00:19.580 Poistetaan siltä. Kaikki törmäys käsittelijät. 884 01:00:19.580 --> 01:00:21.680 Se on tämmöinen pitkänpuoleinen rimpsu. 885 01:00:21.680 --> 01:00:27.230 Toinen vaihtoehto on tehdä sellainen. Tuhotaan tapahtuma. 886 01:00:27.230 --> 01:00:29.350 Mä mä laitan sen tuonne mallikoodi. 887 01:00:29.350 --> 01:00:33.390 Mä en nyt sitä tässä ajaa voittamiseksi tee, mutta se on ehkä semmoinen ikään kuin. 888 01:00:33.390 --> 01:00:38.630 Voisiko sanoa elegantin piti elegantin tapa tehdä tehdä sitten niinku 889 01:00:38.630 --> 01:00:42.740 tapahtumapohjaisesti toi tuhoutuminen, mutta tää on nyt ehkä semmoinen 890 01:00:42.740 --> 01:00:46.800 candyn ratkaisu, mutta katsotaan nyt että se toimii. 891 01:00:46.800 --> 01:00:50.460 Eli nyt, jos me käydään sitä tökkimässä niin nyt sieltä ei ainakaan mitään poikkeusta 892 01:00:50.460 --> 01:00:53.520 tullut ja se kappalekin sieltä ihan oikeasti tuhoutuu. 893 01:00:53.520 --> 01:00:58.790 Eli nyt tää peli periaatteessa toimii eikä ainakaan aiheuta mitään poikkeuksia. 894 01:00:58.790 --> 01:01:03.930 Hyvä eli tässä koko tän homman pointti oli oli se että ikään kuin piilotetaan sitä 895 01:01:03.930 --> 01:01:08.450 toteutusta siitä teknisestä aspektista, että miten se väri vaihtuu. 896 01:01:08.450 --> 01:01:13.090 Miten miten se data liikkuu siellä olion sisällä, piilotetaan se sinne palkkaluokan 897 01:01:13.090 --> 01:01:19.230 puolelle ja se malli palkkamalli palkkaluokka pitää itse tiedon siitä. 898 01:01:19.230 --> 01:01:24.170 Itsellään kapseli tavallaan sen osumien määrän ja kapseli värien tiedon. 899 01:01:24.170 --> 01:01:26.770 Elikkä tästä nyt on niinku hyvä huomata se, että jos me 900 01:01:26.770 --> 01:01:29.330 mennään tuonne palikat luokan puolelle. 901 01:01:29.330 --> 01:01:31.810 Ja mietitään vaikka täältä tätä. 902 01:01:31.810 --> 01:01:35.650 Palikka oliota tässä rivillä kolmekymmentäyksi niin nyt mä en pysty 903 01:01:35.650 --> 01:01:39.570 sanomaan sitä, että palikkapiste värit on jotakin. 904 01:01:39.570 --> 01:01:43.530 Elikkä tämä on yksityinen muuttuja siellä palkkaluokan puolella ja raider 905 01:01:43.530 --> 01:01:49.880 sanoo tässä näin että käännät access private field_ värit ja. 906 01:01:49.880 --> 01:01:55.170 Ja jos mä haluaisin tuolle palikka oliolle oikeasti antaa kokonaan uuden väri spektrin. 907 01:01:55.170 --> 01:01:58.630 Sanotaan että tää red ja low green ei olisikaan hyvä vaan mä haluaisin 908 01:01:58.630 --> 01:02:01.200 sitä muuttaa niin mulla olisi 2 vaihtoehtoa. 909 01:02:01.200 --> 01:02:05.850 Joko mä tekisin tälle palikka luokalle semmoisen. 910 01:02:05.850 --> 01:02:09.770 Toiminnon eli metodin, jolla mä pystyisin niitä värejä vaihtamaan 911 01:02:09.770 --> 01:02:12.620 taikka sitten asettaisin tän värit. 912 01:02:12.620 --> 01:02:18.000 Ominaisuuden kokonaan public, jolloinka sitten pystyisi sitä sitä tuolla vaihtamaan. 913 01:02:18.000 --> 01:02:20.530 Se väri kokoelman public ja asettaminen. 914 01:02:20.530 --> 01:02:24.280 Minusta ei ole hyvä ajatus, koska meillä on tää osumat muuttuja joka pitää 915 01:02:24.280 --> 01:02:27.500 kirjaa siitä, että kuinka monta osumaa se on ottanut vastaan. 916 01:02:27.500 --> 01:02:31.540 Ja minusta jos me käytäisiin puukottamassa tätä värit luetteloa 917 01:02:31.540 --> 01:02:35.030 täällä, niin silloin tää näiden osumienkin pitäisi. 918 01:02:35.030 --> 01:02:39.430 Pitäisi varmaankin nolla tuo ja oikeasti minun mielestä paras tapa olisi 919 01:02:39.430 --> 01:02:42.650 käsitellä se tilanne täällä luokan puolella itsessään. 920 01:02:42.650 --> 01:02:45.190 Eli eli se oli jo hoitaisi sen tilanteen. 921 01:02:45.190 --> 01:02:48.490 Me ei sitä nyt tässä tehdä, mutta että sitä voi niinku itse pohtia niin, että 922 01:02:48.490 --> 01:02:53.930 mikä se värin värien muuttamisen efekti sitten loppujen lopuksi siinä oli siellä 923 01:02:53.930 --> 01:02:57.540 minkälaisia aspekteja siinä pitäisi ottaa huomioon. 924 01:02:57.540 --> 01:03:02.190 Mutta hyvä tässä nyt 2 tämmöistä pitkän puolesta esimerkkiä siitä, että minkälaista 925 01:03:02.190 --> 01:03:06.980 se olio ohjelmointi on siellä konsoliapissa ja sitten minkälaista se on täällä jebel 926 01:03:06.980 --> 01:03:11.460 pelimaailman puolella ja tämmöisiä palikka luokkia siellä sun pelissä sitten voisi 927 01:03:11.460 --> 01:03:16.880 hyvinkin olla esimerkiksi joku vihuluokka, jolla olisi sitten joku osuma pistemäärä 928 01:03:16.880 --> 01:03:21.970 taikka pelaajaluokka joka pitäisi yllä tietoa siitä, että montako pistettä se on kerännyt 929 01:03:21.970 --> 01:03:26.650 tai montako avainta se on sieltä jostain pelimaailmasta hakenut ja onko sillä kenties 930 01:03:26.650 --> 01:03:28.950 riittävä määrä niitä avaimia. 931 01:03:28.950 --> 01:03:31.090 Jotta se saa jonkun oven auki tai jotain vastaavaa tietoa. 932 01:03:31.090 --> 01:03:33.430 Se voisi voisi siellä pitää sisällään. 933 01:03:33.430 --> 01:03:38.350 Näitähän ei ole sinne peliin pakko tehdä, ne on täysin valinnaisia ominaisuuksia, mutta saattaa 934 01:03:38.350 --> 01:03:44.160 huomattavasti siisteyttää sitä sitä peliluokkaa ja tehdä siitä niinku puhuttu vähän tätä arkkitehtuuria 935 01:03:44.160 --> 01:03:48.860 ajattelua siihen peliin, että meillä on 2 tasoa missä niitä asioita on, eikä välttämättä niiden 936 01:03:48.860 --> 01:03:53.180 sekoittaminen sitten ole tarpeen tai ainakin se voi. 937 01:03:53.180 --> 01:03:57.750 Ainakin tää eriyttäminen voi huomattavasti selkeyttää sitä sitä koodia, 938 01:03:57.750 --> 01:04:01.110 mutta kiitoksia mukanaolosta päätellään tämän päivän luonto tähän ollaan 939 01:04:01.110 --> 01:04:03.350 pikkuisen etuajassa, mutta ei mitään. 940 01:04:03.350 --> 01:04:07.780 Ollaan viikon asiat käsitelty ja ensi viikolla sitten päästään tutustumaan 941 01:04:07.780 --> 01:04:11.780 kokoelmiin eli puhutaan hieman monipuolisimmista tieto rakenteista kuin 942 01:04:11.780 --> 01:04:14.590 mitä tähän mennessä ollaan käsitelty vielä kerran. 943 01:04:14.590 --> 01:04:18.230 Kiitoksia mukaan alusta, ei muuta kuin taas ahkerasti demoja tekemään. 944 01:04:18.230 --> 01:04:22.110 Käykää ohjauksessa hyödyntäkää niitä, laitoin sinne ohjauksista tiedon 945 01:04:22.110 --> 01:04:26.410 hieman lyhennetyt ajat ovat siinä jatkossa voimassa. 946 01:04:26.410 --> 01:04:29.080 Osallistujien vähyyden vuoksi, mutta käyttäkää niitä 947 01:04:29.080 --> 01:04:31.140 aikoja mitä siellä nyt tarjolla on. 948 01:04:31.140 --> 01:04:33.400 Ei muuta kuin mukavaa viikkoa jotka on kaikille moi moi.