Ejemplo n.º 1
0
        protected float Angle(Vec v, Vec target)
        {
            float a = v.Angle(target);

            if (target.X > v.X)
            {
                a = -a;
            }
            if (target.Y < v.Y)
            {
                a = (float)Math.PI - a;
            }
            return(a);
        }
Ejemplo n.º 2
0
        protected override void Controls()
        {
            if (cdat.keys[0])
            {
                vel.Y    -= Movespeed * 0.1f;
                InvisTime = Invis;
            }
            if (cdat.keys[3])
            {
                vel.Y    += Movespeed * 0.1f;
                InvisTime = Invis;
            }
            if (cdat.keys[1])
            {
                vel.X    -= Movespeed * 0.1f;
                InvisTime = Invis;
            }
            if (cdat.keys[2])
            {
                vel.X    += Movespeed * 0.1f;
                InvisTime = Invis;
            }
            if (cdat.keys[4] && !EPress)
            {
                AutoFire = !AutoFire;
                EPress   = true;
            }
            if (EPress && !cdat.keys[4])
            {
                EPress = false;
            }
            if (cdat.keys[5] && !CPress)
            {
                AutoSpin = !AutoSpin;
                CPress   = true;
            }
            if (CPress && !cdat.keys[5])
            {
                CPress = false;
            }
            Vec scrolledpos = new Vec(300, 300);
            Vec msp         = cdat.mousep ?? new Vec() * (size / 20f);

            if (AutoSpin)
            {
                msp = new Vec(0, 100);
                msp.RotateByZero(-rotation + Game.Dt);
                msp += scrolledpos;
            }
            rotation = scrolledpos.Angle(msp);
            if (msp.X < scrolledpos.X)
            {
                rotation = -rotation;
            }
            if (msp.Y < scrolledpos.Y)
            {
                rotation = (float)Math.PI - rotation;
            }
            if (cdat.mouseb[0] || AutoFire)
            {
                if (!LastShoot)
                {
                    foreach (Cannon c in cannons)
                    {
                        c.AddReload();
                    }
                }
                LastShoot = true;
                foreach (Cannon c in cannons)
                {
                    c.TryShoot();
                }
            }
            else
            {
                LastShoot = false;
            }
        }
Ejemplo n.º 3
0
        protected override void Controls()
        {
            if (Form1.press.Contains(Keys.W))
            {
                vel.Y    -= Movespeed * 0.1f;
                InvisTime = Invis;
            }
            if (Form1.press.Contains(Keys.S))
            {
                vel.Y    += Movespeed * 0.1f;
                InvisTime = Invis;
            }
            if (Form1.press.Contains(Keys.A))
            {
                vel.X    -= Movespeed * 0.1f;
                InvisTime = Invis;
            }
            if (Form1.press.Contains(Keys.D))
            {
                vel.X    += Movespeed * 0.1f;
                InvisTime = Invis;
            }
            if (Form1.press.Contains(Keys.E) && !EPress)
            {
                AutoFire = !AutoFire;
                EPress   = true;
            }
            if (EPress && !Form1.press.Contains(Keys.E))
            {
                EPress = false;
            }
            if (Form1.press.Contains(Keys.C) && !CPress)
            {
                AutoSpin = !AutoSpin;
                CPress   = true;
            }
            if (CPress && !Form1.press.Contains(Keys.C))
            {
                CPress = false;
            }
            Vec scrolledpos = new Vec(300, 300) * zoom;
            Vec msp         = Game.mousepos * (size / 20f);

            if (AutoSpin)
            {
                msp = new Vec(0, 100);
                msp.RotateByZero(-rotation + Game.Dt);
                msp += scrolledpos;
            }
            rotation = scrolledpos.Angle(msp);
            if (msp.X < scrolledpos.X)
            {
                rotation = -rotation;
            }
            if (msp.Y < scrolledpos.Y)
            {
                rotation = (float)Math.PI - rotation;
            }
            if (Game.mousedown || AutoFire)
            {
                if (!LastShoot)
                {
                    foreach (Cannon c in cannons)
                    {
                        c.AddReload();
                    }
                }
                LastShoot = true;
                foreach (Cannon c in cannons)
                {
                    c.TryShoot();
                }
            }
            else
            {
                LastShoot = false;
            }
        }