/// <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> /// Asetetaan ohjaimet. /// </summary> private void AsetaOhjaimet() { Keyboard.Listen(Key.Up, ButtonState.Down, delegate { pelaaja.Jump(nopeus); }, "Pelaaja hyppää ylöspäin"); Keyboard.Listen(Key.Right, ButtonState.Down, delegate { pelaaja.Walk(nopeus); }, "Pelaaja liikkuu oikealle"); Keyboard.Listen(Key.Left, ButtonState.Down, delegate { pelaaja.Walk(-nopeus); }, "Pelaaja liikkuu vasemmalle"); PhoneBackButton.Listen(ConfirmExit, "Lopeta peli"); Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli"); }
private void LuoPelaaja(Vector position, double width, double height) { PlatformCharacter hahmo = new PlatformCharacter(40, 80); hahmo.Position = position; Add(hahmo); AssaultRifle ase = new AssaultRifle(60, 15); hahmo.Weapon = ase; //PlatformCharacter apu = new PlatformCharacter( 20, 20, Shape.Circle ); PhysicsObject apu = new PhysicsObject(20, 20, Shape.Circle); FollowerBrain aivot = new FollowerBrain(hahmo); aivot.DistanceClose = 80; aivot.StopWhenTargetClose = true; apu.Brain = aivot; apu.IgnoresGravity = true; Add(apu); AddCollisionHandler(apu, "ammus", delegate(PhysicsObject a, PhysicsObject b) { a.Destroy(); b.Destroy(); }); Label hahmonNimi = new Label(RandomGen.NextLetter(true).ToString() + RandomGen.NextLetter(false).ToString()); hahmonNimi.Bottom = hahmo.Height; hahmo.Add(hahmonNimi); Keyboard.Listen(Key.Space, ButtonState.Down, delegate { var ammus = ase.Shoot(); if (ammus != null) { ammus.Tag = "ammus"; } }, null); Keyboard.Listen(Key.Right, ButtonState.Down, () => hahmo.Walk(200), null); Keyboard.Listen(Key.Left, ButtonState.Down, () => hahmo.Walk(-200), null); Keyboard.Listen(Key.Up, ButtonState.Down, () => hahmo.Jump(600), null); Keyboard.Listen(Key.Enter, ButtonState.Pressed, delegate { if (!apu.IsDestroyed) { MessageDisplay.Add("boop!"); } }, null); }
void Hyppaa(PlatformCharacter hahmo, double nopeus) { hahmo.Jump(nopeus); }
/// <summary> /// Pelaaja hyppää. /// </summary> /// <param name="pelaaja">PlatformCharacter jota halutaan liikauttaa.</param> /// <param name="suunta">Mihin suuntaan impulssi kohdistuu.</param> public static void PelaajaJump(PlatformCharacter pelaaja, double speed) { pelaaja.Jump(speed); }
/// <summary> /// Antaa pallolle nopeuden, millä se voi hypätä. /// </summary> /// <param name="hahmo">Hahmo, joka hyppää</param> /// <param name="nopeus">Arvo, jolla pallo voi hypätä ylöspäin</param> public void Hyppaa(PlatformCharacter hahmo, double nopeus) { pallo.Jump(nopeus); }
/// <summary> /// Sankari hyppää /// </summary> /// <param name="sankari">Urhea sankarimme</param> /// <param name="korkeus"></param> public void Hyppaa(PlatformCharacter sankari, double korkeus) { sankari.Jump(korkeus); }
/// <summary> /// Kisun hyppääminen /// </summary> /// <param name="hahmo">Kisu</param> /// <param name="NOPEUS">Kisun NOPEUS</param> /// <returns>Pelaajan/kisun hypyn</returns> public void Hyppaa(PlatformCharacter hahmo, double NOPEUS) { hahmo.Jump(NOPEUS); }
/// <summary> /// Aliohjelma hyppäämiseen. /// </summary> /// <param name="pulu">Hyppäävä hahmo.</param> /// <param name="impulssi">Voima, jolla hypätään</param> private void Hyppy(PlatformCharacter pulu, double impulssi) { pulu.Jump(impulssi); }
void PelaajaHyppaa(double nopeus) { pelaaja.Jump(nopeus); }
/// <summary> /// Määritellään pelaajan hyppy. /// </summary> /// <param name="pelaaja">Pelaajan hahmo</param> /// <param name="nopeus">Hahmon nopeus hypättäessä</param> //Lähde: Jypelin tasohyppelypelin pohja. private void PelaajanHyppy(PlatformCharacter pelaaja, double nopeus) { pelaaja.Jump(nopeus); }
void HyppaytaPelaajaa(double korkeus) { ToistaTehoste(Tapahtuma.Hyppaa); Pelaaja.Jump(korkeus); }
/// <summary> /// Tasohyppelijä hyppää /// </summary> /// <param name="pelaaja">tasohyppelijä</param> /// <param name="nopeus">nopeus jolla th halutaan kävelevän</param> void Hyppy(PlatformCharacter pelaaja) { pelaaja.Jump(1400.0); }
/// <summary> /// Aliohjelma toteuttaa pelaajan ylöspäin hypyn. /// </summary> /// <param name="player"></param> private void Hyppaa(PlatformCharacter player) { player.Jump(800); hyppy.Play(); }
/// <summary> /// Pelihahmo hyppaa ylospain annetun impulssin voimakkuudella. /// </summary> /// <param name="hahmo">Pelihahmo.</param> /// <param name="impulssi">Impulssi.</param> public void HahmoHyppaa(PlatformCharacter hahmo) { hahmo.Jump(hyppyKorkeus); }