(toiminnot)

hwechtla-tl: Nettipäiväkirja 17.03.2013

Kierre.png

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


Olen tehnyt tänä viikonloppuna huvikseni Scratch-ohjelmointikielellä mukailtua uudelleentoteutusta pelistä nimeltä Crystal Quest (Mac-klassikko 80-luvun lopulta). Scratchin kanssa on jännää työskennellä, koska sillä on tosi hauskaa tehdä pelejä, mutta välillä normaalien ohjelmointikielten ominaisuuksien (kuten tietorakenteiden ja funktioiden) puuttuminen vaatii samanlaista kikkailua kuin esoteerisissa ohjelmointikielissä. Onneksi olen ehtinyt miettiä paljon sellaisia.

Se, mikä tulee minulle vähän uutena Scratchin kanssa, on kiljoonat rinnakkaisuuden aiheuttamat ongelmat. Scratch on aidosti rinnakkaistettu ohjelmointiympäristö, jossa ei edes pysty tekemään ohjelmia siten, että saisi taatuksi, missä järjestyksessä eri hahmojen skriptejä suoritetaan. En ole löytänyt Scratchista lukitusprimitiivejä, joten koodin kirjoittaminen ilman race conditioneita vaatii todellista miettimistä.

Scratch muistuttaa tietomalliltaan Hypercardia, mutta siinä on kaksi asiaa, jotka vaikeuttavat sen käyttöä. Ensinnäkään en ole keksinyt tapaa, jolla scratchissa saisi pelin/ohjelman eri tiloja eristetyksi omiksi ympäristöikseen. Pitää vain vaihtaa tausta, piilottaa kaikki tarpeettomat hahmot ja näyttää kaikki tarvitut. En edes tiedä, onko keinoa pysäyttää piilotettujen hahmojen skriptit. Toisekseen Hypercardissa oli helpompaa muutella eri olioiden (painikkeiden, kenttien jne) tilaa, joten ohjelmat sai kerätyksi yhteen paikkaan sen sijaan, että jokainen olio toteuttaa omia ohjelmiaan. Näin vältti rinnakkaisuuden ongelmia.


kommentoi (viimeksi muutettu 18.03.2013 10:13)