Kartat : komennot

EDITMAP


   KUVAUS

Tämä komento muokkaa karttaa lennossa. Tämä tarkoittaa sitä, että voit rakentaa ja muokata tilekarttoja pelin aikana, eikä ohjelman suoritusnopeus kärsi ollenkaan.

Voit esimerkiksi räjäyttää seiniä pois tai luoda esteitä pelaajan tielle. Tai sitten voit muuttaa veden laavaksi ja niin pois päin...

Tilekartat sisältävät tiedon siitä, mikä osa tilesettiä piirretään mihinkin paikkaan. Tilekartat ovat taulukoita, jotka sisältävät kuvien tapaan tiedon ei pikseleistä vaan piirrettävistä tileistä. Kuvitellaan, että sinulla on taulukko, joka on kirjoitettu täyteen ykköstä. Silloin koko kartta täytetään tilesetin ensimmäisellä kuvalla. Voit muokata ajon aikana tätä tietoa, ja muuttaa oleellisesti kartan ulkonäköä tai törmäysaluetta.

CoolBasicin kartoissa on neljä kerrosta: taustakerros, päälliskerros, törmäyskerros ja datakerros. Vain kaksi ensimmäistä piirretään. Numerointi menee 0-3. Objektit piirretään taustan ja päällisen väliin. Törmäyskerros sisältää vain nollia tai ykkösiä; nolla=ei törmäystä / 1=törmäys. Jos siis räjäytät seinän pois, sinun täytyy muokata sekä piirrettävää kerrosta (yleensä 1) että törmäyskerrosta (2).

Koordinaatit annetaan tileinä. Kartan vasen yläkulma on (1,1).

Komennon avulla onnistuu melkein mikä vain - vain mielikuvitus rajoittaa.

   KÄYTTÖ
EDITMAP kartta, kerros, x, y, tile

  • kartta = Se karttamuuttuja, mihin kartta luotiin tai ladattiin.
  • kerros
    0 = taustakerros
    1 = päällikerros
    2 = törmäyskerros
    3 = datakerros
  • x = Kokonaisluku. X-koordinatti tileinä.
  • y = Kokonaisluku. Y-koordinatti tileinä.
  • tile = Kokonaisluku. Piirrettävän tilen järjestysnumero (1->).

  • Katso myös: GETMAP2

       ESIMERKKI
    FrameLimit 40

    'Create a map from Blank
    map=MakeMap(32,32,32,32)
    u=LoadObject("Media\guy.bmp",72)

    'Apply some graphics on it
    tileset=LoadImage("Media\tileset.bmp")
    PaintObject map,tileset

    'Randomly fill the map
    For y=1 To MapHeight()
    For x=1 To MapWidth()
        If Rand(1,5)=5 Then
            EditMap map,0,x,y,2 'drawing
            EditMap map,2,x,y,1 'collision
        Else
            EditMap map,0,x,y,145
        EndIf
    Next x
    Next y

    'The game loop-itself
    Repeat

        If UpKey() Then MoveObject u,2
        If DownKey() Then MoveObject u, -2
        If LeftKey() Then TurnObject u,5
        If RightKey() Then TurnObject u, -5
        
        'Glue camera to object position
        CloneCameraPosition u
        
        DrawScreen

    Forever

    <<TAKAISIN