예제 #1
0
    public void LuoNaytot(PhysicsGame peli)
    {
        Vector p1 = this.Naytot; //voi yksinkertaistaa

        this.elamaNaytto     = new Label();
        elamaNaytto.Font     = Font.DefaultSmallBold;
        elamaNaytto.Position = p1;
        elamaNaytto.BindTo(this.alus.ElamaLaskuri);
        elamaNaytto.TextColor = Color.White;
        elamaNaytto.Title     = "Aluksen kunto";
        peli.Add(elamaNaytto);


        this.alusNaytto = new Label();
        alusNaytto.Font = Font.DefaultSmallBold;

        alusNaytto.Position = new Vector(p1.X, p1.Y - 25);
        alusNaytto.BindTo(this.AlusLaskuri);
        alusNaytto.TextColor = Color.White;
        alusNaytto.Title     = "Aluksia jäljellä";
        peli.Add(alusNaytto);

        this.ammusNaytto = new Label();
        ammusNaytto.Font = Font.DefaultSmallBold;

        ammusNaytto.Position = new Vector(p1.X, p1.Y - 50);
        ammusNaytto.BindTo(this.Alus.AmmusLaskuri);
        ammusNaytto.TextColor = Color.White;
        ammusNaytto.Title     = "Ase1 ammuksia jäljellä";
        peli.Add(ammusNaytto);
    }
예제 #2
0
    public Alus(PhysicsGame peli, Vector p, double r, Color vari, string tunniste, string pelaaja, int tarkistin) : base(r, r)
    {
        this.koko        = r;
        this.Shape       = Shape.Circle;
        this.Position    = p;
        this.Color       = vari;
        this.Mass        = 5;
        this.Restitution = 0.1;
        this.CanRotate   = false;
        this.Tag         = tunniste;
        this.pelaaja     = pelaaja;
        this.tarkistin   = tarkistin;

        this.ase1.Power.Value        = 100000;
        this.ase1.Power.DefaultValue = 100000;
        this.ase1.FireRate           = 1;
        this.ase1.CanHitOwner        = false;
        this.ase1.IsVisible          = false;
        this.Add(ase1);


        this.ase2.Power.Value        = 500;
        this.ase2.Power.DefaultValue = 500;
        this.ase2.FireRate           = 10;
        this.ase2.CanHitOwner        = false;
        this.ase2.IsVisible          = false;
        this.ase2.Ammo.Value         = 20;
        this.Add(ase2);

        peli.Add(this);
    }
예제 #3
0
    public static void Piirrapallo(PhysicsGame peli, double x, double y, double r) //Aliohjelma pallojen piirtämiseen.
    {
        PhysicsObject p = new PhysicsObject(2 * r, 2 * r, Shape.Circle);           //PhysicsObject ottaa mitat ja muodon, r = säde joten 2*r on halkaisija

        p.Y = y;
        p.X = x;
        peli.Add(p);
    }
예제 #4
0
    public static PhysicsObject PiirraNelio(PhysicsGame peli, double x, double y)
    {
        PhysicsObject PiirraNelio = new PhysicsObject(80, 80, Shape.Rectangle);

        PiirraNelio.X = x;
        PiirraNelio.Y = y;
        peli.Add(PiirraNelio);
        return(PiirraNelio);
    }
예제 #5
0
        /// <summary>
        /// Lisätään peliin pallo
        /// </summary>
        /// <param name="game">peli johon pallo lisätään</param>
        /// <param name="p">pallon keskipiste</param>
        /// <param name="r">pallon säde</param>
        /// <param name="color">pallon väri</param>
        /// <returns>lisätyn pallon viite</returns>
        public static PhysicsObject LuoPallo(PhysicsGame game, Vector p, double r, Color color)
        {
            PhysicsObject pallo = new PhysicsObject(r * 2, r * 2, Shape.Circle);

            pallo.Position = p;
            pallo.Color    = color;
            game.Add(pallo);
            return(pallo);
        }
예제 #6
0
 public static void PiirraNelio(PhysicsGame peli,
                                double x, double y)
 {
     PhysicsObject p = new PhysicsObject(80, 80, Shape.Rectangle, 80);
     {
         p.X = x + 40;
         p.Y = y + 40;
         peli.Add(p);
     }
 }
예제 #7
0
    /// <summary>
    /// Luo peliin juoman satunnaiseen sijaintiin maaratylla spawnAlueelle.
    /// </summary>
    /// <returns>juoma.</returns>
    /// <param name="peli">Peli johon juoma luodaan.</param>
    /// <param name="rect">Maaratty alue, johon juoma luodaan.</param>
    public void LuoJuoma(PhysicsGame peli, BoundingRectangle rect)
    {
        PhysicsObject juoma = PhysicsObject.CreateStaticObject(15.0, 30.0);

        juoma.Shape    = Shape.Rectangle;
        juoma.Color    = Color.Red;
        juoma.Position = RandomGen.NextVector(rect);
        juoma.Tag      = "juoma";
        juoma.Image    = koff;
        peli.Add(juoma);
    }
예제 #8
0
    /// <summary>
    /// Aliohjelma luo peliin tippuvan alasimen
    /// </summary>
    /// <param name="peli"></param>
    /// <param name="x">Alasimen sijainti x-akselilla.</param>
    /// <param name="y">Alasimen sijainti y-akselilla.</param>
    private void Alasimet(PhysicsGame peli, double x, double y)
    {
        PhysicsObject alasin = new PhysicsObject(100, 100, Shape.Rectangle);

        alasin.Position = new Vector(x, y);
        alasin.IgnoresCollisionResponse = true;
        peli.Add(alasin);

        alasin.LinearDamping = 1.0;
        alasin.Image         = alasinKuva;
        alasin.Tag           = "alasin";
    }
예제 #9
0
 public Asteroidi(PhysicsGame peli, Vector p, double r, Color vari, String tunniste) : base(r, r)
 {
     this.Shape       = Shape.Circle;
     this.Position    = p;
     this.Color       = vari;
     this.Mass        = 10 * r;
     this.Angle       = Angle.FromDegrees(RandomGen.NextDouble(0, 360));
     this.Tag         = tunniste;
     this.Restitution = 0.1;
     this.CanRotate   = false;
     peli.Add(this);
 }
예제 #10
0
    /// <summary>
    /// Aliohjelma piirtää lumiukon
    /// annettuun paikkaan.
    /// </summary>
    /// <param name="peli">Peli, johon lumiukko tehdään.</param>
    /// <param name="x">Lumiukon alimman pallon x-koordinaatti.</param>
    /// <param name="y">Lumiukon alimman pallon y-koordinaatti.</param>
    public static void PiirraLumiukko(PhysicsGame peli, double x, double y)
    {
        PhysicsObject p1, p2, p3;
        double        r1 = 100;
        double        r2 = 50;
        double        r3 = 30;

        p1   = new PhysicsObject(2 * r1, 2 * r1, Shape.Circle);
        p1.X = x;
        p1.Y = y;
        peli.Add(p1);

        p2   = new PhysicsObject(2 * r2, 2 * r2, Shape.Circle);
        p2.X = x;
        p2.Y = p1.Y + r1 + r2;
        peli.Add(p2);

        p3   = new PhysicsObject(2 * r3, 2 * r3, Shape.Circle);
        p3.X = x;
        p3.Y = p2.Y + r2 + r3;
        peli.Add(p3);
    }
예제 #11
0
    /// <summary>
    /// Aliohjelma palauttaa pelimerkin taulukosta.
    /// </summary>
    /// <param name="peli"></param>
    /// <param name="x">Pelimerkin sijainti x-akselilla.</param>
    /// <param name="y">Pelimerkin sijainti y-akselilla.</param>
    private void Pelimerkit(PhysicsGame peli, double x, double y)
    {
        PhysicsObject pelimerkki = new PhysicsObject(35, 25, Shape.Rectangle);

        pelimerkki.Position = new Vector(x, y);
        pelimerkki.IgnoresCollisionResponse = true;
        peli.Add(pelimerkki);

        pelimerkki.LinearDamping = 0.9;
        pelimerkki.Tag           = "pelimerkki";
        int kuva = RandomGen.NextInt(pelimerkit.Length);

        pelimerkki.Image = pelimerkit[kuva];
    }
예제 #12
0
    /// <summary>
    /// Aliohjelma lisää peliin putoavan laatan.
    /// </summary>
    /// <param name="peli"></param>
    /// <param name="x">Laatan sijainti x-akselilla.</param>
    /// <param name="y">Laatan sijainti y-akselilla.</param>
    /// <param name="z">Laatan leveys.</param>
    private void PiirraSuorakulmio(PhysicsGame peli, double x, double y, double z)
    {
        suorakulmio          = new PhysicsObject(z, 15, Shape.Rectangle);
        suorakulmio.Position = new Vector(x, y);
        int kuva = RandomGen.NextInt(laatat.Length);

        suorakulmio.Image         = laatat[kuva];
        suorakulmio.LinearDamping = 0.75;
        suorakulmio.Mass          = 100000;
        peli.Add(suorakulmio);

        suorakulmio.Tag       = "laatta";
        suorakulmio.CanRotate = false;
    }
예제 #13
0
    public static PhysicsObject Karkit(PhysicsGame peli)
    {
        PhysicsObject karkki = new PhysicsObject(35, 35);

        karkki.Color = Color.Blue;
        peli.Add(karkki);
        karkki.Y = 10;
        karkki.X = 10;
        Vector suunta = RandomGen.NextVector(400, 500);

        karkki.Hit(suunta);
        karkki.Image = LoadImage("karkkiHR");

        return(karkki);
    }
예제 #14
0
파일: HT.cs 프로젝트: zianti/HT
    public static PhysicsObject Kynat(PhysicsGame peli)
    {
        PhysicsObject kyna = new PhysicsObject(20, 40);

        kyna.Color = Color.Red;
        peli.Add(kyna);
        kyna.Y = 100;
        kyna.X = 100;
        Vector suunta = RandomGen.NextVector(100, 200);

        kyna.Hit(suunta);



        return(kyna);
    }
예제 #15
0
    public static PhysicsObject LuoNelikulmio(PhysicsGame peli, string tunniste, double x, double y)
    {
        PhysicsObject ukko = new PhysicsObject(70, 100, Shape.Rectangle);

        ukko.Color = Color.Black;

        ukko.Tag = tunniste;
        // ukko.Mass = 1.0;
        peli.Add(ukko);
        ukko.LinearDamping  = 0.93;
        ukko.Restitution    = 0;
        ukko.AngularDamping = 0.9;
        ukko.MaxVelocity    = 40000;
        ukko.X = x;
        ukko.Y = y;

        return(ukko);
    }
예제 #16
0
파일: HT.cs 프로젝트: zianti/HT
    public static PhysicsObject LuoNelikulmio(PhysicsGame peli, string tunniste)
    {
        PhysicsObject ukko = new PhysicsObject(70, 100, Shape.Rectangle);

        ukko.Color = Color.Black;

        // Vector suunta = new Vector(vauhti, vauhti);
        // ukko.Hit(suunta);
        ukko.Tag = tunniste;
        // ukko.Mass = 1.0;
        peli.Add(ukko);
        ukko.LinearDamping  = 0.93;
        ukko.Restitution    = 0;
        ukko.AngularDamping = 0.9;
        ukko.MaxVelocity    = 40000;

        return(ukko);
    }
예제 #17
0
        /// <summary>
        /// Lisätään peliin ruudukollinen suorakaiteita.
        /// </summary>
        /// <param name="game">peli johon lisätään</param>
        /// <param name="oliot">taulukko johon oliviitteet laitetaan</param>
        private static void LuoOliot(PhysicsGame game, GameObject[,] oliot)
        {
            int ny = oliot.GetLength(0);
            int nx = oliot.GetLength(1);

            for (int iy = 0; iy < ny; iy++)    // luodaan ruutuoliot
            {
                for (int ix = 0; ix < nx; ix++)
                {
                    GameObject obj = new GameObject(1, 1, Shape.Rectangle);
                    oliot[iy, ix] = obj; // jemmataan taulukkoon
                    obj.X         = ix;
                    obj.Y         = iy;
                    obj.Color     = Color.Black;
                    game.Add(obj);
                    // Mouse.ListenOn(obj, MouseButton.Left, ButtonState.Pressed, VaihdaVari, null, iy,ix);
                }
            }
        }
예제 #18
0
파일: Fysiikkapeli.cs 프로젝트: zianti/HT2
    /// <summary>
    /// Luo pelaajan hahmon
    /// </summary>
    /// <param name="peli">pelikenttä</param>
    /// <param name="tunniste">sana, jolla tietää mistä fysiikkaoliosta kyse</param>
    /// <param name="x">fysiikkaolion x-koordinaatti</param>
    /// <param name="y">fysiikkaolion y-koordinaatti</param>
    /// <returns></returns>
    private static PhysicsObject LuoNelikulmio(PhysicsGame peli, string tunniste, double x, double y)
    {
        PhysicsObject ukko = new PhysicsObject(100, 100, Shape.Rectangle);

        ukko.Color = Color.Black;

        // ukko.Hit(suunta);
        ukko.Tag = tunniste;
        // ukko.Mass = 1.0;
        peli.Add(ukko);
        ukko.LinearDamping  = 0.93;
        ukko.Restitution    = 0;
        ukko.AngularDamping = 0.1;
        ukko.MaxVelocity    = 40000;
        ukko.X = x;
        ukko.Y = y;
        ukko.CollisionIgnoreGroup = 1;
        return(ukko);
    }
예제 #19
0
    /// <summary>
    /// Aliohjelma luo ja palauttaa Matin sille aliohjelmakutsulla
    /// parametreina syötetyn sijaintitiedon perusteella.
    /// </summary>
    /// <param name="peli">Tämä peli</param>
    /// <param name="x">Matin sijainti x</param>
    /// <param name="y">Matin sijainti y</param>
    /// <returns></returns>
    private PhysicsObject Pelaaja(PhysicsGame peli, double x, double y)
    {
        PhysicsObject pelaaja = new PhysicsObject(60, 120)
        {
            X                    = x,
            Y                    = y,
            Color                = Color.Brown,
            CanRotate            = false,
            IgnoresPhysicsLogics = true,
            IgnoresGravity       = painovoima,
            Restitution          = pelinAsetuksia[3],
            Tag                  = "valelumikko",
            CollisionIgnoreGroup = pelinAsetuksiaInt[2],
            Mass                 = 15000,
        };

        MatinAnimaatio(pelaaja);
        peli.Add(pelaaja, 1);
        return(pelaaja);
    }
예제 #20
0
파일: Fysiikkapeli.cs 프로젝트: zianti/HT2
    /// <summary>
    /// Luo vihollishahmon
    /// </summary>
    /// <param name="peli">pelikenttä</param>
    /// <param name="tunniste">sana, jolla tietää mistä fysiikkaoliosta kyse</param>
    /// <param name="x">fysiikkaolion x-koordinaatti</param>
    /// <param name="y">fysiikkaolion y-koordinaatti</param>
    /// <returns></returns>
    private static PhysicsObject LuoVihollinen(PhysicsGame peli, string tunniste, double x, double y)
    {
        PhysicsObject ukko = new PhysicsObject(200, 200, Shape.Rectangle);

        ukko.Color = Color.Black;

        // ukko.Hit(suunta);
        ukko.Tag = tunniste;
        // ukko.Mass = 1.0;
        peli.Add(ukko, -1);
        ukko.LinearDamping  = 0.93;
        ukko.Restitution    = 0;
        ukko.AngularDamping = 0.9;
        ukko.MaxVelocity    = 40000;
        ukko.X = x;
        ukko.Y = y;
        ukko.IgnoresCollisionResponse = true;

        return(ukko);
    }