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.

Piirtäminen

Piirtämistä varten peliluokkaan lisätään Paint-aliohjelma:

protected override void Paint(Canvas canvas)
{
  // TÄHÄN VÄLIIN TULEE PIIRTÄMINEN...
  base.Paint(canvas);
}

Jypeli kutsuu Paint-aliohjelmaa jokaisella pelinpäivityksellä (60 kertaa sekunnissa) pelin ollessa käynnissä. Siinä voi siis toteuttaa animaatioita muuttamalla koordinaatteja sen mukaan millä ajanhetkellä piirretään.

1. Canvas-luokka

Itse piirtäminen tapahtuu parametrina saatavan canvas-olion metodeilla. Nykyisellään niitä on yksi:

  • DrawLine - Piirtää janan. Parametrina alku- ja loppupisteen koordinaatit joko vektoreina tai luettelemalla molempien pisteiden x- ja y-koordinaatit.

Värin voi asettaa BrushColor-ominaisuuden kautta. Lisäksi piirtoalueen reunojen koordinaatteja voi lukea samaan tapaan kuin kentänkin reunoja:

canvas.Left Vasemman reunan x-koordinaatti
canvas.Right Oikean reunan x-koordinaatti
canvas.Bottom Alareunan y-koordinaatti
canvas.Top Yläreunan y-koordinaatti
canvas.TopLeft Vasen ylänurkka
canvas.TopRight Oikea ylänurkka
canvas.BottomLeft Vasen alanurkka
canvas.BottomRight Oikea alanurkka

2. Esimerkkejä

  • Punaisen rastin piirtäminen vasempaan ylänurkkaan
protected override void Paint(Canvas canvas)
{
  canvas.BrushColor = Color.Red;

  double x = canvas.Left + 100;
  double y = canvas.Top - 100;

  canvas.DrawLine(x - 50, y + 50, x + 50, y - 50);
  canvas.DrawLine(x + 50, y + 50, x - 50, y - 50);

  base.Paint(canvas);
}
  • Jana, joka pyörii alkupisteensä ympäri
protected override void Paint(Canvas canvas)
{
  canvas.BrushColor = Color.Red;

  double ajanhetki = Game.Time.SinceStartOfGame.TotalSeconds;

  Vector keskipiste = new Vector(0, 0);
  Vector reunapiste = new Vector(100 * Math.Cos(ajanhetki), 100 * Math.Sin(ajanhetki));

  canvas.DrawLine(keskipiste, keskipiste + reunapiste);

  base.Paint(canvas);
}

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