Huom! Nämä wikisivut ovat osittain vielä työn alla, osa sisällöstä saattaa olla puutteellista. Ongelmakohtien viereen voit jättää kommentin, yliopiston käyttäjät myös pystyvät (ja saavat) muokata sivuja.

Jypelin käyttöohjeet » Miten peliin saa räjähdyksen?

Tällä sivulla opastetaan yksinkertaisen räjähdyksen tekeminen. Tämän sivun räjähdyksestä syntyy myös paineaalto, joka vaikuttaa pelissä oleviin fysiikkaolioihin.

Jos haluat tehdä vähän monimutkaisemman ja näyttävämmän räjähdyksen, josta ei synny paineaaltoa (eli on pelkkä efekti) katso Efektit/räjähdys.

1. Räjähdyksen luominen

Räjähdyksen voi luoda seuraavalla tavalla:

Explosion rajahdys = new Explosion(50);
rajahdys.Position = olio.Position;
Add(rajahdys);
  • Esimerkissä siis luodaan ensimmäisellä rivillä räjähdys, jonka halkaisija on 50. Toisella rivillä sijoitetaan räjähdys samaan paikkaan kuin olio, joka räjähtää. Kolmannella rivillä räjähdys lisätään kenttään.

2. Ominaisuudet ja ulkonäkö

Räjähdyksen nopeutta ja paineaallon voimakkuutta voi säädellä räjähdyksen ominaisuuksista.

rajahdys.Speed = 500.0;
rajahdys.Force = 10000;

Räjähdyksellä on valmiina oletustekstuuri ja -ääni. Voit myös halutessasi vaihtaa ne toisiksi (kts. sivut tekstuurin lisääminen ja äänet peliin). Kuvan tai äänen saa pois räjähdykseltä asettamalla sen arvoksi null.

rajahdys.Image = rajahdysKuva;
rajahdys.Sound = rajahdysAani;

Lisäksi räjähdyksen paineaallon väriä voi muuttaa. Jypelin valmiit värit eivät ole läpinäkyviä, joten ne peittävät räjähdykselle annetun kuvan.

Voimme kuitenkin itse määrittää uuden värin, jossa on mukana läpinäkyvyys.

//Paineaallon väri peittää räjähdyksen kuvan:
rajahdys.ShockwaveColor = Color.Yellow;

//Läpinäkyvä väri päästää läpi räjähdyksen kuvan
//Kolme ensimmäistä parametria ovat värin punaisen, vihreän ja sinisen värin määrä
//Neljäs parametri on värin läpinäkyvyys
//Parametrien arvot ovat väliltä 0 - 255.
rajahdys.ShockwaveColor = new Color(255, 0, 150, 90);

3. Paineaallon tapahtuma

Räjähdykselle saa myös kutsumaan omaa aliohjelmaa, kun paineaalto osuu johonkin olioon.

rajahdys.ShockwaveReachesObject += PaineaaltoOsuu;

tai yhteen tiettyyn olioon

rajahdys.AddShockwaveHandler(olio, PaineaaltoOsuu);

tai useaan tietyn tyyppiseen olioon, joilla on kaikilla sama Tag-ominaisuuden arvo (tässä "taso"):

rajahdys.AddShockwaveHandler("taso", PaineaaltoOsuu);

Aliohjelman tulee näyttää parametreiltaan tältä:

void PaineaaltoOsuu(IPhysicsObject olio, Vector shokki)
{
   // tehdään jotain
}

missä olio on olio, johon paineaalto on osunut, ja shokki vektori, jonka suuntaan räjähdys on oliota heittänyt.

4. Paineaallon huomiotta jättäminen

Jos haluat, että paineaallot eivät vaikuta johonkin olioon, voit kirjoittaa:

pelaaja1.IgnoresExplosions = true;

These are the current permissions for this document; please modify if needed. You can always modify these permissions from the manage page.