/// <summary> /// Rakentaja, jossa pelaajan tiedot asetetaan. /// </summary> /// <param name="peli">Pelin viite.</param> /// <param name="width">Pelaajan korkeus.</param> /// <param name="height">Pelaajan leveys.</param> /// <param name="tiedot">Pelaajan tiedot.</param> public Pelaaja(LegendOfPallo peli, double width, double height, PelaajanTiedot tiedot) : base(peli, width, height) { Hp = tiedot.MaxHp; CurrentHp = Math.Min(Math.Max(1, tiedot.CurrentHp), tiedot.MaxHp); Tavarat.LisaaTavara((int)TavaraTyypit.Pommit, (byte)tiedot.Pommit); Tavarat.LisaaTavara((int)TavaraTyypit.Elama, (byte)tiedot.Elamat); Image = Animaatiot.pelaajanKuvaN; Width = 56; Height = 56; Shape = Shape.Ellipse; Color = Color.Red; Restitution = 0.0; CanRotate = false; MaxVelocity = 160; LinearDamping = 0.7; IsUpdated = true; Tag = "pelaaja"; CollisionIgnoreGroup = (int)Types.Player; AmpumisAjastin = new Timer(); AmpumisAjastin.Interval = AmpumisVali; KranaattiAjastin = new Timer(); KranaattiAjastin.Interval = KranaatinHeittoVali; }
public VihollinenSeuraajaKummitus(LegendOfPallo peli, double width, double height) : base(peli, 48, 44) { Score = 40; List <string> tagit = new List <string>() { "pelaaja" }; Color = Color.OrangeRed; FollowerBrain aivot = new FollowerBrain(); aivot.TagsToFollow = tagit; aivot.DistanceFar = 896; aivot.Speed = 90; Brain = aivot; IgnoresCollisionResponse = true; Animation = new Animation(Animaatiot.GhostImages); Animation.FPS = 3; Animation.Start(); Mass = 0.3; Hp = 5; LinearDamping = 0.7; LinearDamping = 0.7; CanRotate = false; Tag = "immuuniLuodeille"; Hp = 5; }
public VihollinenSplortsi(LegendOfPallo peli, Vector paikka, double leveys, double korkeus) : base(peli, leveys, korkeus) { Score = 1000; Hp = 150; Tag = "vihollinen"; Position = paikka; Width = Animaatiot.SplortsiImages[0].Width * 4; Height = Animaatiot.SplortsiImages[0].Height * 4; aivot = new LabyrinthWandererBrain(64); aivot.Speed = 300.0; aivot.LabyrinthWallTag = "seina"; aivot.DirectionChangeTimeout = 0.5; Mass = 10000; Brain = aivot; LinearDamping = 0.7; CanRotate = false; Animation = new Animation(Animaatiot.SplortsiImages); Animation.Start(); Animation.FPS = 5; Tavarat.LisaaTavara((int)TavaraTyypit.Avaimet, 1); Tavarat.LisaaTavara((int)TavaraTyypit.Raha, 10); Tavarat.LisaaTavara((int)TavaraTyypit.Sydan, 10); LuoSplortsilleKanuunaTavallinen(peli, new Vector(96, 96), 1, true); LuoSplortsilleKanuunaTavallinen(peli, new Vector(-96, -96), 3, true); LuoSplortsilleKanuunaTavallinen(peli, new Vector(-96, 96), 2, false); LuoSplortsilleKanuunaTavallinen(peli, new Vector(96, -96), 4, false); kanuunaHakeutuva = LuoSplortsilleKanuunaHakeutuva(peli); }
public VihollinenSeuraaja(LegendOfPallo peli, double width, double height) : base(peli, width, height) { Score = 60; List <string> tagit = new List <string>() { "pelaaja" }; Color = Color.OrangeRed; aivot2 = new LabyrinthWandererBrain(64); aivot2.Speed = 150.0; aivot2.LabyrinthWallTag = "seina"; aivot2.DirectionChangeTimeout = 2.0; aivot = new FollowerBrain(); aivot.DistanceFar = 500; aivot.Speed = 200.0; aivot.TagsToFollow = tagit; aivot.FarBrain = aivot2; Mass = 0.3; Brain = aivot; CanRotate = false; LinearDamping = 0.7; IsUpdated = true; AsetaTiedot(); KuolemaAjastin = new Timer(); KuolemaAjastin.Interval = 10; KuolemaAjastin.Timeout += HeraaEloon; }
public VihollinenHumanoidi(LegendOfPallo peli, Vector paikka, double width, double height) : base(peli, width, height) { Score = 60; spawnPaikka = paikka; Image = Animaatiot.HumanoidImage; MakeStatic(); CanRotate = false; Tag = "vihollinen"; IsVisible = false; IsUpdated = true; IgnoresCollisionResponse = true; ajastin = new Timer(); ajastin.Interval = 7; ajastin.Timeout += KatoaNakyvista; ase = new Kanuuna <Ammus>(Peli, 1, 1); ase.IsVisible = false; ase.Tag = "neutraali"; ase.Position = new Vector(0, 0); ase.IgnoresCollisionResponse = true; ase.ammus += Peli.AmmusLuoti1Malli; ase.AmpumisKohde = Peli.pelaaja; ase.MaxEtaisyysKohteeseen = 1200; Add(ase); KatoaNakyvista(); }
/// <summary> /// Luo peliolion /// </summary> /// <param name="p">Peli, johon olio luodaan</param> /// <param name="width"></param> /// <param name="height"></param> public Peliolio(LegendOfPallo p, double leveys, double korkeus) : base(leveys, korkeus) { Peli = p; Tavarat = new TavaraLista(this); Hp = 1; Score = 20; }
/// <summary> /// Asennetaan piikit /// </summary> /// <param name="p">Pelin viite.</param> /// <param name="paikka">Piikin paikka maailmassa.</param> public Piikit(LegendOfPallo p, Vector paikka) : base(64, 64) { peli = p; IsUpdated = true; MakeStatic(); Animation = animaatio; IgnoresCollisionResponse = true; Position = paikka; }
/// <summary> /// Päivittää UI:n koon näytöllä (esim. resoluution vaihtamisen takia voidaan suorittaa tämä aliohjelma) /// </summary> /// <param name="p"></param> public static void PaivitaKoko(LegendOfPallo p) { if (Paalla) { Piilota(); Luo(p, hp); } else { throw new Exception("UI hasn't been created yet."); } }
public VihollinenAmpuja(LegendOfPallo peli, double leveys, double korkeus) : base(peli, leveys, korkeus) { Score = 80; List <string> tagit = new List <string>() { "pelaaja" }; Color = Color.MediumPurple; LabyrinthWandererBrain aivot2 = new LabyrinthWandererBrain(64); aivot2.Speed = 150.0; aivot2.LabyrinthWallTag = "seina"; aivot2.DirectionChangeTimeout = 2.0; aivot = new FollowerBrain(); aivot.DistanceFar = 500; aivot.Speed = 200.0; aivot.TagsToFollow = tagit; aivot.FarBrain = aivot2; aivot.StopWhenTargetClose = true; aivot.DistanceClose = 400; Mass = 0.3; Hp = 10; Brain = aivot; CanRotate = false; LinearDamping = 0.7; IsUpdated = true; Tag = "vihollinen"; Animation = new Animation(Animaatiot.DemonImages); Animation.FPS = 4; Animation.Start(); kanuuna = new Kanuuna <Ammus>(Peli, 10, 10); kanuuna.IsVisible = false; kanuuna.AloitaTyhjana = false; kanuuna.AsetaKanuuna(0.2, 5.0, 3); kanuuna.Tag = "neutraali"; kanuuna.AmpumisKohde = null; kanuuna.MaxEtaisyysKohteeseen = 500; kanuuna.IgnoresCollisionResponse = true; kanuuna.Position = new Vector(0, 0); kanuuna.ammus += Peli.AmmusKimpoileva1Malli; Add(kanuuna); Tavarat.LisaaTavara((int)TavaraTyypit.Raha, 1); }
/// <summary> /// Splörtsin kanuuna, joka ampuu "tavallisia" ammuksia pelaajaa kohti. /// </summary> /// <param name="peli">Pelin viite.</param> /// <param name="paikka">Kanuunan paikka suhteessa Splörtsin keskipisteeseen.</param> /// <param name="latausAika">Kuinka monen sekunnin päästä kanuuna alkaa ampumaan.</param> /// <param name="ennakoi">Ennakoiko kanuuna pelaajan liikettä ja ampuu kohtaan, johon pelaaja on kulkemassa.</param> private void LuoSplortsilleKanuunaTavallinen(LegendOfPallo peli, Vector paikka, double latausAika, bool ennakoi) { Kanuuna <Ammus> kanuuna = new Kanuuna <Ammus>(peli, 10, 10); kanuuna.ammus += Peli.AmmusLuoti1Malli; kanuuna.Ennakoi = ennakoi; kanuuna.IsVisible = false; kanuuna.IgnoresExplosions = false; kanuuna.IgnoresCollisionResponse = true; kanuuna.Tag = "neutraali"; kanuuna.AsetaKanuuna(4, latausAika, short.MaxValue); kanuuna.AmpumisKohde = Peli.pelaaja; kanuuna.Position = paikka; Add(kanuuna); }
/// <summary> /// Splortsin kanuuna, jonka luodit hakeutuvat pelaajaa kohti. /// </summary> /// <param name="peli">Pelin viite.</param> /// <returns>Kanuunan viite.</returns> private Kanuuna <Ammus> LuoSplortsilleKanuunaHakeutuva(LegendOfPallo peli) { Kanuuna <Ammus> kanuuna5 = new Kanuuna <Ammus>(peli, 10, 10); kanuuna5.ammus += Peli.AmmusHakeutuva1Malli; kanuuna5.IsVisible = false; kanuuna5.IgnoresExplosions = false; kanuuna5.AsetaKanuuna(1, 20, 6); kanuuna5.AmpumisKohde = Peli.pelaaja; kanuuna5.Tag = "neutraali"; kanuuna5.IgnoresCollisionResponse = true; Add(kanuuna5); kanuuna5.Position = new Vector(0, 0); return(kanuuna5); }
public Kimpoilija(LegendOfPallo peli, double width, double height) : base(peli, width, height) { Score = 20; IsUpdated = true; Shape = Shape.Rectangle; Color = Color.Red; Mass = 0.1; Restitution = 1.0; CanRotate = false; MaxVelocity = 500; LinearDamping = 1.0; Tag = "vihollinen"; //Olio aloittaa liikkumisen satunnaiseen suuntaan. Hit(RandomGen.NextVector(500, 500)); Animation = new Animation(Animaatiot.BatImages); Animation.FPS = 8; Animation.Start(); }
public VihollinenKuljeksiva(LegendOfPallo peli, double width, double height) : base(peli, width, height) { Score = 20; Color = Color.BloodRed; LabyrinthWandererBrain aivot = new LabyrinthWandererBrain(64); aivot.Speed = 300.0; aivot.LabyrinthWallTag = "seina"; aivot.DirectionChangeTimeout = 0.5; Mass = 0.3; Hp = 1; Brain = aivot; LinearDamping = 0.7; CanRotate = false; Tag = "vihollinen"; Animation = new Animation(Animaatiot.SplotsImages); Animation.Start(); Animation.FPS = 5; }
/// <summary> /// Luo ja asentaa HUD:n ruudulle. /// </summary> /// <param name="p">Pelin viite</param> /// <param name="sydantenMaara">Sydänten lukumäärä ruudulla</param> public static void Luo(LegendOfPallo p, int sydantenMaara) { Paalla = true; if (sydantenMaara >= 0) //Jos olio ei ole tuhoutumaton { hp = sydantenMaara; } HorizontalLayout asettelu = new HorizontalLayout(); asettelu.Spacing = 8; asettelu.LeftPadding = 8; asettelu.RightPadding = 8; HorizontalLayout asetteluB = new HorizontalLayout(); asetteluB.Spacing = 8; asetteluB.LeftPadding = 8; asetteluB.RightPadding = 48; sydamet = new Widget(asettelu); sydamet.Color = Color.Black; p.Add(sydamet); pommit = LuoTavaranWidget(asettelu, Animaatiot.BombPickupImage, pommiLaskuri); avaimet = LuoTavaranWidget(asettelu, Animaatiot.KeyPickupImage, avainLaskuri); kolikot = LuoTavaranWidget(asettelu, Animaatiot.CoinPickupImage, kolikkoLaskuri); elamat = LuoTavaranWidget(asettelu, Animaatiot.LivesImage, elamaLaskuri); score = LuoTavaranWidget(asetteluB, "Score: ", pisteLaskuri); level = LuoTavaranWidget(asetteluB, "Level: ", kenttaLaskuri); p.Add(pommit); p.Add(avaimet); p.Add(kolikot); p.Add(elamat); p.Add(score); p.Add(level); for (int i = 0; i < hp; ++i) { Widget sydanKuva = new Widget(32, 32); sydanKuva.Image = Animaatiot.HeartPickupImage; healthBar.Add(sydanKuva); sydamet.Add(healthBar[i]); } sydamet.Bottom = Game.Screen.Bottom + 8; sydamet.X = Game.Screen.Center.X; elamat.Left = Game.Screen.Left; elamat.Bottom = Game.Screen.Bottom + 8; pommit.Left = elamat.Right; pommit.Bottom = elamat.Bottom; avaimet.Left = pommit.Right; avaimet.Bottom = elamat.Bottom; kolikot.Left = avaimet.Right; kolikot.Bottom = elamat.Bottom; score.Right = Game.Screen.Right; score.Bottom = elamat.Bottom; level.Right = score.Left - 64; level.Bottom = elamat.Bottom; }
static void Main() { using (var game = new LegendOfPallo()) game.Run(); }
public Ase(LegendOfPallo peli, string kohde) : base(0, 0) { oliot = peli.GetObjectsWithTag(kohde); }