(toiminnot)

hwechtla-tl: Teema 6: paikkoja ja hahmoja

Kierre.png

Mikä on WikiWiki?
nettipäiväkirja
koko wiki (etsi)
viime muutokset


Harjoitus 6a: paikkojen nimet

Kääntymällä ja hypsähtelemällä on helppoa tehdä toistensa ympäri liikkuvia hahmoja, mutta mitä, jos haluammekin tehdä hahmoja, jotka liikkuvat toisistaan riippumatta? Silloin auttaa se, että jokaisella ruudun kohdalla on oma nimi, jonka perusteella kyseiseen kohtaan voi siirtyä suoraan. Nimeä sanotaan paikan koordinaateiksi ja se koostuu kahdesta luvusta.

Lennokin tämänhetkisen paikan saa tietää komennolla "paikka". Kokeile tätä:

? sano paikka
93.930424 -106.442418

(Luvut voivat olla sinulla erilaiset, jos lennokki on sinulla eri kohdassa kuin minulla.) Ensimmäinen luku on paikan "etunimi" ja kertoo, missä kohtaa lennokki on vaakasuunnassa; toinen luku ("sukunimi") kertoo, missä kohtaa pystysuunnassa. Paikat, jotka ovat samalla pystyviivalla, ovat etunimiltään samat eli kaimoja (pystysuunnassa liikkuminenhan ei vaikuta vaakasuuntaiseen paikkaan) ja paikat, jotka ovat samalla vaakaviivalla, ovat sukunimiltään samat eli sukulaisia.

Paikan etunimiluku on sitä suurempi, mitä enemmän lennokki on oikealla. Jos lennokki on keskellä ruutua, etunimi on nolla, jos vasemmalla puoliskolla, etunimi on miinusmerkkinen, ja jos oikealla, etunimi on plusmerkkinen. Sukunimi on sitä suurempi, mitä ylempänä lennokki on. Keskellä ruutua tämäkin nimi on nolla, alhaalla miinusmerkkinen ja ylhäällä plusmerkkinen. Niinpä lennokki on minulla ilmeisesti jossain oikealla (93.930424) ja alhaalla (-106.442418).

Vaakasuunnan lukua (eli etunimeä) kutsutaan yleensä nimellä x ja pystysuunnan lukua (eli sukunimeä) nimellä y (syy tähän on historian hämärissä). Komento, jolla voi siirtyä suoraan haluamansa nimiseen paikkaan, on nimeltään hypsxy. Komento ottaa kaksi syötettä, paikan etu- ja sukunimen eli x:n ja y:n. Voit kokeilla sitä, mutta kannattaa ensin ottaa lennokki näkyviin, jotta näet, mihin se siirtyy:

? uusi
? näkyviin
? hypsxy 100 100
? hypsxy 0 0
? hypsxy 0 100
? hypsxy -30 70
? hypsxy -130 70
? hypsxy -130 -70

Harjoittele nyt saamaan lennokki haluamaasi paikkaan. Osoita sormellasi jotain kohtaa ruudusta ja yritä sitten saada kirjoitetuksi hypsxy-komento, jolla pääset kyseiseen kohtaan. (Jos tästä ei meinaa tulla mitään, ohjaa lennokki sinne tutuilla et-, oi- ja va-komennoilla ja pyydä Logoa kertomaan lennokin paikka.)

Harjoitus 6b: vapaasti lentävät asiat

Nyt käytetään kerta- ja hypsxy-komentoja siihen, että lennätetään hahmoja eri suuntiin näytöllä. Uusi-komento vaihtuu taas pyyhi-komentoon, koska keskelle palaamisesta ei ole mitään hyötyä, kun kerran menemme joka tapauksessa suoraan johonkin paikkaan nimen perusteella käyttäen hypsxy-komentoa.

Tässä on ensimmäinen kokeilu, kaksi eri suuntiin menevää neliötä:

? piiloon
? toista 100 [pyyhi hypsxy 0 kerta neliö hypsxy kerta 0 neliö odota 1]

Miksi toinen neliö menee ylös ja toinen oikealle? Koska ensimmäisessä hypsxy-komennossa vaakasuunta on aina 0 (eli neliö on keskellä näyttöä vaakasuunnassa) mutta pystysuunta kasvaa koko ajan (eli neliö siirtyy ylöspäin); toisessa hypsxy-komennossa nämä ovat juuri toisin päin eli neliö on keskellä näyttöä pystysuunnassa mutta vaakasuunta kasvaa koko ajan eli neliö siirtyy oikealle.

Kertomalla toistokertaa eri luvuilla saa eri suuntiin liikkuvia hahmoja:

? miten tähti
> toista 5 [et 30 oi 144]
> valmis
tähti määritelty
? toista 150 [pyyhi hypsxy 100-kerta 2*kerta-150 tähti
              hypsxy 1.5*kerta-100 kerta-50 tähti
              hypsxy 2.5*kerta-200 0-kerta tähti odota 1]

Laskukaava voi tietenkin olla mielivaltaisen monimutkainen:

? toista 150 [pyyhi hypsxy 70/(kerta/10-7.55) 3*kerta-kerta*kerta/50 tähti odota 2]

Harjoitus 6c: monen lennokin käyttö

XXX TODO


Pikalinkit:


kommentoi (viimeksi muutettu 28.04.2014 23:07)