Kirjautuminen

Haku

Tehtävät

Keskustelu: Yleinen keskustelu: Tilepohjaisista peleistä ja ovista

Mobel [10.06.2007 15:56:32]

#

Minulla on ollut jo jonkin aikaa valmisteilla tilepohjainen peliprojekti. Peli lataa kartat ja niiden tasot(layerit) omista tiedostoistaan.
Kartat ovat muotoa:

111111111111111
100000000000001
100000022000001
100000003000001
100000000000001
111111111111111
jne.

Sain hiljattain karttaeditorinkin valmiiksi, jolloin aloin miettiä ovien toteutusta. Ovista kulkeminen onnistuu, mutta ongelmaksi muodostuu karttojen muokattavuus. Eli teen kartan, jossa on ovi, ohjelma lukee kartan ja huomaa, että tuossa kohdassa on ovi piirtäen siihen oven tilen. Törmäystarkistus tarkistaa onko astuttu oven päälle, ja jos on, niin ladataan uusi kartta ja mennään sinne. Jos ollaankin kaupungissa ei ovesta tultaessa voidakaan aina aloittaa samasta paikasta, vaan olisi mukava aloittaa oven vierestä. Miten toteuttaisin ovista kulkemisen ja minne tallentaisin tiedot mihin ovesta tullaan niin, että kartan editoitavuus säilyisi? Olisiko oville tehtävä oma layeri?

Kielenä on Java, mutta sillähän ei ole merkitystä, sillä kysymys on lähinnä teoriatasoinen, eli ideaa lähinnä haen.

Toivottavasti onnistuin olemaan mahdollisimman epäselvä ja joudutte kysymään tarkennusta kysymykseeni! ^^

Sami [10.06.2007 16:21:06]

#

Yksi mahdollisuus on esimerkiksi merkinnät kartan jälkeen, eli muutat karttaformaattia esim näin:

15 6
111111111111111
100000000000001
100000022000001
100000003000001
100000000000001
111O11111O11111

[ovet]
10 6 kaupunki 22 17
4 6 kaupunki 16 17

Alussa olevat kaksi lukua kertovat kartan leveyden ja korkeuden.
Sitten tulee annetun kokoinen kartta, missä O on ovi.
[ovet]-kohta taas kertoo kaikkien ovien tiedot seuraavassa muodossa:
[oven x-koordinaatti] [oven y-koordinaatti] [kartta, mille pitää siirtyä ovesta mentäessä] [saapumispaikan x-koordinaatti uudella kartalla] [saapumispaikan y-koordinaatti uudella kartalla]

Tämä ei välttämättä ole selkein tai optimoiduin tapa tehdä tätä, mutta pitäisi ainakin olla toimiva ja kohtuullisen helppo toteuttaa.

Mobel [10.06.2007 16:43:16]

#

Kiitoksia ehdotuksesta!
Toteuttamisen arvoinen idea ja vielä helppo koodata. Tietenkin jos muita ehdotuksia tulee otan niitä vastaan.

Vastaus

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

Tietoa sivustosta