Matopeli - vaihe 6

Tässä vaiheessa lisätään loput madot ja niiden liikuttaminen USB-peliohjaimella.

Kolmas mato

Kolmannen madon lisääminen onnistuu kuten edellisten kahden. Lisätään ensin pelin luokkaan kolmas pelaajamuuttuja sekä ladataan sitä varten kuvat:

public class Matopeli : PhysicsGame
{
    const int ALKUPALOJA = 8; // Monestako palasta pelaajat koostuvat aluksi.

    Mato pelaaja;
    Mato pelaaja2;
    Mato pelaaja3;
    
    Image paaKuva1 = LoadImage("pelaaja1paa");
    Image hantaKuva1 = LoadImage("pelaaja1hanta");
    
    Image paaKuva2 = LoadImage("pelaaja2paa");
    Image hantaKuva2 = LoadImage("pelaaja2hanta");
    
    Image paaKuva3 = LoadImage("pelaaja3paa");
    Image hantaKuva3 = LoadImage("pelaaja3hanta");


    public override void Begin()
    {

Lisätään sitten LuoKentta-aliohjelman alkuun kolmannen pelaajan luominen niin, että käytetään ladattuja kuvia:

    void LuoKentta()
    {
        pelaaja = LuoMato("pelaaja1", new Vector(0, 0), paaKuva1, hantaKuva1);
        pelaaja2 = LuoMato("pelaaja2", new Vector(0, 0), paaKuva2, hantaKuva2);
        pelaaja3 = LuoMato("pelaaja3", new Vector(0, 0), paaKuva3, hantaKuva3);

Kolmannen madon ohjaaminen peliohjaimella

Toteutamme kolmannen madon ohjaamisen peliohjaimella, jotta näppäimistöllä ei tarvitse pelata kuin kahden pelaajan. Halutessasi voit tietysti tehdä kaikki loputkin madot ohjautumaan näppäimistöltä kuten madot 1 ja 2.

Ohjaaminen peliohjaimen suuntanäppäimillä

Lisää AsetaOhjaimet-aliohjelmaan seuraavat rivit:

    ControllerOne.Listen(Button.DPadLeft, ButtonState.Down, Liiku, null, pelaaja3, new Vector(-1, 0));
    ControllerOne.Listen(Button.DPadRight, ButtonState.Down, Liiku, null, pelaaja3, new Vector(1, 0));
    ControllerOne.Listen(Button.DPadUp, ButtonState.Down, Liiku, null, pelaaja3, new Vector(0, 1));
    ControllerOne.Listen(Button.DPadDown, ButtonState.Down, Liiku, null, pelaaja3, new Vector(0, -1));

Ohjaaminen peliohjaimen tatilla

Jos haluat, että kolmatta matoa voi ohjata myös peliohjaimen tattia kääntämällä, lisää ohjainten kuunteluun myös seuraava rivi:

    ControllerOne.ListenAnalog(AnalogControl.LeftStick, 0.1, LiikutaTatilla, null, pelaaja3);

Tarvitset yllä olevan rivin lisäksi aliohjelman LiikutaTatilla. Kirjoita se esimerkiksi aliohjelman Liiku lähettyville.

    void LiikutaTatilla(AnalogState tatinTila, Mato mato)
    {
        Vector tatinAsento = tatinTila.StateVector;
        Liiku(mato, tatinAsento);
    }

Neljäs ja viides mato

Neljännen madon lisäämiseksi toista samat askeleet kuin kolmannen madon kanssa.

Lisää seuraava attribuutti:

    Mato pelaaja4;

Lataa kuvat valmiiksi:

    Image paaKuva4 = LoadImage("pelaaja4paa");
    Image hantaKuva4 = LoadImage("pelaaja4hanta");

Kirjoita LuoKentta-aliohjelmaan neljännen madon lisääminen, jotta sekin tulee mukaan pelikentälle:

    pelaaja4 = LuoMato("pelaaja4", new Vector(0, 0), paaKuva4, hantaKuva4);

Lisää ohjaimet aliohjelmassa AsetaOhjaimet. HUOMAA, että laitteen nimi ei ole ControllerOne vaan ControllerTwo, jotta pelaaja4:ää ohjataan peliohjaimella numero 2.

        ControllerTwo.Listen(Button.DPadLeft, ButtonState.Down, Liiku, null, pelaaja4, new Vector(-1, 0));
        ControllerTwo.Listen(Button.DPadRight, ButtonState.Down, Liiku, null, pelaaja4, new Vector(1, 0));
        ControllerTwo.Listen(Button.DPadUp, ButtonState.Down, Liiku, null, pelaaja4, new Vector(0, 1));
        ControllerTwo.Listen(Button.DPadDown, ButtonState.Down, Liiku, null, pelaaja4, new Vector(0, -1));

Ja vielä lisäksi, jos haluat, että pelaaja4 voi liikkua peliohjaimen numero 2 tatilla:

        ControllerTwo.ListenAnalog(AnalogControl.LeftStick, 0.1, LiikutaTatilla, null, pelaaja4);

Tarvittava LiikutaTatilla-aliohjelma on jo olemassa kolmannen pelaajan ohjaamisesta, joten sitä ei tarvitse lisätä toista kertaa.

Viides mato

Toista yllä olevat kohdat, mutta vaihda kaikkien pelaaja4:ään liittyvien nimien tilalle pelaaja5.

Valmis!

Matopelisi on tämän ohjeen osalta valmis. Voit vielä viimeistellä peliä tekemällä siihen uusia ominaisuuksia ja muokata esim. nopeuksia ja muita asetuksia.

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