Hyppää sisältöön

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.

Canvas-luokka

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

  • DrawLine – piirtää janan. Parametreina 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:

Ominaisuus Selitys
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

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);
}