Kartat : funktiot

LOADMAP


   KUVAUS

Tämä funktio lataa kartan levyltä muistiin. Kartta ilmestyy saman tien ruudulle oletuspaikkaan (0,0). Tilekartat piirretään aina keskitettynä ja ne käyttävät maailman koordinaatteja. Huomaa, että vain yksi kartta kerrallaan voi olla ladattuna. Jos teet tai lataat uuden kartan, entinen tuhotaan ensin.

Tilekarttoja tehdään Tilester-ohjelmalla, joka tulee CoolBasicin mukana. Löydät sen CoolBasicin valikoista. Tilesterillä on myös suomenkielinen manuaali, jonka löydät Tilesterin kansiosta (Ohjelmatiedostot tai Program Files ja Tilester).

Tilekartoissa on aina neljä kerrosta: tausta, päällys, törmäys ja data. Vain kaksi ensimmäistä piirretään. Objektit sijoitetaan näiden kahden väliin, joten päälliskerrokseen on mahdollista luoda piiloja, joiden alle pelaajat ja muut esineet voivat kätkeytyä. Voit kytkeä tarpeettomien kerroksien piirtämisen pois päältä lisänopeuden saavuttamiseksi. Kts. komento SetMap.

Tilekarttojen piirtämiseen käytetään tilesettiä. Se on iso kuva, joka sisältää paljon pienempiä kuvia. Ne on sijoitettu saumattomasti vieri viereen samaan tapaan kuin animoiduissa kuvasarjoissa (kts. komento LoadAnimImage). Tätä settiä voi jopa vaihtaa lennossa, ja muuttaa kartan sävytystä tai ulkonäköä dramaattisesti. Tilesetti voi olla BMP/JPG/PNG/TGA-kuva. Voit myös merkkijonon sijasta antaa kuvamuuttujan, jos setti on jo ladattu kuvana muistiin.

Törmäyskerros sisältää tiedon niistä kohdista, joiden päältä ei voi kävellä. Tähän kerrokseen on siis tallennettu kaikki kentän "seinät". Käytä Tilesterin HIT-kerrosta luodaksesi nämä tiedot.

Data-kerrokseen voidaan tallentaa lisätietoa kartasta. Esimerkiksi ns. trigger-zonet, joiden päälle astuessaan pelaaja laukaisee jonkin tapahtuman. Myös hidastavaa mutaa tai polttavaa laavaa tai säteilyä voidaan koodata kartan data-kerrokseen. Data-kerros sisältää erilaisia lukuja. Data-kerrokseen pääsee käsiksi funktioilla GetMap ja GetMap2. Datakerros on tarkoitettu edistyneille käyttäjille, ja se on yleensä aloittelijoille turha.

Tilekarttaan käytetään normaaleita objekti-komentoja: Voit poistaa kartan komennolla DeleteObject tai siirtää sen toiseen paikkaan komennolla PositionObject.

Kartta niin ikään animoidaan komennolla PlayObject tai LoopObject. Ei ole väliä, kumpaa käytät, kartta pysyy animoituna kunnes se pysäytetään komennolla StopObject. Poikkeuksena fremejen aloitus- ja lopetusarvoilla ei karttojen kanssa ole merkitystä, vaan kartat animoidaan sen omien määritysten mukaan. Sen sijaan voit vaikuttaa animointinopeuteen. Tosin sekin poikkeaa hieman normaalien objektien animoinnista. Animaation nopeus määritetään sekunteina, joten numero 1 animoi karttaa joka sekunti, numero 2 vain joka toinen sekunti. 0.1 kymmenen kertaa sekunnissa jne.

Karttaan asetetaan törmäys- ja poimintaominaisuudet normaaleilla objektikomennoilla.

Tilekartat kannattaa yleensä ladata ennen muita objekteja, jotta kartta piirtyy kaikkien alle.

Funktio palauttaa nollan, jos kuvaa ei voitu ladata.

Älä koskaan lataa kovalevyltä mitään silmukan sisällä! Tätä komentoa tulisi käyttää vain ohjelman alussa.

   KÄYTTÖ
LOADMAP (tiedostonimi, tilesetti)

  • tiedostonimi = Merkkijono: Ladattavan kartan nimi tai polku.
  • tilesetti = Merkkijono: Kartan tilesetti-kuvan nimi tai polku. / Kokonaisluku: Kuvamuuttuja, jos setti on jo ladattu kuvana muistiin

  • Katso myös: MAKEMAP

       ESIMERKKI
    FrameLimit 40 'limit game performance

    'Load map and animate it (2 times a second)
    map= LoadMap("Media\cdm2.til","Media\tileset.bmp")
    PlayObject map,0,0,0.5

    'Load the character and setup a collision for it
    guy= LoadObject("Media\soldier.bmp",72)
    SetupCollision guy,map,2,4,2

    'The game
    Repeat

        'Control the guy
        If LeftKey() Then TurnObject guy,5
        If RightKey() Then TurnObject guy, -5
        If UpKey() Then MoveObject guy,4
        If DownKey() Then MoveObject guy, -4

        'Stick camera to the guy
        CloneCameraPosition guy

        DrawScreen

    Until EscapeKey()

    <<TAKAISIN