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 » Käyttöliittymäkomponentin tekeminen

Jos valmiista widgeteistä ei löydy sopivaa, täytyy tehdä uusi komponentti (eli widgetti). Se tapahtuu perimällä uusi luokka jostakin widgetistä (usein Widget-luokasta).

1. Ohjainten asettaminen

Ohjaimet tulee lisätä vasta, kun olio on lisätty peliin. Muutoin olio kuuntelee ohjaustapahtumia, vaikka sitä ei näy missään, mikä on jokseenkin hämmentävää!

public class OmaKomponentti : Widget
{
    public OmaKomponentti(double width, double height)
        : base(width, height)
    {
        AddedToGame += AlustaOhjaimet;
    }

    private void AlustaOhjaimet()
    {
        Game.Mouse.ListenOn(this, MouseButton.Left, ButtonState.Pressed, KasitteleKlikkaus, null).InContext(this);
        // ...
    }

    private void KasitteleKlikkaus()
    {
        // Mitä haluatkaan tapahtuvan, esimerkiksi:
        this.Color = Jypeli.RandomGen.NextColor();
    }
}

Ohjaimet tulisi asettaa komponentin omaan kontekstiin. Tällöin ohjainten kuuntelu toimii, jos komponentti asetetaan modaaliseksi. Modaalisuudella tarkoitetaan sitä, että kun komponentti (esim. ikkuna) on lisätty ruudulle, muita ruudulla olevia komponentteja ei voi silloin käyttää. Siten esimerkiksi nuolinäppäimistä liikuteltava pelihahmo ei liiku, vaikka näppäimiä painettaisiin esim. tekstinsyöttöruudussa.

Huomaa myös, että hiiren tai kosketusnäytön kuuntelu olisi yleensä toivottavaa tehdä ListenOn-kutsuilla:

Game.Mouse.ListenOn(this, MouseButton.Left, ButtonState.Pressed, KasitteleKlikkaus, null).InContext(this);

Näin ohjaintapahtuma tulee vain kun hiiren kursori tai käyttäjän sormi on kyseisen olion päällä. Lisätietoja ohjainten kuuntelusta löydät täältä.

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