Pikaohje¶
Yleisimmät rivit yhdellä sivulla. Rivit kirjoitetaan Begin-aliohjelmaan,
ellei toisin sanota. Linkki vie tarkempaan ohjeeseen.
Oliot¶
PhysicsObject pallo = new PhysicsObject(40, 40); // leveys, korkeus
pallo.Shape = Shape.Circle;
pallo.Color = Color.Red;
pallo.Image = LoadImage("pallo"); // Content-kansiosta
pallo.Position = new Vector(100, -50);
pallo.Mass = 10;
pallo.Restitution = 0.8; // kimmoisuus 0..1
pallo.Tag = "pallo";
Add(pallo);
pallo.Destroy();
pallo.MakeStatic(); // ei liiku, esim. seinä
Olion luominen · Muodot · Ulkonäkö · Oliotyypit
Oma oliotyyppi¶
class Vihu : PhysicsObject // Peli-luokan ulkopuolelle
{
public int Elamat { get; set; }
public Vihu(double leveys, double korkeus)
: base(leveys, korkeus)
{
Elamat = 3;
IsUpdated = true; // jos Update on käytössä
}
public override void Update(Time time) // 60 kertaa sekunnissa
{
// ...
base.Update(time);
}
}
Vihu vihu = new Vihu(40, 40);
Add(vihu);
AddCollisionHandler<Vihu, PhysicsObject>(vihu, VihuTormasi);
Kenttä ja kamera¶
Gravity = new Vector(0, -800);
Level.CreateBorders();
Level.Background.Color = Color.Black;
Level.Background.CreateStars();
Camera.ZoomToLevel();
Camera.Follow(pelaaja);
ClearAll(); // tyhjentää kaiken, esim. uuden kentän alussa
Näppäimet ja hiiri¶
Keyboard.Listen(Key.Left, ButtonState.Down, LiikutaVasemmalle, "Liiku vasemmalle");
Keyboard.Listen(Key.Space, ButtonState.Pressed, Hyppaa, "Hyppää", pelaaja);
Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta");
Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet");
Mouse.Listen(MouseButton.Left, ButtonState.Pressed, Ammu, "Ammu");
ControllerOne.Listen(Button.A, ButtonState.Pressed, Hyppaa, "Hyppää", pelaaja);
Käsittelijä: void Hyppaa(PhysicsObject olio) { olio.Hit(new Vector(0, 500)); }
Ohjainten lisääminen · Olioiden liikuttelu ja siirtely
Liike¶
pelaaja.Push(new Vector(500, 0)); // voima
pelaaja.Hit(new Vector(0, 500)); // sysäys
pelaaja.Velocity = new Vector(200, 0); // nopeus suoraan
pelaaja.Walk(200); // PlatformCharacter
pelaaja.Jump(600); // PlatformCharacter
Törmäykset¶
AddCollisionHandler(pallo, PalloTormasi); // mihin tahansa
AddCollisionHandler(pallo, maila, PalloOsuiMailaan); // tiettyyn olioon
AddCollisionHandler(pallo, "tahti", PalloOsuiTahteen); // tagilla
Käsittelijä: void PalloTormasi(PhysicsObject pallo, PhysicsObject kohde) { ... }
Törmäysten käsittely · Törmäysten estäminen
Ajastimet¶
Timer ajastin = new Timer();
ajastin.Interval = 2.0; // sekuntia
ajastin.Timeout += LuoVihollinen; // void LuoVihollinen()
ajastin.Start();
Timer.SingleShot(3.0, PeliOhi); // kerran 3 s kuluttua
Laskurit ja teksti¶
IntMeter pisteet = new IntMeter(0);
Label pisteNaytto = new Label();
pisteNaytto.BindTo(pisteet);
pisteNaytto.X = Screen.Left + 100;
pisteNaytto.Y = Screen.Top - 100;
Add(pisteNaytto);
pisteet.Value += 1;
MessageDisplay.Add("Osuma!");
Pistelaskuri · Teksti ruudulla · Valikot
Äänet¶
SoundEffect pum = LoadSoundEffect("pum");
pum.Play();
MediaPlayer.Play("musiikki");
MediaPlayer.IsRepeating = true;
Äänet ja musiikki · Kuvat ja äänet mukaan projektiin
Satunnaisuus¶
int arpa = RandomGen.NextInt(1, 7); // 1..6
double d = RandomGen.NextDouble(0, 100);
Vector v = RandomGen.NextVector(100, 200); // pituus 100..200
Color c = RandomGen.NextColor();