/// <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;
    }
示例#3
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);
        }
示例#4
0
    /// <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);
    }
示例#5
0
    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);
    }
示例#6
0
    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);
        }
    }
示例#7
0
    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);
        }
    }
示例#8
0
 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();
                 }
             }
         }
     }
 }
示例#9
0
 /// <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);
     }
 }
示例#11
0
 /// <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;
 }
示例#12
0
 /// <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);
     }
 }
示例#13
0
 /// <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();
 }
示例#14
0
    /// <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);
    }
示例#15
0
 void Liikuta(PlatformCharacter hahmo, double nopeus)
 {
     Angle kulma = hahmo.Angle;
     kulma.Degrees -= 15;
     hahmo.Angle = kulma;
     hahmo.Walk(nopeus);
 }
示例#16
0
 void LuoVihollinen(Vector paikka, double leveys, double korkeus)
 {
     vihollinen = new PlatformCharacter(20, 20);
     vihollinen.Color = Color.FromHexCode("FF0000");
     vihollinen.Image = LoadImage("vihollinen");
     Add(vihollinen);
 }
示例#17
0
 /// <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);
 }
示例#18
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);
 }
示例#19
0
    void AmmuAseella(PlatformCharacter pelaaja1)
    {
        PhysicsObject ammus = pelaaja1.Weapon.Shoot();

        if (ammus != null)
        {
        }
    }
示例#20
0
    // ----------------------------------------------------------------
    //  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();
        }
    }
示例#21
0
    private void OnTriggerExit2D(Collider2D col)
    {
        PlatformCharacter character = col.gameObject.GetComponent <PlatformCharacter>();

        if (character != null)
        {
            charInMyTrigger = null;
        }
    }
示例#22
0
 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);
 }
示例#23
0
 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);
        }
    }
示例#25
0
    /// <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);
        }
    }
示例#26
0
 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");
 }
示例#28
0
 // ----------------------------------------------------------------
 //  Events
 // ----------------------------------------------------------------
 public override void OnCharacterTouchMe(int charSide, PlatformCharacter character)
 {
     base.OnCharacterTouchMe(charSide, character);
     if (character is Player)
     {
         //if (charSide == Sides.B) {
         GetCollected();
         //}
     }
 }
示例#29
0
    private void OnTriggerEnterOrStay(Collider2D col)
    {
        PlatformCharacter character = Character(col);        //CharacterAffectedByMe

        if (character != null)
        {
            isCharacterInMe = true;
            ApplyBodyAlpha();
        }
    }
示例#30
0
 /// <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);
 }
示例#31
0
 /// <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);
 }
示例#33
0
 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;
        }
    }
示例#35
0
    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);
        }
    }
示例#36
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);
 }
示例#37
0
    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);
    }
示例#38
0
 /// <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);
 }
示例#39
0
 /// <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);
 }
示例#40
0
文件: bbd.cs 项目: EA99/sejypeli
 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;
 }
示例#41
0
 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;
 }
示例#42
0
 void TormaaNinjaan(PlatformCharacter hahmo, PlatformCharacter Ninja)
 {
     hahmo.Destroy();
     ClearAll();
     Begin();
 }
示例#43
0
    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);
    }
示例#44
0
 void Liikuta(PlatformCharacter hahmo, double nopeus)
 {
     hahmo.Walk(nopeus);
 }
示例#45
0
 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);
 }
示例#46
0
 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);
 }
示例#47
0
    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);
    }
示例#48
0
    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);
    }
示例#49
0
    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);
        }
    }
示例#50
0
    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;
    }
示例#51
0
 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);
 }
示例#52
0
 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);
 }
示例#53
0
 void LuoPelaaja(double korkeus, double leveys)
 {
     PlatformCharacter Pelaaja = new PlatformCharacter(30.0, 30.0);
     Pelaaja.Image = LoadImage("PlayerCarrot");
     Add(Pelaaja);
 }
示例#54
0
    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; 

    
    
  
  
       
    }
示例#55
0
 void LuoLentoBlob(double korkeus, double leveys)
 {
     PlatformCharacter LentoBlob = new PlatformCharacter(30.0, 30.0);
     LentoBlob.Image = LoadImage("LentoBlob");
     Add(LentoBlob);
 }
示例#56
0
    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);
    }
示例#57
0
 void Hyppaa(PlatformCharacter hahmo, double nopeus)
 {
     hahmo.Jump(nopeus);
 }
示例#58
0
 void AmmuAseella(PlatformCharacter Pelaaja)
 {
     PhysicsObject ammus = Pelaaja.Weapon.Shoot();
 }
示例#59
0
    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();
    }
示例#60
0
    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);
    }