Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: QB: Enginen perusrakenne

sqwiik [29.09.2003 21:24:09]

#

Rakentelen parhaillaan ERKKI-nimistä engineä (projekteissa), ja se pohjautuu tällä hetkellä ns. paluuarvoihin. Eli kaikkea toimintaa tutkitaan funktioilla, esim.
SELECT CASE handle.map(erkki.x, erkki.y, xm, ym, SThand)
CASE happ.door.opened: PRINT "Avasit oven."
CASE happ.door.closed: PRINT "Suljit oven."
CASE happ.door.is.locked: PRINT "Ovi on lukossa!"
END SELECT

Kyseinen koodinpätkä oli suoraan erkki-pelistä. Onko kenelläkään vaihtoehtoista järjestelmää, joka olisi hieman kehitysystävällisempi?

Tässä vaiheessa perustoiminta on vielä helppo muuntaa...

glottis [30.09.2003 11:41:30]

#

Näin yhtäkkiä voisi kuvitella, että muutamiin muuttujiin määritellyillä else tai else if lausekkeilla saisi ihmeitä aikaan...

Tämä on vain villi veikkaus =)

Antti Laaksonen [30.09.2003 13:49:25]

#

Mitä tarkoitat kehitysystävällisemmällä? Enpä ainakaan heti keksi, miten tuota koodinpätkää voisi parantaa.

sqwiik [30.09.2003 16:52:08]

#

No ehhm... Katsos kun KAIKKIA funktioita kutsutaan melkein samalla tavalla. Moninaisten palautusarvojen kanssa seikkailu taasen kuluttaa ohimolohkoja, joskus jopa (melkein) tarpeettomasti. Enginessä kulkee mukana muutama universaali muuttuja, joista tietoa voi myös lukea (esim. previous.creature.link ja ftransfer), joiden kanssa sitten sompaillaan ja KUNNOLLA.
<<< Esim >>>
SELECT CASE attack.to(-1, previous.creature.link)
CASE attack.damage: PRINT "Haavoitit vastustajaa!"
END SELECT
<<< END esim >>>

Eli ylempi on vielä simppeli... Mutta jos haluaa hieman enemmän infoa tapahtumasta, niin ?? Engine käyttää tällä hetkellä juuri noita universaaleja muuttujia. attack.to:n jälkeen p.c.l on hyökätty olio, ja ftransfer olion linkki.

Eli onko tämä nyt juuri se selkein tapa käytössä, vai pitäisikö vielä kehittää?

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta