public void LuoNaytot(PhysicsGame peli) { Vector p1 = this.Naytot; //voi yksinkertaistaa this.elamaNaytto = new Label(); elamaNaytto.Font = Font.DefaultSmallBold; elamaNaytto.Position = p1; elamaNaytto.BindTo(this.alus.ElamaLaskuri); elamaNaytto.TextColor = Color.White; elamaNaytto.Title = "Aluksen kunto"; peli.Add(elamaNaytto); this.alusNaytto = new Label(); alusNaytto.Font = Font.DefaultSmallBold; alusNaytto.Position = new Vector(p1.X, p1.Y - 25); alusNaytto.BindTo(this.AlusLaskuri); alusNaytto.TextColor = Color.White; alusNaytto.Title = "Aluksia jäljellä"; peli.Add(alusNaytto); this.ammusNaytto = new Label(); ammusNaytto.Font = Font.DefaultSmallBold; ammusNaytto.Position = new Vector(p1.X, p1.Y - 50); ammusNaytto.BindTo(this.Alus.AmmusLaskuri); ammusNaytto.TextColor = Color.White; ammusNaytto.Title = "Ase1 ammuksia jäljellä"; peli.Add(ammusNaytto); }
public Alus(PhysicsGame peli, Vector p, double r, Color vari, string tunniste, string pelaaja, int tarkistin) : base(r, r) { this.koko = r; this.Shape = Shape.Circle; this.Position = p; this.Color = vari; this.Mass = 5; this.Restitution = 0.1; this.CanRotate = false; this.Tag = tunniste; this.pelaaja = pelaaja; this.tarkistin = tarkistin; this.ase1.Power.Value = 100000; this.ase1.Power.DefaultValue = 100000; this.ase1.FireRate = 1; this.ase1.CanHitOwner = false; this.ase1.IsVisible = false; this.Add(ase1); this.ase2.Power.Value = 500; this.ase2.Power.DefaultValue = 500; this.ase2.FireRate = 10; this.ase2.CanHitOwner = false; this.ase2.IsVisible = false; this.ase2.Ammo.Value = 20; this.Add(ase2); peli.Add(this); }
public static void Piirrapallo(PhysicsGame peli, double x, double y, double r) //Aliohjelma pallojen piirtämiseen. { PhysicsObject p = new PhysicsObject(2 * r, 2 * r, Shape.Circle); //PhysicsObject ottaa mitat ja muodon, r = säde joten 2*r on halkaisija p.Y = y; p.X = x; peli.Add(p); }
public static PhysicsObject PiirraNelio(PhysicsGame peli, double x, double y) { PhysicsObject PiirraNelio = new PhysicsObject(80, 80, Shape.Rectangle); PiirraNelio.X = x; PiirraNelio.Y = y; peli.Add(PiirraNelio); return(PiirraNelio); }
/// <summary> /// Lisätään peliin pallo /// </summary> /// <param name="game">peli johon pallo lisätään</param> /// <param name="p">pallon keskipiste</param> /// <param name="r">pallon säde</param> /// <param name="color">pallon väri</param> /// <returns>lisätyn pallon viite</returns> public static PhysicsObject LuoPallo(PhysicsGame game, Vector p, double r, Color color) { PhysicsObject pallo = new PhysicsObject(r * 2, r * 2, Shape.Circle); pallo.Position = p; pallo.Color = color; game.Add(pallo); return(pallo); }
public static void PiirraNelio(PhysicsGame peli, double x, double y) { PhysicsObject p = new PhysicsObject(80, 80, Shape.Rectangle, 80); { p.X = x + 40; p.Y = y + 40; peli.Add(p); } }
/// <summary> /// Luo peliin juoman satunnaiseen sijaintiin maaratylla spawnAlueelle. /// </summary> /// <returns>juoma.</returns> /// <param name="peli">Peli johon juoma luodaan.</param> /// <param name="rect">Maaratty alue, johon juoma luodaan.</param> public void LuoJuoma(PhysicsGame peli, BoundingRectangle rect) { PhysicsObject juoma = PhysicsObject.CreateStaticObject(15.0, 30.0); juoma.Shape = Shape.Rectangle; juoma.Color = Color.Red; juoma.Position = RandomGen.NextVector(rect); juoma.Tag = "juoma"; juoma.Image = koff; peli.Add(juoma); }
/// <summary> /// Aliohjelma luo peliin tippuvan alasimen /// </summary> /// <param name="peli"></param> /// <param name="x">Alasimen sijainti x-akselilla.</param> /// <param name="y">Alasimen sijainti y-akselilla.</param> private void Alasimet(PhysicsGame peli, double x, double y) { PhysicsObject alasin = new PhysicsObject(100, 100, Shape.Rectangle); alasin.Position = new Vector(x, y); alasin.IgnoresCollisionResponse = true; peli.Add(alasin); alasin.LinearDamping = 1.0; alasin.Image = alasinKuva; alasin.Tag = "alasin"; }
public Asteroidi(PhysicsGame peli, Vector p, double r, Color vari, String tunniste) : base(r, r) { this.Shape = Shape.Circle; this.Position = p; this.Color = vari; this.Mass = 10 * r; this.Angle = Angle.FromDegrees(RandomGen.NextDouble(0, 360)); this.Tag = tunniste; this.Restitution = 0.1; this.CanRotate = false; peli.Add(this); }
/// <summary> /// Aliohjelma piirtää lumiukon /// annettuun paikkaan. /// </summary> /// <param name="peli">Peli, johon lumiukko tehdään.</param> /// <param name="x">Lumiukon alimman pallon x-koordinaatti.</param> /// <param name="y">Lumiukon alimman pallon y-koordinaatti.</param> public static void PiirraLumiukko(PhysicsGame peli, double x, double y) { PhysicsObject p1, p2, p3; double r1 = 100; double r2 = 50; double r3 = 30; p1 = new PhysicsObject(2 * r1, 2 * r1, Shape.Circle); p1.X = x; p1.Y = y; peli.Add(p1); p2 = new PhysicsObject(2 * r2, 2 * r2, Shape.Circle); p2.X = x; p2.Y = p1.Y + r1 + r2; peli.Add(p2); p3 = new PhysicsObject(2 * r3, 2 * r3, Shape.Circle); p3.X = x; p3.Y = p2.Y + r2 + r3; peli.Add(p3); }
/// <summary> /// Aliohjelma palauttaa pelimerkin taulukosta. /// </summary> /// <param name="peli"></param> /// <param name="x">Pelimerkin sijainti x-akselilla.</param> /// <param name="y">Pelimerkin sijainti y-akselilla.</param> private void Pelimerkit(PhysicsGame peli, double x, double y) { PhysicsObject pelimerkki = new PhysicsObject(35, 25, Shape.Rectangle); pelimerkki.Position = new Vector(x, y); pelimerkki.IgnoresCollisionResponse = true; peli.Add(pelimerkki); pelimerkki.LinearDamping = 0.9; pelimerkki.Tag = "pelimerkki"; int kuva = RandomGen.NextInt(pelimerkit.Length); pelimerkki.Image = pelimerkit[kuva]; }
/// <summary> /// Aliohjelma lisää peliin putoavan laatan. /// </summary> /// <param name="peli"></param> /// <param name="x">Laatan sijainti x-akselilla.</param> /// <param name="y">Laatan sijainti y-akselilla.</param> /// <param name="z">Laatan leveys.</param> private void PiirraSuorakulmio(PhysicsGame peli, double x, double y, double z) { suorakulmio = new PhysicsObject(z, 15, Shape.Rectangle); suorakulmio.Position = new Vector(x, y); int kuva = RandomGen.NextInt(laatat.Length); suorakulmio.Image = laatat[kuva]; suorakulmio.LinearDamping = 0.75; suorakulmio.Mass = 100000; peli.Add(suorakulmio); suorakulmio.Tag = "laatta"; suorakulmio.CanRotate = false; }
public static PhysicsObject Karkit(PhysicsGame peli) { PhysicsObject karkki = new PhysicsObject(35, 35); karkki.Color = Color.Blue; peli.Add(karkki); karkki.Y = 10; karkki.X = 10; Vector suunta = RandomGen.NextVector(400, 500); karkki.Hit(suunta); karkki.Image = LoadImage("karkkiHR"); return(karkki); }
public static PhysicsObject Kynat(PhysicsGame peli) { PhysicsObject kyna = new PhysicsObject(20, 40); kyna.Color = Color.Red; peli.Add(kyna); kyna.Y = 100; kyna.X = 100; Vector suunta = RandomGen.NextVector(100, 200); kyna.Hit(suunta); return(kyna); }
public static PhysicsObject LuoNelikulmio(PhysicsGame peli, string tunniste, double x, double y) { PhysicsObject ukko = new PhysicsObject(70, 100, Shape.Rectangle); ukko.Color = Color.Black; ukko.Tag = tunniste; // ukko.Mass = 1.0; peli.Add(ukko); ukko.LinearDamping = 0.93; ukko.Restitution = 0; ukko.AngularDamping = 0.9; ukko.MaxVelocity = 40000; ukko.X = x; ukko.Y = y; return(ukko); }
public static PhysicsObject LuoNelikulmio(PhysicsGame peli, string tunniste) { PhysicsObject ukko = new PhysicsObject(70, 100, Shape.Rectangle); ukko.Color = Color.Black; // Vector suunta = new Vector(vauhti, vauhti); // ukko.Hit(suunta); ukko.Tag = tunniste; // ukko.Mass = 1.0; peli.Add(ukko); ukko.LinearDamping = 0.93; ukko.Restitution = 0; ukko.AngularDamping = 0.9; ukko.MaxVelocity = 40000; return(ukko); }
/// <summary> /// Lisätään peliin ruudukollinen suorakaiteita. /// </summary> /// <param name="game">peli johon lisätään</param> /// <param name="oliot">taulukko johon oliviitteet laitetaan</param> private static void LuoOliot(PhysicsGame game, GameObject[,] oliot) { int ny = oliot.GetLength(0); int nx = oliot.GetLength(1); for (int iy = 0; iy < ny; iy++) // luodaan ruutuoliot { for (int ix = 0; ix < nx; ix++) { GameObject obj = new GameObject(1, 1, Shape.Rectangle); oliot[iy, ix] = obj; // jemmataan taulukkoon obj.X = ix; obj.Y = iy; obj.Color = Color.Black; game.Add(obj); // Mouse.ListenOn(obj, MouseButton.Left, ButtonState.Pressed, VaihdaVari, null, iy,ix); } } }
/// <summary> /// Luo pelaajan hahmon /// </summary> /// <param name="peli">pelikenttä</param> /// <param name="tunniste">sana, jolla tietää mistä fysiikkaoliosta kyse</param> /// <param name="x">fysiikkaolion x-koordinaatti</param> /// <param name="y">fysiikkaolion y-koordinaatti</param> /// <returns></returns> private static PhysicsObject LuoNelikulmio(PhysicsGame peli, string tunniste, double x, double y) { PhysicsObject ukko = new PhysicsObject(100, 100, Shape.Rectangle); ukko.Color = Color.Black; // ukko.Hit(suunta); ukko.Tag = tunniste; // ukko.Mass = 1.0; peli.Add(ukko); ukko.LinearDamping = 0.93; ukko.Restitution = 0; ukko.AngularDamping = 0.1; ukko.MaxVelocity = 40000; ukko.X = x; ukko.Y = y; ukko.CollisionIgnoreGroup = 1; return(ukko); }
/// <summary> /// Aliohjelma luo ja palauttaa Matin sille aliohjelmakutsulla /// parametreina syötetyn sijaintitiedon perusteella. /// </summary> /// <param name="peli">Tämä peli</param> /// <param name="x">Matin sijainti x</param> /// <param name="y">Matin sijainti y</param> /// <returns></returns> private PhysicsObject Pelaaja(PhysicsGame peli, double x, double y) { PhysicsObject pelaaja = new PhysicsObject(60, 120) { X = x, Y = y, Color = Color.Brown, CanRotate = false, IgnoresPhysicsLogics = true, IgnoresGravity = painovoima, Restitution = pelinAsetuksia[3], Tag = "valelumikko", CollisionIgnoreGroup = pelinAsetuksiaInt[2], Mass = 15000, }; MatinAnimaatio(pelaaja); peli.Add(pelaaja, 1); return(pelaaja); }
/// <summary> /// Luo vihollishahmon /// </summary> /// <param name="peli">pelikenttä</param> /// <param name="tunniste">sana, jolla tietää mistä fysiikkaoliosta kyse</param> /// <param name="x">fysiikkaolion x-koordinaatti</param> /// <param name="y">fysiikkaolion y-koordinaatti</param> /// <returns></returns> private static PhysicsObject LuoVihollinen(PhysicsGame peli, string tunniste, double x, double y) { PhysicsObject ukko = new PhysicsObject(200, 200, Shape.Rectangle); ukko.Color = Color.Black; // ukko.Hit(suunta); ukko.Tag = tunniste; // ukko.Mass = 1.0; peli.Add(ukko, -1); ukko.LinearDamping = 0.93; ukko.Restitution = 0; ukko.AngularDamping = 0.9; ukko.MaxVelocity = 40000; ukko.X = x; ukko.Y = y; ukko.IgnoresCollisionResponse = true; return(ukko); }