
Tilejen lisääminen karttaan
Tilejen lisääminen karttaan
Yksi pienoinen peli olisi tekeillä jossa tilekarttaan pitäisi lisätä tilejä. Siis ei mitään objekteilla pelailua, vaan tilejen lisäilyjä. En löytänyt haulla, joten vastauksia viisaammilta, kiitos. 

<Ize> Pitäs tehä allekirjotus..
<Ize> Vois keksiä jonkin nasahtavan sanonnan..
<Ize> Siitä tulis upea legenda ja kaikki vaihtaisivat allekirjoituksensa siihen.
<Ize> Ehkä ei kuitenkaa...
<Ize> Vois keksiä jonkin nasahtavan sanonnan..
<Ize> Siitä tulis upea legenda ja kaikki vaihtaisivat allekirjoituksensa siihen.
<Ize> Ehkä ei kuitenkaa...
Re: Tilejen lisääminen karttaan
Editmap? Vai tarkoitatko että pitäisi kentän kokoa suurentaa?
Tilejen lisääminen karttaan
Editmap muuttaa kartaa lennossa? Kyse on yhden tilen lisäämisestä kerrallaan valmiiseen karttaan, eikä uuden satunnaisen kartan luomisesta.Character wrote:Editmap? Vai tarkoitatko että pitäisi kentän kokoa suurentaa?
<Ize> Pitäs tehä allekirjotus..
<Ize> Vois keksiä jonkin nasahtavan sanonnan..
<Ize> Siitä tulis upea legenda ja kaikki vaihtaisivat allekirjoituksensa siihen.
<Ize> Ehkä ei kuitenkaa...
<Ize> Vois keksiä jonkin nasahtavan sanonnan..
<Ize> Siitä tulis upea legenda ja kaikki vaihtaisivat allekirjoituksensa siihen.
<Ize> Ehkä ei kuitenkaa...
Re: Tilejen lisääminen karttaan
Editmap muuttaa tilekartan tietyn tilen id:tä. MakeMap() luo uuden kartan.
Eli jos sinulla on kartta joka on 10*10 tilen kokoinen, niin Editmap map, 0, 1, 1, 100 asettaa taustakerrokseen datan 100 (tilekartan tile-id 100), vasempaan yläkulmaan.
Edit: jos tosiaan haluat muuttaa kartan kokoa niin sano, niin yritetään ratkaista.
Eli jos sinulla on kartta joka on 10*10 tilen kokoinen, niin Editmap map, 0, 1, 1, 100 asettaa taustakerrokseen datan 100 (tilekartan tile-id 100), vasempaan yläkulmaan.
Edit: jos tosiaan haluat muuttaa kartan kokoa niin sano, niin yritetään ratkaista.
Tilejen lisääminen karttaan
Ensin en tullut ajatelleeksi, että kartan kokoa pitäisi muuttaa, mutta nyt tarkemmin ajatellen, se on välttämätöntä. Komentoa ei moiseen varmaankaan ole, joten se pitää toteuttaa toisella tapaa?
Toi editmap, my bad, luin komennon ohjeen nopeasti ja koodausskillssit muutenki ruosteessa.
Toi editmap, my bad, luin komennon ohjeen nopeasti ja koodausskillssit muutenki ruosteessa.

<Ize> Pitäs tehä allekirjotus..
<Ize> Vois keksiä jonkin nasahtavan sanonnan..
<Ize> Siitä tulis upea legenda ja kaikki vaihtaisivat allekirjoituksensa siihen.
<Ize> Ehkä ei kuitenkaa...
<Ize> Vois keksiä jonkin nasahtavan sanonnan..
<Ize> Siitä tulis upea legenda ja kaikki vaihtaisivat allekirjoituksensa siihen.
<Ize> Ehkä ei kuitenkaa...
Re: Tilejen lisääminen karttaan
Muistaakseni cb kykenee pitämään muistissa vain yhtä karttaa kerrallaan, eli jos et halua käyttää jotain tehtyä karttakirjastoa (tietääkseni ainakin yksi on tehty), niin paras mieleeni tuleva tapa jolla saat kasvatettua kartan koko lennosta on seuraavanlainen:
Pidät kartan dataa muistissa omassa moniulotteisessa taulukossasi.
Aina kun muokkaat karttaa, muokkaatkin MapData-taulukkoa. Jos muutat kokoa joudut muuttamaan myös MapData-taulukon kokoa ja luomaan itse kartan (MakeMap) uudestaan.
Huomaa että jos karttaa (omaa kartta-dataa) muokataan muuttamatta kartan kokoa, on turha kutsua updateMap()-funktiota (käytä mieluummin erillistä EditMappia).
Pidät kartan dataa muistissa omassa moniulotteisessa taulukossasi.
Code: Select all
Dim MapData(mWidth, mHeight, layerAmount)
Code: Select all
Dim MapData(mWidth, mHeight, layerAmount)
//Jos kartan kokoa muutetaan, mWidth ja mHeight saavat uuden arvon
If mWidth <> oldWidth Or mHeight <> oldHeight Then
ClearArray OFF
ReDim MapData(mWidth, mHeight, layerAmount)
oldWidth = mWidth
oldHeight = mHeight
MapData(muokattavaX, muokattavaY, muokattavaLayer) = muokkausId
map = MakeMap(mWidth, mHeight, 32, 32)
PaintObject map, set
UpdateMap()
EndIf
//tätä kutsutaan aina kun kartan kokoa on muokattu jollain tapaa
Function updateMap()
//käydään kartta läpi ja piirretään se uudestaan
For i = 0 To layerAmount
For x = 0 To mWidth
For y = 0 To mHeight
EditMap map, i, x, y, MapData(x, y, i)
Next y
Next x
Next i
EndFunction