当前位置: 首页>>代码示例>>C#>>正文


C# PhysicsObject.Hit方法代码示例

本文整理汇总了C#中PhysicsObject.Hit方法的典型用法代码示例。如果您正苦于以下问题:C# PhysicsObject.Hit方法的具体用法?C# PhysicsObject.Hit怎么用?C# PhysicsObject.Hit使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在PhysicsObject的用法示例。


在下文中一共展示了PhysicsObject.Hit方法的11个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: KaytaRakettia

 void KaytaRakettia(PhysicsObject pelaaja)
 {
     pelaaja.Hit(Vector.FromLengthAndAngle(10, pelaaja.Angle+Angle.FromDegrees(90) ));
 }
开发者ID:juherask,项目名称:sejypeli,代码行数:4,代码来源:pewpew.cs

示例2: uusiomena

    void uusiomena(int level)
    {
        for (int i = 0; i < level; i++)
        {
            PhysicsObject omena = new PhysicsObject(50, 50);
            omena.Shape = Shape.Circle;
            omena.Color = Color.Red;
            GameObject lehti = new GameObject(20, 20);
            omena.Y = Screen.Top;
            lehti.Shape = Shape.Heart;
            lehti.Color = Color.DarkGreen;
            Add(omena);
            lehti.Y = 30;
            omena.Add(lehti);
            Mouse.ListenOn(omena, MouseButton.Left,
                ButtonState.Pressed, klikattuomenaa,
                "Omenaa Klikattu", omena);
            Keyboard.Listen(Key.R, ButtonState.Pressed, Nollaa, "nollaa");

            omena.Hit(RandomGen.NextVector(50, 100));

        }
        omenoitailmassa = level;
    }
开发者ID:J4MES1,项目名称:sejypeli,代码行数:24,代码来源:koppi_.cs

示例3: OnEnemiesCollide

    void OnEnemiesCollide(PhysicsObject thisCollides, PhysicsObject toThat)
    {
        if (thisCollides.Tag == "h" && toThat.Tag == "m")
        {
            OnEnemiesCollide(toThat, thisCollides);
            return;
        }

        // Already fleeing
        if (thisCollides.IgnoresCollisionResponse || toThat.IgnoresCollisionResponse)
            return;

        // Push them apart and then togehter.
        Vector delta = thisCollides.Position - toThat.Position;
        toThat.Hit(toThat.Position + delta * 6.0);
        thisCollides.Hit(thisCollides.Position - delta * 6.0);
        Timer.SingleShot(0.1, () =>
        {
            toThat.MoveTo(thisCollides.Position, unitMoveSpeed);
            thisCollides.MoveTo(toThat.Position, unitMoveSpeed);
        });

        double thisHitMultiplier = 1.0;
        double thatHitMultiplier = 1.0;
        //* Kauhea mörkö pelottaa metsureita ja mönkijöitä kaksinkertaisella voimalla
        if ( (thisCollides.Image == mRepeller && toThat.Image == hPreparer) ||
             (thisCollides.Image == mRepeller && toThat.Image == hGatherer) )
        {
            thisHitMultiplier = 2.0;
            thatHitMultiplier = 0.5;
        }

        //* Eläimet karkoittavat toimittajia kaksinkertaisella teholla (mörköhavainnot osoittautuivat vain metsässä jolkottelevaksi hirveksi)
        if (thisCollides.Image == mGatherer && toThat.Image == hRepeller)
        {
            thisHitMultiplier = 2.0;
            thatHitMultiplier = 0.5;
        }

        //* Mönkijä karkoittaa pärinällään eläimiä kaksinkertaisella teholla
        if (toThat.Image == hGatherer && thisCollides.Image == mGatherer)
        {
            thisHitMultiplier = 0.5;
            thatHitMultiplier = 2.0;
        }

        //* Toimittaja karkoittaa haamumörköjä ja kauheita mörköjä kaksinkertaisella teholla
        if ((toThat.Image == hRepeller && thisCollides.Image == mRepeller ) ||
            (toThat.Image == hRepeller && thisCollides.Image == mPreparer ))
        {
            thisHitMultiplier = 0.5;
            thatHitMultiplier = 2.0;
        }

        // First subobject is assumed to be health bar
        DoubleMeter hpThis = (DoubleMeter)(thisCollides.Objects.First() as ProgressBar).Meter;
        DoubleMeter hpThat = (DoubleMeter)(toThat.Objects.First() as ProgressBar).Meter;
        hpThis.AddValue(hitPerHit * thatHitMultiplier);
        hpThat.AddValue(hitPerHit * thisHitMultiplier);

        // Make sure we are locked into deadly? combat.
        //  This requires us to make sure we try to move to the end of the line.
        // TODO: Find out why sometimes the unit shoots away. This quickfix tries to fix it)
        Timer.SingleShot(0.25, () => RedoMoveTo(thisCollides));
        // TODO: Find out why sometimes the unit shoots away. This quickfix tries to fix it)
        Timer.SingleShot(0.25, () => RedoMoveTo(toThat));
    }
开发者ID:juherask,项目名称:sejypeli,代码行数:67,代码来源:MorotVsIhmiset.cs

示例4: PudotaOmenoita

    void PudotaOmenoita(int lukumaara)
    {
        for (int i = 0; i < lukumaara; i++)
        {
            PhysicsObject omena = new PhysicsObject(80, 80);
            omena.Shape = Shape.Circle;
            omena.Color = Color.Red;
            omena.Y = Screen.Top;
            omena.Restitution = 0.5;
            GameObject lehti = new GameObject(30, 30);
            lehti.Shape = Shape.Star;
            lehti.Color = Color.Green;
            lehti.Y = 40;
            omena.Add(lehti);

            Add(omena);

            omena.Hit(RandomGen.NextVector(50, 100));

            Mouse.ListenOn(omena, MouseButton.Left,
                ButtonState.Pressed, OmenaaKlikattu,
                "omenaa klikattu", omena);
        }
        omenoitaIlmassa = lukumaara;
    }
开发者ID:JeesMies00,项目名称:sejypeli,代码行数:25,代码来源:Koppi.cs

示例5: UusiOmena

    void UusiOmena(int lukumaara)
    {
        for (int i = 0; i < lukumaara; i++)
        {

            omenoitaIlmassa = lukumaara;

            PhysicsObject omena = new PhysicsObject(50, 50);

            omena.Shape = Shape.Circle;
            omena.Color = Color.Red;
            omena.Y = Screen.Top;
            GameObject lehti = new GameObject(20, 20);
            lehti.Shape = Shape.Heart;
            lehti.Color = Color.Green;
            Add(omena);
            lehti.Y = 30;
            omena.Add(lehti);

            Mouse.ListenOn(omena, MouseButton.Left,
                ButtonState.Pressed, OmenaaKlikattu,
                "omenaa kilakttu", omena);

            omena.Hit(RandomGen.NextVector(60, 100));

        }
    }
开发者ID:veissuli,项目名称:sejypeli,代码行数:27,代码来源:koppi.cs

示例6: LuoPallo

    void LuoPallo()
    {
        for (int i = 0; i < 10; i++)
        {
            pallo = new PhysicsObject(70, 70);
            Vector Suunta = Vector.FromLengthAndAngle(500, pallo.Angle);

            pallo.Hit(Suunta);
            pallo.Position = RandomGen.NextVector(200, 500);
            pallo.Velocity = RandomGen.NextVector(100, 500);
            pallo.Shape = Shape.Circle;
            pallo.Tag = "pallo";
            pallo.KineticFriction = 0.0;
            pallo.Restitution = 1.0;
            pallo.Image = LoadImage("popopo");
            Add(pallo);
        }
    }
开发者ID:jerekop,项目名称:sejypeli,代码行数:18,代码来源:FysiikkaPeli1.cs

示例7: LuoKentta

    void LuoKentta()
    {
        pallo = new PhysicsObject(40.0, 40.0);
        pallo.Shape = Shape.Circle;
        Add(pallo);

        maila1 = LuoMaila(Level.Left + 20.0, 0.0);
        maila2 = LuoMaila(Level.Right - 20.0, 0.0);

        pallo.X = -200.0;
        pallo.Y = 0.0;

        Vector impulssi = new Vector(150.0, 0.0);
        pallo.Hit(impulssi);
        pallo.Restitution = 2.0;

         vasenReuna = Level.CreateLeftBorder();
        vasenReuna.Restitution = 1.0;
        vasenReuna.IsVisible = false;
         oikeaReuna = Level.CreateRightBorder();
        oikeaReuna.Restitution = 1.0;
        oikeaReuna.IsVisible = false;
        PhysicsObject ylaReuna = Level.CreateTopBorder();
        ylaReuna.Restitution = 1.0;
        ylaReuna.KineticFriction = 0.0;
        ylaReuna.IsVisible = false;
        PhysicsObject alaReuna = Level.CreateBottomBorder();
        alaReuna.Restitution = 1.0;
        alaReuna.IsVisible = false;
        alaReuna.KineticFriction = 0.0;

        Level.Background.Color = Color.Black;

        Camera.ZoomToLevel();

        AddCollisionHandler(pallo, KasittelePallonTormays);
    }
开发者ID:JopezSuomi,项目名称:sejypeli,代码行数:37,代码来源:Pong.cs

示例8: Begin

    public override void Begin()
    {
        SetWindowSize(1024, 768);

        pallo = new PhysicsObject(60 * SKAALAUS, 60 * SKAALAUS, Shape.Circle);
        pallo.Color = Color.Red;
        Add(pallo);
        AddCollisionHandler(pallo, PalloTormaa);

        pallonAani = LoadSoundEffect("justroll");
        tormaysAani = LoadSoundEffect("clonkroll");

        // Kaksi tilaa, demo, jossa pallo kiertää ympyrää vaihtaen vauhtiaan ja pelitila (toistaiseksi ilman mailoja)
        demoNappi = new PushButton(100, 50, "Demo");
        demoNappi.Clicked += PeliTaiDemoPaalle;
        demoNappi.X = Screen.Left + 75;
        demoNappi.Y = Screen.Top - 50;
        Add(demoNappi);

        if (demo)
        {
            demoNappi.Text = "Peli";

            kentta = new GameObject(500, 500);
            Add(kentta, -1);
            Timer.SingleShot(pallonNopeus, PalloPyorahtaa);
        }
        else
        {
            demoNappi.Text = "Demo";

            pallo.CanRotate = false;
            pallo.KineticFriction = 0.1;

            var reunanleveys = 20;
            PhysicsObject vasenLaita = PhysicsObject.CreateStaticObject(reunanleveys, 3660 * SKAALAUS + reunanleveys*2);
            vasenLaita.X = -1220 * SKAALAUS / 2 - reunanleveys/2;
            PhysicsObject oikeaLaita = PhysicsObject.CreateStaticObject(reunanleveys, 3660 * SKAALAUS + reunanleveys * 2);
            oikeaLaita.X = +1220 * SKAALAUS / 2 + reunanleveys / 2;
            PhysicsObject p1Maali = PhysicsObject.CreateStaticObject(1220 * SKAALAUS + 0, reunanleveys);
            p1Maali.Color = Color.Red;
            p1Maali.Y = -3660 * SKAALAUS / 2 - reunanleveys / 2;
            PhysicsObject p2Maali = PhysicsObject.CreateStaticObject(1220 * SKAALAUS + 0, reunanleveys);
            p2Maali.Color = Color.Blue;
            p2Maali.Y = 3660 * SKAALAUS / 2 + reunanleveys / 2;

            // Estä laitoja törmäilemästä keskenään
            vasenLaita.CollisionIgnoreGroup = 1;
            oikeaLaita.CollisionIgnoreGroup = 1;
            p1Maali.CollisionIgnoreGroup = 1;
            p2Maali.CollisionIgnoreGroup = 1;

            kentta = new GameObject(1220 * SKAALAUS + 0, 3660 * SKAALAUS + reunanleveys * 2);
            kentta.IsVisible = false;
            Add(kentta, -1);

            // Laidat ovat kimmoisia
            var kimmoisuus = 0.99;
            vasenLaita.Restitution = kimmoisuus;
            oikeaLaita.Restitution = kimmoisuus;
            p1Maali.Restitution = kimmoisuus;
            p2Maali.Restitution = kimmoisuus;
            pallo.Restitution = kimmoisuus;

            Add(vasenLaita); Add(oikeaLaita); Add(p1Maali); Add(p2Maali);

            var suunta = new Vector(10, 300);
            alkuNopeus = suunta.Magnitude;
            pallo.Hit(suunta);

            Timer.SingleShot(0.1, PalloLiikkuu);
        }

        Mouse.IsCursorVisible = true;
        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
    }
开发者ID:juherask,项目名称:sejypeli,代码行数:76,代码来源:RattleAndHum.cs

示例9: LuoVihollinen

    void LuoVihollinen(Vector paikka, double kokoX, double kokoY)
    {
        Enemy pahis1 = new Enemy(kokoX * 0.8, kokoY * 0.8, 3); //3. parametri on pahis1:n elämät
        pahis1.Position = paikka;
        pahis1.Tag = "pahis1";
        pahis1.Image = pahiksenkuva;
        pahikset.Add(pahis1);
        Add(pahis1);

        FollowerBrain seuraaja = new FollowerBrain(pelaaja);
        seuraaja.Speed = 50;
        seuraaja.TurnWhileMoving = true;

        List<Vector> reitti = new List<Vector>(); //tekoälyn reitin pisteiden koordinaatit
        reitti.Add(new Vector(pahis1.X + 15, pahis1.Y)); //nämä ovat vain testejä JA NE TULEE VAIHTAA KUN PELIN TEKEMINEN EDISTYY
        reitti.Add(new Vector(pahis1.X + 15, pahis1.Y));

        PathFollowerBrain odottaja = new PathFollowerBrain();
        odottaja.ReverseReturn = true;
        odottaja.Loop = true;
        odottaja.Path = reitti;

        pahis1.Brain = odottaja;

        AddCollisionHandler(pahis1, PahikseenOsui);

        Timer ampumisajastin = new Timer(); // käytetään ampumisen ajastamiseen
        ampumisajastin.Interval = 3.0;
        ampumisajastin.Timeout += delegate
        {
            Vector suunta = pelaaja.Position - pahis1.Position;
            if (pahis1.IsDestroyed == false && pahis1.IsAddedToGame == true && pahis1.SeesObject(pelaaja) && Math.Abs(pahis1.Angle.Radians - suunta.Angle.Radians) < Math.PI / 2 && pahis1.isPoisonend == false) // pitkä rivi jolla tarkastetaan näkeekö pahis1 pelaajaa
            {
                PhysicsObject ammus = new PhysicsObject(30, 10);
                ammus.Position = pahis1.Position;
                ammus.MaximumLifetime = TimeSpan.FromSeconds(2);
                ammus.Angle = pahis1.Angle;
                Add(ammus);
                ammus.Hit(Vector.FromLengthAndAngle(1000, pahis1.Angle));
            }
        };
        ampumisajastin.Start();

        //reittihaku

        TestiPalikka testipalikka = new TestiPalikka(10, 10);
        testipalikka.Mass = 0;
        testipalikka.Position = pahis1.Position;
        testipalikka.MaximumLifetime = TimeSpan.FromSeconds(2.0);

        AddCollisionHandler(testipalikka, TestiTormays);

        Timer testiajastin = new Timer(); // käytetään kulman laskemiseen tietyn ajan välein
        testiajastin.Interval = 2.0;
        testiajastin.Timeout += delegate
        {
            Angle satkulma = RandomGen.NextAngle();
            Add(testipalikka);
            Vector hitvektori = Vector.FromLengthAndAngle(500,satkulma);
            MessageDisplay.Add("Testipalikka hit : " + satkulma);
            testipalikka.Hit(hitvektori);

        };
        Timer tarkastin = new Timer();
        tarkastin.Interval = 2.1;
        tarkastin.Timeout += delegate
        {
            if (testipalikka.Tormasi == false)
            {

            }
        };
    }
开发者ID:Ky1e,项目名称:endless-rpg,代码行数:73,代码来源:Endless.cs

示例10: heitaVeitsi

    void heitaVeitsi()
    {
        if (hVeitsiLaskuri.Value > 0)
        {
            HeittoVeitsienMaara--;
            hVeitsiLaskuri.Value--;
            PhysicsObject hVeitsi = new PhysicsObject(20, 5); //luodaan heittoveitsi
            hVeitsi.Position = pelaaja.Position; //asetetaan paikaksi pelaaja
            hVeitsi.Tag = "hVeitsi";
            hVeitsi.Image = heittov;//lisätään tekstuuri
            hVeitsi.CollisionIgnoreGroup = 2;

            Add(hVeitsi);//lisätään heittoveitsi peliin
            hVeitsi.Angle = pelaaja.Angle; //kulmaksi pelaajan kulma
            Vector suunta = (Mouse.PositionOnWorld - pelaaja.Position).Normalize() * 500; //suuntavektori
            hVeitsi.Hit(suunta);//lyödään veitsi liikkeelle

            AddCollisionHandler<PhysicsObject, Enemy>(hVeitsi, heittoveitsiOsuiEnemyyn);// voisi kai tehdä helpomminkin
            AddCollisionHandler(hVeitsi, heittoveitsiOsuiPhysicsObjectiin);// voisi kai tehdä helpomminkin
        }
    }
开发者ID:Ky1e,项目名称:endless-rpg,代码行数:21,代码来源:Endless.cs

示例11: ammuNuoli

    void ammuNuoli()
    {
        if (ase == "puhPutki")
        {
            PhysicsObject nuoli = new PhysicsObject(20, 7); //luodaan nuoli
            nuoli.Position = pelaaja.Position; //asetetaan paikaksi pelaaja
            nuoli.Image = nuolikuva;//lisätään tekstuuri
            nuoli.Tag = "nuoli";
            nuoli.CollisionIgnoreGroup = 2;//lisätään samaan CollisionIgnoreGroupiin pelaajan ja heittoveitsien kanssa.
            Add(nuoli);//lisätään heittoveitsi peliin
            nuoli.Angle = pelaaja.Angle; //kulmaksi pelaajan kulma
            Vector suunta = (Mouse.PositionOnWorld - pelaaja.Position).Normalize() * 500; //suuntavektori
            nuoli.Hit(suunta);//lyödään veitsi liikkeelle
            nuoli.MaximumLifetime = TimeSpan.FromSeconds(2.0);
            //AddCollisionHandler<PhysicsObject, Enemy>(nuoli, nuoliOsuiEnemyyn);// voisi kai tehdä helpomminkin
            // AddCollisionHandler(nuoli, nuoliOsuiPhysicsObjectiin);// voisi kai tehdä helpomminkin
        }
        else if (ase == "varsJousi")
        {
            PhysicsObject eNuoli = new PhysicsObject(20, 5);  //luodaan räjähtävä nuoli
            eNuoli.Position = pelaaja.Position;
            eNuoli.Tag = "eNuoli";
            eNuoli.Image = enuolenkuva;
            eNuoli.CollisionIgnoreGroup = 2;//lisätään samaan CollisionIgnoreGroupiin pelaajan ja heittoveitsien kanssa.
            Add(eNuoli);
            eNuoli.Angle = pelaaja.Angle;
            Vector suunta = (Mouse.PositionOnWorld - pelaaja.Position).Normalize() * 800; //suuntavektori
            eNuoli.Hit(suunta);//lyödään veitsi liikkeelle
            eNuoli.MaximumLifetime = TimeSpan.FromSeconds(2.0);
            AddCollisionHandler(eNuoli, eNuoliOsui);

        }
        else return;
    }
开发者ID:Ky1e,项目名称:endless-rpg,代码行数:34,代码来源:Endless.cs


注:本文中的PhysicsObject.Hit方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。