/// <summary> /// Törmäyksenkäsittelijät, kun pelaajan hahmo törmää kerättävään esinseen (kalaan), merileopardiin, veteen tai maaliin. /// </summary> /// <param name="pelaaja">Pelaajan hamo</param> //Lähde: https://trac.cc.jyu.fi/projects/npo/wiki/Pong/Vaihe7 (viitattu 17.2.2021). private void KasittelePelaajanTormays(PlatformCharacter pelaaja) { AddCollisionHandler(pelaaja, "kala", TormaaKerattavaan); AddCollisionHandler(pelaaja, "merileopardi", TormaaVeteenTaiLeopardiin); AddCollisionHandler(pelaaja, "vesi", TormaaVeteenTaiLeopardiin); AddCollisionHandler(pelaaja, "maali", TormaaMaaliin); }
/// <summary> /// Aivot, joiden avulla merileopardi liikkuu edestakaisin pinnoilla. /// </summary> /// <param name="hahmo">Merileopardi</param> // Lähde: https://trac.cc.jyu.fi/projects/npo/wiki/Aivot (viitattu 28.2.2021) private void MerileopardinLiike(PlatformCharacter hahmo) { PlatformWandererBrain liike = new PlatformWandererBrain(); liike.Speed = 50; hahmo.Brain = liike; }
/// <inheritdoc/> protected override void Update(Time time) { if (!(this.Owner is PlatformCharacter)) { return; } //Calculate from Speed later? double yTolerance = 10.0; double xTolerance = 10.0; PlatformCharacter pc = this.Owner as PlatformCharacter; if (_triesToJump) { //Brains are walking against a wall: if (Math.Abs(pc.Velocity.X) < 5) { //If position hasn't changed since last jump, change direction. if ((pc.Position - lastJumpingPosition).Magnitude < 1) { pc.Stop(); this.Speed *= -1; } else { pc.Jump(JumpSpeed); lastJumpingPosition = pc.Position; //Brains don't change direction in mid-air while jumping: if (!_fallsOffPlatforms) { _fallsOffPlatforms = true; Timer.SingleShot(0.5, delegate { _fallsOffPlatforms = false; }); } } } } //Changes direction if it's about to fall off a platform: if (!_fallsOffPlatforms && pc.IsAboutToFall() && Math.Abs(pc.Velocity.Y) < yTolerance) { pc.Stop(); if (_triesToJump && Math.Abs(pc.Velocity.X) < xTolerance) { this.Speed *= -1; } } if (!_triesToJump && Math.Abs(pc.Velocity.X) < xTolerance) { this.Speed *= -1; } pc.Walk(this.Speed); base.Update(time); }
/// <summary> /// Lisää pelaajan peliin, laittaa näkyviin jäljellä olevat elämät. /// </summary> public void LisaaPelaaja() { pelaaja1 = new PlatformCharacter(34.3, 80); pelaaja1.Position = new Vector(-2540, -60); // Saatu Tilemapista pelaaja1.Mass = 4.0; pelaaja1.Image = pelaajanKuva; AddCollisionHandler(pelaaja1, "meteoriitti", TormaaMeteoriittiin); AddCollisionHandler(pelaaja1, "raketti", TormaaRakettiin); Add(pelaaja1); elamat = new IntMeter(3); Label Life = new Label(); Life.BindTo(elamat); Life.Font = Font.DefaultLargeBold; Life.TextColor = Color.White; Life.X = Screen.Right - 200; Life.Y = Screen.Top - 30; Life.BorderColor = Color.JungleGreen; Add(Life); Label Selitys = new Label("Elämää jäljellä"); Selitys.X = Screen.Right - 100; Selitys.Y = Screen.Top - 30; Selitys.TextColor = Color.JungleGreen; Add(Selitys); }
public void BountyHunter() { PlatformCharacter bountyhunter = new PlatformCharacter(100, 200); bountyhunter.Image = LoadImage("bountyhunter"); bountyhunter.X = Level.Bottom + 800; bountyhunter.Y = Level.Left + 370; FollowerBrain vihuRandom = new FollowerBrain(ukko); vihuRandom.Speed = 300; vihuRandom.DistanceFar = 600; vihuRandom.DistanceClose = 200; vihuRandom.StopWhenTargetClose = true; bountyhunter.AnimWalk = new Animation(walkAnim); bountyhunter.AnimWalk.FPS = 6; bountyhunter.Brain = vihuRandom; RandomMoverBrain satunnaisAivot = new RandomMoverBrain(200); satunnaisAivot.ChangeMovementSeconds = 5; vihuRandom.FarBrain = satunnaisAivot; vihunase = new AssaultRifle(100, 50); vihunase.InfiniteAmmo = true; vihunase.FireRate = 0.5; bountyhunter.Weapon = vihunase; vihunase.X = +70; vihunase.Y = +10; vihunase.ProjectileCollision = AmmusOsui; bountyhunter.CollisionIgnoreGroup = 2; Add(bountyhunter, 1); }
void LisaaHahmoKartalle(Vector paikka, double leveys, double korkeus, Color vari) { // Magneta on pelaaja if (vari == PELAAJAN_ALOITUSPAIKAN_VARI) { PelaajanAloitusPaikat.Add(paikka); } else { PlatformCharacter hahmo = new PlatformCharacter(leveys, korkeus); hahmo.Position = paikka; hahmo.Image = RandomGen.SelectOne <Image>(HahmoKuvat[vari]); hahmo.Tag = Nimet[hahmo.Image]; Add(hahmo, 2); PelissaOlevatHahmot.Add(hahmo); // Lisää vihollisille aivot PlatformWandererBrain aivot = new PlatformWandererBrain(); aivot.Speed = PELAAJAN_KAVELYNOPEUS / 4; aivot.FallsOffPlatforms = false; aivot.TriesToJump = false; aivot.Active = false; // pistetään päälle kun peli alkaa hahmo.Brain = aivot; // Kun pelaaja osuu hahmoon, kutsutaan PelaajaOsuuHahmoon aliohjelmaa AddCollisionHandler(Pelaaja, hahmo, PelaajaOsuuHahmoon); } }
void VihollinenKukkulalla(PlatformCharacter2 tormaaja, PlatformCharacter kohde) { iHavitytPelit++; tormaaja.Destroy(); String teksti; vihu.Color = Color.Azure; if (iHavitytPelit < 3) { Timer laskuri = new Timer(); laskuri.Interval = 3; laskuri.Timeout += AloitaAlusta; laskuri.Start(1); teksti = "Hävisit " + iHavitytPelit + ". pelin!"; Label tekstiKentta = new Label(400.0, 80.0, teksti); tekstiKentta.Font = Font.DefaultLarge; Add(tekstiKentta); } else { teksti = "Hävisit " + iHavitytPelit + ". pelin\n" + "Peli loppu siihen!"; Label tekstiKentta = new Label(400.0, 80.0, teksti); tekstiKentta.Font = Font.DefaultLarge; Add(tekstiKentta); //teksti = "Hävisit " + iHavitytPelit + ". pelin"; //MultiSelectWindow valikko = new MultiSelectWindow(teksti, "Uusi peli", "Lopeta"); //valikko.ItemSelected += PainettiinNappia; //Add(valikko); } }
override public void OnCharacterTouchMe(int charSide, PlatformCharacter character) { if (GameTimeController.IsRoomFrozen) { return; } // Room's frozen? Ignore character touch! //if (charSide != Sides.B && MyRect.size.y==1) { return; } // Currently, we ONLY care about FEET if we're thin. Kinda a test. if (character is Player) { playerTouchingMe = character as Player; if (dieFromVel) { // Left or Right sides if (charSide == Sides.L || charSide == Sides.R) { if (Mathf.Abs(character.vel.x) > BreakVel) { TurnOff(); } } // Top or Bottom sides else if (charSide == Sides.B || charSide == Sides.T) { if (Mathf.Abs(character.vel.y) > BreakVel) { TurnOff(); } } } } }
/// <summary> /// Laittaa pelaajan kumartumaan, kun näppäin on painettuna alas. /// </summary> /// <param name="hahmo"></param> private void Kumarru(PlatformCharacter hahmo) { hahmo.Height = 65; hahmo.Width = 60; hahmo.Y -= 3; hahmo.Image = LoadImage("KyykkyUkko"); }
override public void OnCharacterLeaveMe(int charSide, PlatformCharacter character) { if (character is Player) { SetIsOn(false); } }
/// <summary> /// Reunan ja pelaajan törmätessä tuhotaan pelaaja ja lopetetaan peli. /// </summary> /// <param name="reuna">Osuttava reuna.</param> /// <param name="pelaaja">Pelaaja.</param> private void PelaajanPutoaminen(PhysicsObject reuna, PhysicsObject pelaaja) { player = pelaaja as PlatformCharacter; Remove(pelaaja); topLista.EnterAndShow(pelaajanPisteet.Value); topLista.HighScoreWindow.Closed += Valikko; }
/// <summary> /// Liikuttaa pelaajaa, kun pelaaja ei ole kumartunut. /// </summary> /// <param name="hahmo">Pelaajahahmo</param> /// <param name="nopeus">Liikkumisnopeus</param> private void Liikuta(PlatformCharacter hahmo, double nopeus) { if (pelaaja1.Image == pelaajanKuva) { hahmo.Walk(nopeus); } }
/// <summary> /// Aliohjelma lisää pisteitä laskuriin, kun pelaaja osuu pelimerkkiin. /// </summary> /// <param name="pelaaja">Pelaajan hahmo.</param> /// <param name="pelimerkki">Tippuva pelimerkki.</param> private void Merkinotto(PhysicsObject pelaaja, PhysicsObject pelimerkki) { player = pelaaja as PlatformCharacter; pelaajanPisteet.Value += RandomGen.NextInt(200); Remove(pelimerkki); raha.Play(); }
/// <summary> /// Pistetään PlatformCharacter kävelemään haluttuun suuntaan. /// </summary> /// <param name="liikuteltavaOlio">liikuteltava olio.</param> /// <param name="suunta">Olion nopeus (suunta).</param> private void PelaajaWalk(PlatformCharacter liikuteltavaOlio, Vector suunta) { #region Reunatarkistukset //tässä jos sattuu tarviimaan. //if (suunta.X < 0 && (liikuteltavaOlio.X < Level.Left + (liikuteltavaOlio.Width / 2))) //{ // liikuteltavaOlio.Velocity = Vector.Zero; // return; //} //if (suunta.X > 0 && (liikuteltavaOlio.X > Level.Right - (liikuteltavaOlio.Width / 2))) //{ // liikuteltavaOlio.Velocity = Vector.Zero; // return; //} //if (suunta.Y < 0 && (liikuteltavaOlio.Y < Level.Bottom + (liikuteltavaOlio.Height / 2))) //{ // liikuteltavaOlio.Velocity = Vector.Zero; // return; //} //if (suunta.Y > 0 && (liikuteltavaOlio.Y > Level.Top - (liikuteltavaOlio.Height / 2))) //{ // liikuteltavaOlio.Velocity = Vector.Zero; // return; //} #endregion liikuteltavaOlio.Walk(suunta.X); }
void Liikuta(PlatformCharacter hahmo, double nopeus) { Angle kulma = hahmo.Angle; kulma.Degrees -= 15; hahmo.Angle = kulma; hahmo.Walk(nopeus); }
void LuoVihollinen(Vector paikka, double leveys, double korkeus) { vihollinen = new PlatformCharacter(20, 20); vihollinen.Color = Color.FromHexCode("FF0000"); vihollinen.Image = LoadImage("vihollinen"); Add(vihollinen); }
/// <summary> /// Asetetaan pelaajalle ohjaimet. /// </summary> /// <param name="tyyppi">Olio jolle halutaan antaa ohjaimet.</param> /// <param name="vasen">Näppäin vasemmalle</param> /// <param name="oikea">Näppäin oikealle</param> /// <param name="ylos">Näppäin ylös</param> private void AsetaOhjaimet(PlatformCharacter tyyppi, Key vasen, Key oikea, Key ylos) { Keyboard.Listen(vasen, ButtonState.Down, PelaajaWalk, tyyppi.Tag + " liikkuu vasemmalle", tyyppi, new Vector(-500, 0)); Keyboard.Listen(vasen, ButtonState.Released, PelaajaWalk, null, tyyppi, Vector.Zero); Keyboard.Listen(oikea, ButtonState.Down, PelaajaWalk, tyyppi.Tag + " liikkuu oikealle", tyyppi, new Vector(500, 0)); Keyboard.Listen(oikea, ButtonState.Released, PelaajaWalk, null, tyyppi, Vector.Zero); Keyboard.Listen(ylos, ButtonState.Pressed, PelaajaJump, tyyppi.Tag + "hyppää ylöspäin", tyyppi, 1000.0); }
void LisaaFedora(Vector paikka, double leveys, double korkeus) { PlatformCharacter fedora = new PlatformCharacter(45, 70); fedora.Mass = 10.0; fedora.Position = paikka; fedora.Image = fedoraKuva; Add(fedora); }
void AmmuAseella(PlatformCharacter pelaaja1) { PhysicsObject ammus = pelaaja1.Weapon.Shoot(); if (ammus != null) { } }
// ---------------------------------------------------------------- // Events // ---------------------------------------------------------------- // TODO: Clean this up! Clean up how player touching harm is handled. override public void OnCharacterTouchMe(int charSide, PlatformCharacter character) { Player player = character as Player; if (player != null) { player.OnTouchHarm(); } }
private void OnTriggerExit2D(Collider2D col) { PlatformCharacter character = col.gameObject.GetComponent <PlatformCharacter>(); if (character != null) { charInMyTrigger = null; } }
void LisaaPelaaja(Vector paikka, double leveys, double korkeus) { pelaaja1 = new PlatformCharacter(leveys, korkeus); pelaaja1.Position = paikka; pelaaja1.Mass = 4.0; pelaaja1.Image = pelaajanKuva; AddCollisionHandler(pelaaja1, "tahti", TormaaTahteen); Add(pelaaja1); }
private void LisaaPelaaja(Vector paikka, double leveys, double korkeus) { pelaaja1 = new PlatformCharacter(leveys, korkeus); pelaaja1.Position = paikka; pelaaja1.Mass = 4.0; pelaaja1.Image = pelaajanKuva; AddCollisionHandler(pelaaja1, "tahti", TormaaTahteen); Add(pelaaja1); }
override protected void OnTriggerExit2D(Collider2D col) { PlatformCharacter character = col.gameObject.GetComponent <PlatformCharacter>(); if (character != null) { SetIsOn(true); } }
/// <summary> /// Liikutetaan kisua /// </summary> /// <param name="hahmo">Kisu</param> /// <param name="NOPEUS">Kisun NOPEUS</param> /// <returns>Kisun liikkeen</returns> public void Liikuta(PlatformCharacter hahmo, double NOPEUS) { hahmo.Walk(NOPEUS); if (PowerUp == true) { hahmo.Walk(POWER_US_NOPEUS); } }
void LuoVihollinen(Vector paikka, double korkeus, double leveys) { vihu = new PlatformCharacter(leveys / 2, korkeus - 1); vihu.Shape = Shape.Circle; vihu.Color = Color.Red; vihu.Position = paikka; vihu.Tag = "vihollinen"; Add(vihu); }
/// <summary> /// Luodaan ohjaimet, joiden avulla pelaaja pystyy ohjaamaan pelihahmoaan, lopettamaan pelin, /// laittamaan peli pauselle sekä katsomaan ohjeet. /// </summary> /// <param name="pelaaja">Pelaajan hahmo</param> //Lähde: Jypelin tasohyppelipelin pohja. private void LuoOhjaimet(PlatformCharacter pelaaja) { Keyboard.Listen(Key.Left, ButtonState.Down, LiikutaPelaajaa, "Liikkuu vasemmalle", pelaaja, -NOPEUS); Keyboard.Listen(Key.Right, ButtonState.Down, LiikutaPelaajaa, "Liikkuu oikealle", pelaaja, NOPEUS); Keyboard.Listen(Key.Up, ButtonState.Pressed, PelaajanHyppy, "Hyppää", pelaaja, HYPPYNOPEUS); Keyboard.Listen(Key.Q, ButtonState.Pressed, Pause, "Pysäyttää pelin. Paina uudelleen jatkaaksesi peliä"); //Lähde: https://trac.cc.jyu.fi/projects/npo/wiki/Pause (viitattu 4.4.2021) Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli"); Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet"); PhoneBackButton.Listen(ConfirmExit, "Lopeta peli"); }
// ---------------------------------------------------------------- // Events // ---------------------------------------------------------------- public override void OnCharacterTouchMe(int charSide, PlatformCharacter character) { base.OnCharacterTouchMe(charSide, character); if (character is Player) { //if (charSide == Sides.B) { GetCollected(); //} } }
private void OnTriggerEnterOrStay(Collider2D col) { PlatformCharacter character = Character(col); //CharacterAffectedByMe if (character != null) { isCharacterInMe = true; ApplyBodyAlpha(); } }
/// <summary> /// Aliohjelma joka luo pelaajan /// </summary> /// <returns>pelattavan hahmon = pelaajan</returns> public PlatformCharacter LuoPelaaja() { pelaaja = new PlatformCharacter(tileWidth * 0.5, tileHeight * 1.5, Shape.Rectangle); pelaaja.Tag = "pelaaja"; pelaaja.Image = Game.LoadImage("pelaaja"); AddCollisionHandler(pelaaja, "oikea", KirjainPoimittu); AddCollisionHandler(pelaaja, "vaara", VirheTeko); AddCollisionHandler(pelaaja, "apuope", VirheTeko); return(pelaaja); }
/// <summary> /// Aliohjelma lisää liikuteltavan pelaajan hahmon peliin. /// </summary> private void Pelaaja() { player = new PlatformCharacter(35, 35, Shape.Circle); player.Y = 310; player.Restitution = 0.0; player.Image = pelaajaHahmo; player.CanRotate = false; player.CanMoveOnAir = true; Add(player); }
/// <summary> /// Luodaan aliohjelma LisaaPelaaja, joka luo uuden PlatformCharacterin pelaaja1. /// Annetaan pelaajalle massa seka liitetaan siihen kuvatiedosto. /// Lisataan tormayskasittelijoita pelaajan ja lantin -sekä pelaajan ja veroKarhun valille. /// </summary> /// <param name="paikka">Paikka, johon pelaaja asetetaan</param> /// <param name="leveys">Pelaajan leveys</param> /// <param name="korkeus">Pelaajan korkeus</param> private void LisaaPelaaja(Vector paikka, double leveys, double korkeus) { pelaaja1 = new PlatformCharacter(leveys, korkeus); pelaaja1.Position = paikka; pelaaja1.Mass = 4.0; pelaaja1.Image = pelaajanKuva; AddCollisionHandler(pelaaja1, "lantti", TormaaLanttiin); AddCollisionHandler(pelaaja1, "veroKarhu", PelaajaOsuu); Add(pelaaja1); }
void LisaaPelaaja(Vector paikka, double leveys, double korkeus) { pelaaja1 = new PlatformCharacter(leveys, korkeus); pelaaja1.Position = paikka; pelaaja1.Mass = 5.0; pelaaja1.Image = pelaajanKuva; pelaaja1.LifetimeLeft = TimeSpan.FromSeconds( 500 ); AddCollisionHandler(pelaaja1, "tahti", TormaaTahteen); pelaaja1.CanRotate = true; Add(pelaaja1); }
// ---------------------------------------------------------------- // Initialize // ---------------------------------------------------------------- public PlatformCharacterPVels(PlatformCharacter myPlatformCharacter) { this.myPlatformCharacter = myPlatformCharacter; currVelIndex = 0; pVels = new Vector2[NumFramesRecorded]; for (int i = 0; i < pVels.Length; i++) { pVels[i] = Vector2.zero; } }
void AmmuAseella(PlatformCharacter pelaaja) { PhysicsObject ammus = Ukko.Weapon.Shoot(); if (ammus != null) { ammus.Size *= 1000; ammus.Image = LoadImage ("Luoti"); //ammus.MaximumLifetime = TimeSpan.FromSeconds(2.0); } }
/// <summary> /// Lisätään Elmo peliin. /// </summary> /// <param name="paikka">mihin kohtaan Elmo sijoitetaan</param> /// <param name="leveys">millä leveydellä Elmo sijaitsee</param> /// <param name="korkeus">millä korkeudella Elmo sijaitsee</param> private void LisaaPelaaja(Vector paikka, double leveys, double korkeus) { pelaaja1 = new PlatformCharacter(leveys, korkeus); pelaaja1.Position = paikka; pelaaja1.Mass = 4.0; pelaaja1.Image = pelaajanKuva; AddCollisionHandler(pelaaja1, "salaatti", TormaaSalaattiin); AddCollisionHandler(pelaaja1, "koti", TormaaKotiin); AddCollisionHandler(pelaaja1, "burgeri", TormaaBurgeriin); Add(pelaaja1); }
void LuoPelaaja(Vector paikka, double leveys, double korkeus) { Ukko = new PlatformCharacter(leveys / 2, korkeus); Ukko.Position = paikka; Ukko.Color = Color.FromHexCode("0094FF"); Ukko.Image = LoadImage("paaukko"); Add(Ukko); Camera.Follow(Ukko); Camera.ZoomFactor = 2; Gravity = new Vector(0, -1000); }
/// <summary> /// Lisätään pelaaja/kisu /// </summary> /// <param name="paikka">Paikka, johon pelaaja/kisu lisätään</param> /// <param name="leveys">Kisun leveys</param> /// <param name="korkeus">Kisun korkeus</param> public void LisaaPelaaja(Vector paikka, double leveys, double korkeus) { kisu = new PlatformCharacter(leveys, korkeus); kisu.Position = paikka; kisu.Mass = 4.0; kisu.Image = kisunKuva; AddCollisionHandler(kisu, "saalis", TormaaSaaliiseen); AddCollisionHandler(kisu, "vihollinen", TormaaViholliseen); AddCollisionHandler(kisu, "herkku", TormaaHerkkuun); AddCollisionHandler(kisu, "maali", TormaaMaaliin); Add(kisu); }
/// <summary> /// Lisää pelaajan eli tässä tapauksessa pallon /// </summary> /// <param name="paikka">Paikka johon pallo pelin alussa lisätään</param> /// <param name="leveys">pallon leveys</param> /// <param name="korkeus">pallon korkeus</param> public void LisaaPelaaja(Vector paikka, double leveys, double korkeus) { pallo = new PlatformCharacter(40, 40); pallo.Shape = Shape.Circle; pallo.IgnoresGravity = true; pallo.Color = Color.Red; pallo.Mass = 4.0; pallo.Position = paikka; AddCollisionHandler(pallo, "tahti", KeraaTahti); pallo.Tag = "pallo"; Add(pallo); }
void LisaaPelaaja(Vector paikka, double leveys, double korkeus) { pelaaja1 = new PlatformCharacter(35,75); pelaaja1.Position = paikka; pelaaja1.Mass = 2.0; pelaaja1.Image = pelaajanKuva; Add(pelaaja1); pelaaja1Elama = new DoubleMeter(100); pelaaja1Elama.MaxValue = 100; pelaaja1Elama.LowerLimit += delegate { pelaaja1.Destroy(); }; BarGauge pelaaja1ElamaPalkki = new BarGauge(20, Screen.Width / 3); pelaaja1ElamaPalkki.X = Screen.Center.X; pelaaja1ElamaPalkki.Y = Screen.Bottom + 30; pelaaja1ElamaPalkki.Angle = Angle.FromDegrees(90); pelaaja1ElamaPalkki.BindTo(pelaaja1Elama); pelaaja1ElamaPalkki.Color = Color.Red; pelaaja1ElamaPalkki.BarColor = Color.Green; Add(pelaaja1ElamaPalkki); pelaajankäsi = new GameObject(20, 20); pelaaja1.Add(pelaajankäsi); pelaajankäsi.Color = Color.Red; pelaajankäsi.X = pelaajankäsi.X + 14; pelaajankäsi.Y = pelaajankäsi.Y - 5; }
void LisaaNinja(Vector paikka, double leveys, double korkeus) { Ninja = new PlatformCharacter(leveys, korkeus); Ninja.Position = paikka; Ninja.Mass = 5.0; Ninja.Image = NinjanKuva; Ninja.Tag = "Ninja"; Add(Ninja); NinjaAivot = new FollowerBrain(pelaaja1); NinjaAivot.Speed = 400; NinjaAivot.DistanceFar = 500; NinjaAivot.Active = true; Ninja.Brain = NinjaAivot; }
void TormaaNinjaan(PlatformCharacter hahmo, PlatformCharacter Ninja) { hahmo.Destroy(); ClearAll(); Begin(); }
void LuoVihollinen(Vector paikka, double korkeus, double leveys) { PlatformCharacter vihu = new PlatformCharacter(2*leveys/3, korkeus - 1); vihu.Color = Color.DarkForestGreen; vihu.Shape = Shape.Rectangle; vihu.Position = paikka; vihu.Tag = "vihollinen"; // Haluamme, että vihollinen tekee jotain, joten annetaan sille aivot PlatformWandererBrain vihollisenAivot = new PlatformWandererBrain(); vihollisenAivot.JumpSpeed = 350; vihollisenAivot.TriesToJump = true; vihollisenAivot.Speed = 100; vihu.Brain = vihollisenAivot; Add(vihu); }
void Liikuta(PlatformCharacter hahmo, double nopeus) { hahmo.Walk(nopeus); }
void LuoPelaaja(Vector paikka, double leveys, double korkeus) { slime = new PlatformCharacter(65, 60); slime.Shape = Shape.Circle; slime.Image = limakuva; slime.Position = paikka; AddCollisionHandler<PlatformCharacter, PhysicsObject>(slime, Tormays); Add(slime); }
void LuoLentoBlob(Vector paikka, double korkeus, double leveys) { PlatformCharacter LentoBlob = new PlatformCharacter(30.0, 30.0); LentoBlob.Image = LoadImage("LentoBlob"); LentoBlob.Position = paikka; Add(LentoBlob); }
void LisaaPelaajaPeliin() { Pelaaja = new PlatformCharacter(RUUDUN_LEVEYS - 2, RUUDUN_KORKEUS - 2); Pelaaja.LinearDamping = 1-PELAAJAN_LIUKUMISVAKIO; Pelaaja.IsVisible = false; Pelaaja.IgnoresCollisionResponse = true; Add(Pelaaja, 2); PelissaOlevatHahmot.Add(Pelaaja); if (ValittuPelaajaHahmo!=null) { Pelaaja.Image = ValittuPelaajaHahmo; Pelaaja.Tag = Nimet[ValittuPelaajaHahmo]; } else { Pelaaja.Shape = Shape.Circle; Pelaaja.Color = PELAAJAN_ALOITUSPAIKAN_VARI; } Camera.Follow(Pelaaja); }
void LuoPelaaja(Vector paikka, double korkeus, double leveys) { pelaaja = new PlatformCharacter(2*leveys/3, korkeus - 1); pelaaja.Shape = Shape.Rectangle; pelaaja.Position = paikka; pelaaja.Color = Color.Red; Add(pelaaja); AddCollisionHandler(pelaaja, PelaajaTormasi); }
void LisaaHahmoKartalle(Vector paikka, double leveys, double korkeus, Color vari) { // Magneta on pelaaja if (vari == PELAAJAN_ALOITUSPAIKAN_VARI) { PelaajanAloitusPaikat.Add(paikka); } else { PlatformCharacter hahmo = new PlatformCharacter(leveys, korkeus); hahmo.Position = paikka; hahmo.Image = RandomGen.SelectOne<Image>(HahmoKuvat[vari]); hahmo.Tag = Nimet[hahmo.Image]; Add(hahmo, 2); PelissaOlevatHahmot.Add(hahmo); // Lisää vihollisille aivot PlatformWandererBrain aivot = new PlatformWandererBrain(); aivot.Speed = PELAAJAN_KAVELYNOPEUS / 4; aivot.FallsOffPlatforms = false; aivot.TriesToJump = false; aivot.Active = false; // pistetään päälle kun peli alkaa hahmo.Brain = aivot; // Kun pelaaja osuu hahmoon, kutsutaan PelaajaOsuuHahmoon aliohjelmaa AddCollisionHandler(Pelaaja, hahmo, PelaajaOsuuHahmoon); } }
PlatformCharacter Pelaaja1() { pelaaja = new PlatformCharacter(20, 20); Add(pelaaja); pelaaja.Tag = "pelaaja"; Keyboard.Listen(Key.Left, ButtonState.Down, pelaaja.Move, null, new Vector(-1000, 0)); Keyboard.Listen(Key.Right, ButtonState.Down, pelaaja.Move, null, new Vector(1000, 0)); Keyboard.Listen(Key.Down, ButtonState.Down, pelaaja.Push, null, new Vector(0, -1000)); Keyboard.Listen(Key.Up, ButtonState.Down, pelaaja.Push, null, new Vector(0, 1000)); Keyboard.Listen(Key.Up, ButtonState.Released, pelaaja.Stop, null); Keyboard.Listen(Key.Right, ButtonState.Released, pelaaja.Stop, null); Keyboard.Listen(Key.Down, ButtonState.Released, pelaaja.Stop, null); Keyboard.Listen(Key.Left, ButtonState.Released, pelaaja.Stop, null); pelaajan1Ase = new AssaultRifle(30, 10); pelaajan1Ase.Ammo.Value = 1000; pelaajan1Ase.Angle += Angle.FromDegrees(1); pelaaja.Add(pelaajan1Ase); pelaaja.Weapon = pelaajan1Ase; //AssaultRifle pyssy = new AssaultRifle(20, 5); return pelaaja; }
void LuoPelaaja(Vector paikka, double korkeus, double leveys) { Pelaaja = new PlatformCharacter(30.0, 30.0); Pelaaja.Image = LoadImage("PlayerCarrot"); Pelaaja.Weapon = new PlasmaCannon(25, 10); Pelaaja.Weapon.Ammo.Value = 100000; Pelaaja.Weapon.ProjectileCollision = AmmusOsui; Pelaaja.Position = paikka; Add(Pelaaja); }
void LuoBlob(Vector paikka, double korkeus, double leveys) { PlatformCharacter Blob = new PlatformCharacter(30.0, 30.0); Blob.Image = LoadImage("Blob"); Blob.Position = paikka; PlatformWandererBrain tasoaivot = new PlatformWandererBrain(); Blob.Brain = tasoaivot; Add(Blob); }
void LuoPelaaja(double korkeus, double leveys) { PlatformCharacter Pelaaja = new PlatformCharacter(30.0, 30.0); Pelaaja.Image = LoadImage("PlayerCarrot"); Add(Pelaaja); }
void LuoPelaaja(Vector paikka, double korkeus, double leveys) { Steve = new PlatformCharacter(15, 30); Steve.Position = paikka; pelaajanase = new AssaultRifle(15, 5); Steve.Image = SteveKuva; pelaajanase.ProjectileCollision = AmmusOsui; //Steve.Add(pelaajanase) Steve.Weapon = pelaajanase; AddCollisionHandler(Steve, "Monsteri", TormaaMonsteriin); Steve.Animation = new Animation(ukkelinKavely); Add(Steve); Camera.Follow(Steve); Camera.ZoomFactor = 2; }
void LuoLentoBlob(double korkeus, double leveys) { PlatformCharacter LentoBlob = new PlatformCharacter(30.0, 30.0); LentoBlob.Image = LoadImage("LentoBlob"); Add(LentoBlob); }
void LuoVihollinen(Vector paikka, double leveys, double korkeus) { vihollinen = new PlatformCharacter(leveys/2, korkeus); vihollinen.Color = Color.FromHexCode("FF0000"); vihollinen.Image = LoadImage("vihollinen"); vihollinen.Position = paikka; /*RandomMoverBrain satunnaisAivot = new RandomMoverBrain(200); satunnaisAivot.ChangeMovementSeconds = 3; vihollinen.Brain = satunnaisAivot; satunnaisAivot.Speed = 100; satunnaisAivot.Active = true; satunnaisAivot.TurnWhileMoving = true; vihollinen.CanRotate = false;*/ PlatformWandererBrain tasoAivot = new PlatformWandererBrain(); tasoAivot.Speed = 100; vihollinen.Brain = tasoAivot; Add(vihollinen); }
void Hyppaa(PlatformCharacter hahmo, double nopeus) { hahmo.Jump(nopeus); }
void AmmuAseella(PlatformCharacter Pelaaja) { PhysicsObject ammus = Pelaaja.Weapon.Shoot(); }
public void LisaaUkko() { ukko = new PlatformCharacter(128, 146); ukko.X = Level.Left + 700; ukko.Y = Level.Bottom + 370; ukko.AnimWalk = new Animation (ukonKavely); ukonase = new AssaultRifle(100, 50); ukonase.InfiniteAmmo = true; ukonase.FireRate = 5.0; ukko.Weapon = ukonase; ukonase.X = +70; ukonase.Y = +10; ukonase.Image = LoadImage("assaultrifle"); ukonase.ProjectileCollision = AmmusOsui; ukko.CanRotate = false; ukko.IgnoresGravity = false; ukko.CollisionIgnoreGroup = 1; Add(ukko, 1); lentoPäättyy(); }
void Luovihollinen(Vector paikka, double leveys, double korkeus) { //PhysicsObject vihollinen = new PhysicsObject(leveys, korkeus); PlatformCharacter vihollinen = new PlatformCharacter(leveys, korkeus); Vector kentanPiste = Level.GetRandomPosition(); vihollinen.Position = kentanPiste; vihollinen.Shape = Shape.Rectangle; vihollinen.Color = Color.Red; vihollinen.Image = päävihollinen; //RandomMoverBrain satunnaisAivot = new RandomMoverBrain(200); //vihollinen.Brain = satunnaisAivot; FollowerBrain seuraajanAivot = new FollowerBrain("pelaaja"); vihollinen.Brain = seuraajanAivot; seuraajanAivot.DistanceClose = 100; vihollinen.CanRotate = false; //seuraajanAivot.TurnWhileMoving = true; vihollisenase = new AssaultRifle(30, 10); vihollinen.Weapon = vihollisenase; vihollisenase.ProjectileCollision = AmmusOsui; vihollinen.Weapon.Ammo.Value = 1000; seuraajanAivot.TargetClose += mitatapahtuukunollaanlahella; //vihollinen.Add(vihollisenase); Add(vihollinen); }