コード例 #1
0
        public void Palleroi(Morte peli)
        {
            for (int i = 0; i < Palloja; i++)
            {
                double scale    = RandomGen.NextDouble(0.5, 1.5);
                double dir      = RandomGen.NextDouble(-10, 10);
                double velocity = VOIMA;
                double hue      = (dir + 10) / 20 * 240;

                var p = new FysiikkaObjekti(Koko * scale, Koko * scale);
                p.Color        = ColorUtils.HsvToRgb(hue, 1, 0.9);
                p.Shape        = Shape.Circle;
                p.LifetimeLeft = TimeSpan.FromSeconds(2);

                p.Position = peli.Pelaaja.AbsolutePosition + peli.Pelaaja.Sijainti_Suu;

                var mouse = peli.Mouse.PositionOnWorld;
                var rad   = Math.Atan2(mouse.Y - p.Position.Y, mouse.X - p.Position.X);

                p.Hit(Vector.FromLengthAndAngle(velocity, Angle.FromRadians(rad) + Angle.FromDegrees(dir)));

                p.AddCollisionIgnoreGroup(Sankari.IGNORE_ID);
                peli.AddCollisionHandlerByTag <FysiikkaObjekti, Vihulainen>(p, "vihu", OsuVihuun);

                peli.Add(p, Morte.TASO_OLETUS);
            }
            Toistin.Interval += 0.002;

            peli.Pelaaja.Vahingoita(2);
        }
コード例 #2
0
ファイル: Saha.cs プロジェクト: isoteemu/morte-mysteria
        public void OsuVihuun(FysiikkaObjekti saha, Vihulainen vihu)
        {
            if (Käynnissä)
            {
                // Yritä paikantaa sopiva veriroiskeen paikka.
                var a = Angle.FromRadians(Math.Atan2(AbsolutePosition.Y - vihu.AbsolutePosition.Y, AbsolutePosition.X - vihu.AbsolutePosition.X));

                // HACK Purkkaviritys.
                var m = (double)(vihu.Width * vihu.Height) / (Width * Height);
                var d = Vector.Distance(AbsolutePosition, vihu.AbsolutePosition) / m;

                var roiske = AbsolutePosition - new Vector(d * a.Cos, d * a.Sin);

                Morte.Instance.Veriroiske.AddEffect(roiske, VAHINKO);

                vihu.Vahingoita(VAHINKO);
            }
        }
コード例 #3
0
 public void OsuVihuun(FysiikkaObjekti pallura, Vihulainen vihu)
 {
     vihu.Vahingoita(1);
     pallura.Destroy();
 }