Objektit : komennot

SETUPCOLLISION


   KUVAUS

Tässä se on. Kaikkien rakastama automaattinen törmäyksentunnistus. Etkä tarvitse juuri muuta kuin tämän komennon! Tällä komennolla esittelet CoolBasicille mitkä objektit voivat törmätä keskenään ja siten eivät voi mennä päällekkäin tai kulkea lävitse. Tämä tapahtuu esittelemällä CoolBasicille kaksi objektia, törmäyksen tyypit sekä menettelytapa törmäyksen sattuessa. Aivan kaikkia mahdollisia törmäysyhdistelmiä ei ole vielä saatavilla, mutta niitä lisätään tulevissa ohjelmapäivityksissä. Voit esitellä seuraavat törmäykset:

Törmäävä -> Törmättävä Menettelytavat Esitys

(laatikko)
1
->
(laatikko)
1
liukuva
2
1,1,2

(laatikko)
1
->
(kartta)
4
liukuva
2
1,4,2

(pallo)
2
->
(pallo)
2
pysähdys (1)
liukuva (2)
2,2,1
2,2,2

(pallo)
2
->
(kartta)
4
pysähdys (1)
liukuva (2)
2,4,1
2,4,2

Jos et tajunnut taulukosta mitään, otetaan esimerkki. Haluat pallo-pallo -törmäyksen. Haluat sen liukuvana. Joten katsot taulukosta... se on siis 2,2,2.

Karttaa tai liikkumatonta pelimaailmaa koskevat törmäykset kannattaa esitellä viimeiseksi.

   KÄYTTÖ
SETUPCOLLISION objektimuuttuja, kohde_objekti, lähdetyyppi, kohdetyyppi, menettelytapa

  • objektimuuttuja = Se objekti, jonka pitäisi törmätä johonkin.
  • kohde_objekti = Se objekti, johon voidaan törmätä.
  • lähdetyyppi = Minkätyyppinen törmäys lähdeobjektilla on? 1=laatikko, 2=pallo.
  • kohdetyyppi = Minkätyyppinen törmäys kohdeobjektilla on? 1=laatikko, 2=pallo.
  • menettelytapa = Miten menetellään törmäyksen sattuessa? 1=pysähdy, 2=liukuva.

  • Katso myös: COUNTCOLLISIONS CLEARCOLLISIONS

       ESIMERKKI
    FrameLimit 40

    'load map
    map=LoadMap("Media\testmap.til","Media\negative.bmp")

    'load player
    guy=LoadObject("Media\guy.bmp",72)
    PositionObject guy,0, -40

    'load a neutral unit
    fellow=LoadObject("Media\guy.bmp",72)
    PositionObject fellow, -100, -40

    'setup a circle-circle sliding collision to the fellow
    SetupCollision guy,fellow,2,2,2

    'setup a collision between the player and map
    SetupCollision guy,map,1,4,2


    Repeat

        'Controls
        If LeftKey() Then TurnObject guy,5
        If RightKey() Then TurnObject guy, -5
        If UpKey() Then MoveObject guy,3
        If DownKey() Then MoveObject guy, -3
        
        'camera follow
        UpdateGame
        CloneCameraPosition guy

        DrawScreen

    Until EscapeKey()

    <<TAKAISIN