Пример #1
0
        /// <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);
        }
Пример #2
0
    /// <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");
    }
Пример #3
0
        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);
        }
Пример #4
0
 void Hyppaa(PlatformCharacter hahmo, double nopeus)
 {
     hahmo.Jump(nopeus);
 }
Пример #5
0
 void Hyppaa(PlatformCharacter hahmo, double nopeus)
 {
     hahmo.Jump(nopeus);
 }
Пример #6
0
 /// <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);
 }
Пример #7
0
 /// <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);
 }
Пример #8
0
 /// <summary>
 /// Sankari hyppää
 /// </summary>
 /// <param name="sankari">Urhea sankarimme</param>
 /// <param name="korkeus"></param>
 public void Hyppaa(PlatformCharacter sankari, double korkeus)
 {
     sankari.Jump(korkeus);
 }
Пример #9
0
 /// <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);
 }
Пример #10
0
 /// <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);
 }
Пример #11
0
 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);
 }
Пример #13
0
 void HyppaytaPelaajaa(double korkeus)
 {
     ToistaTehoste(Tapahtuma.Hyppaa);
     Pelaaja.Jump(korkeus);
 }
Пример #14
0
 /// <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);
 }
Пример #15
0
 /// <summary>
 /// Aliohjelma toteuttaa pelaajan ylöspäin hypyn.
 /// </summary>
 /// <param name="player"></param>
 private void Hyppaa(PlatformCharacter player)
 {
     player.Jump(800);
     hyppy.Play();
 }
Пример #16
0
 /// <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);
 }