Changeset 2817 for 2012/23


Ignore:
Timestamp:
2012-06-06 16:04:00 (7 years ago)
Author:
ramipasa
Message:

ASTEROIDIT!!!! (+ pythagoras kujntoon)

Location:
2012/23/RamiP/YAG2DSSBase/YAG2DSS/YAG2DSS
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • 2012/23/RamiP/YAG2DSSBase/YAG2DSS/YAG2DSS/GUI/Dialogs/ExitWindow.cs

    r2811 r2817  
    193193            bool cursorOnChoice = false; 
    194194 
    195             YAG2DSS.Instance.MessageDisplay.Clear(); 
    196             YAG2DSS.Instance.MessageDisplay.Add(Cursor.SecPosX + "; " + Cursor.SecPosY); 
    197             YAG2DSS.Instance.MessageDisplay.Add(Convert.ToString(BExit.PositionX + sizePos.X) + "; " + Convert.ToString(BExit.PositionY + sizePos.Y)); 
    198  
    199195            if (Cursor.SecPosX > sizePos.X && Cursor.SecPosY > sizePos.Y && 
    200196                Cursor.SecPosX < sizePos.X + sizePos.Width && Cursor.SecPosY < sizePos.Y + sizePos.Height) 
  • 2012/23/RamiP/YAG2DSSBase/YAG2DSS/YAG2DSS/YAG2DSS.cs

    r2811 r2817  
    1818    List<PhysicsObject> Madonreika = new List<PhysicsObject>(); 
    1919    List<PhysicsObject> Minioni = new List<PhysicsObject>(); 
    20  
    21     Timer Madonreikaajastin; 
     20    List<PhysicsObject> Asteroidi = new List<PhysicsObject>(); 
     21 
     22    Timer MadonreikaAjastin; 
    2223    Timer Minioniajastin; 
    2324    Timer Minioninliikuttaja; 
    2425    Timer Automaattiammus; 
    2526    Timer MinioninAmmus; 
    26  
    27     List<int> PelaajanKesto = new List<int>(); 
     27    Timer Asteroidiajastin; 
     28    Timer TuhoaAsteroidi; 
    2829 
    2930    public override void Begin() 
     
    4849    { 
    4950        PhysicsObject vasenReuna = Level.CreateLeftBorder(); 
     51        vasenReuna.CollisionIgnoreGroup = 3; 
    5052        vasenReuna.IsVisible = false; 
    5153        PhysicsObject oikeaReuna = Level.CreateRightBorder(); 
    5254        oikeaReuna.IsVisible = false; 
     55        oikeaReuna.CollisionIgnoreGroup = 3; 
    5356        PhysicsObject ylaReuna = Level.CreateTopBorder(); 
    5457        ylaReuna.IsVisible = false; 
     58        ylaReuna.CollisionIgnoreGroup = 3; 
    5559        PhysicsObject alaReuna = Level.CreateBottomBorder(); 
    5660        alaReuna.IsVisible = false; 
     61        alaReuna.CollisionIgnoreGroup = 3; 
    5762 
    5863        Level.BackgroundColor = Color.Black; 
     
    6166 
    6267        LuoPelaaja(300); 
     68        Pelaaja[0].Tag = 11; 
     69        Pelaaja[0].CollisionIgnoreGroup = 1; 
    6370        LuoPelaaja(-300); 
     71        Pelaaja[1].CollisionIgnoreGroup = 2; 
     72        Pelaaja[1].Tag = 12; 
    6473    } 
    6574 
     
    7281        pelaaja.Restitution = 0.5; 
    7382        pelaaja.AngularDamping = 0.1; 
    74         pelaaja.Shape = Shape.Triangle; 
    7583        pelaaja.Angle = Angle.FromDegrees(pelaaja.Angle.Degrees + 90); 
    76         pelaaja.Tag = 15; 
    7784        pelaaja.Image = Image.FromStream(File.OpenRead(ALTKConstants.TexturePath + "player.png")); 
    78         PelaajanKesto.Add(100); 
    7985        Pelaaja.Add(pelaaja); 
    8086        Add(Pelaaja[Pelaaja.Count - 1]); 
     
    8389    void LuoAjastin() 
    8490    { 
    85         Madonreikaajastin = new Timer(); 
    86         Madonreikaajastin.Interval = 3; 
    87         Madonreikaajastin.Timeout += new Action(NaytaAnimaatio); 
    88         Madonreikaajastin.Start(); 
     91        MadonreikaAjastin = new Timer(); 
     92        MadonreikaAjastin.Interval = 3; 
     93        MadonreikaAjastin.Timeout += new Action(NaytaAnimaatio); 
     94        MadonreikaAjastin.Start(); 
    8995 
    9096        Minioniajastin = new Timer(); 
     
    107113        MinioninAmmus.Timeout += new Action(MinioninAmmus_Timeout); 
    108114        MinioninAmmus.Start(); 
     115 
     116        Asteroidiajastin = new Timer(); 
     117        Asteroidiajastin.Interval = RandomGen.NextDouble (5, 12); 
     118        Asteroidiajastin.Timeout += new Action(Asteroidiajastin_Timeout); 
     119        Asteroidiajastin.Start(); 
     120 
     121        TuhoaAsteroidi = new Timer(); 
     122        TuhoaAsteroidi.Interval = 30.0; 
     123        TuhoaAsteroidi.Timeout += new Action(TuhoaAsteroidi_Timeout); 
     124        TuhoaAsteroidi.Start(); 
     125    } 
     126 
     127    void TuhoaAsteroidi_Timeout() 
     128    { 
     129        Timer.SingleShot(0.0, AsteroidinTuhoaja); 
     130    } 
     131 
     132    void Asteroidiajastin_Timeout() 
     133    { 
     134        Timer.SingleShot(0.0, LuoAsteroidi); 
    109135    } 
    110136 
     
    124150        { 
    125151            PelaajanAmmus.Tag = 1; 
     152            PelaajanAmmus.CollisionIgnoreGroup = 1; 
    126153        } 
    127154        else 
    128155        { 
    129156            PelaajanAmmus.Tag = 2; 
     157            PelaajanAmmus.CollisionIgnoreGroup = 2; 
    130158        } 
    131159        Add(PelaajanAmmus); 
     
    165193        { 
    166194            int tagi = (int)kohde.Tag; 
    167             if (tagi == 15) 
    168             { 
    169                 kohde.Destroy(); 
     195            if (tagi == 11) 
     196            { 
     197                ALTKHandler.HealthBars[0].Value = ALTKHandler.HealthBars[0].Value - 20; 
    170198                minioni.Destroy(); 
    171             } 
     199                PelaajanTuhoaja(); 
     200            } 
     201 
     202            if (tagi == 12) 
     203            { 
     204                ALTKHandler.HealthBars[1].Value = ALTKHandler.HealthBars[1].Value - 20; 
     205                minioni.Destroy(); 
     206                PelaajanTuhoaja(); 
     207            } 
     208 
    172209        } 
    173210        catch 
     
    176213    } 
    177214 
     215    void AsteroidiTormaa(PhysicsObject asteroidi, PhysicsObject kohde) 
     216    { 
     217        try 
     218        { 
     219            int tagi = (int)kohde.Tag; 
     220            if (tagi == 11) 
     221            { 
     222                ALTKHandler.HealthBars[0].Value = ALTKHandler.HealthBars[0].Value * Convert.ToInt32((asteroidi.Mass / 3600)); 
     223                PelaajanTuhoaja(); 
     224            } 
     225            else if (tagi == 12) 
     226            { 
     227                ALTKHandler.HealthBars[1].Value = ALTKHandler.HealthBars[0].Value * Convert.ToInt32((asteroidi.Mass / 3600)); 
     228                PelaajanTuhoaja(); 
     229            } 
     230        } 
     231        catch 
     232        { 
     233        } 
     234    } 
     235 
    178236    void Minioninliikuttaja_Timeout() 
    179237    { 
    180238        for (int minionID = 0; minionID < Minioni.Count; minionID++) 
    181239        { 
    182             double etäisyys1; 
    183             double etäisyys2; 
    184  
    185             double x1 = Math.Abs(Pelaaja[0].X - Minioni[minionID].X); 
    186             double y1 = Math.Abs(Pelaaja[0].Y - Minioni[minionID].Y); 
    187             etäisyys1 = Math.Sqrt(x1 + y1); 
    188  
    189             double x2 = Math.Abs(Pelaaja[1].X - Minioni[minionID].X); 
    190             double y2 = Math.Abs(Pelaaja[1].Y - Minioni[minionID].Y); 
    191             etäisyys2 = Math.Sqrt(x2 + y2); 
    192  
     240            double etäisyys1 = 100000.0; 
     241            double etäisyys2 = 100000.0; 
     242            if (!Pelaaja[0].IsDestroyed) 
     243            { 
     244                double x1 = Math.Abs(Pelaaja[0].X - Minioni[minionID].X); 
     245                double y1 = Math.Abs(Pelaaja[0].Y - Minioni[minionID].Y); 
     246                etäisyys1 = Math.Sqrt(x1 + y1); 
     247            } 
     248 
     249            if (!Pelaaja[1].IsDestroyed) 
     250            { 
     251                double x2 = Math.Abs(Pelaaja[1].X - Minioni[minionID].X); 
     252                double y2 = Math.Abs(Pelaaja[1].Y - Minioni[minionID].Y); 
     253                etäisyys2 = Math.Sqrt(x2 + y2); 
     254            } 
    193255            if (etäisyys1 > etäisyys2) 
    194256            { 
     257                MinioninLiike(Minioni[minionID], 1); 
     258            } 
     259            else 
     260            { 
    195261                MinioninLiike(Minioni[minionID], 0); 
    196             } 
    197             else 
    198             { 
    199                 MinioninLiike(Minioni[minionID], 1); 
    200262            } 
    201263        } 
     
    262324    { 
    263325        Timer.SingleShot(2, LuoMadonreika); 
     326    } 
     327 
     328    void AsteroidinTuhoaja() 
     329    { 
     330        for (int asteroidiId = 0; asteroidiId < Asteroidi.Count; asteroidiId++) 
     331        { 
     332            if (Math.Abs(Asteroidi[asteroidiId].X) > 500.0 || 
     333                Math.Abs(Asteroidi[asteroidiId].Y) > 500.0) 
     334            { 
     335                Asteroidi[asteroidiId].Destroy(); 
     336                Asteroidi.RemoveAt(asteroidiId); 
     337                asteroidiId--; 
     338                ALTKHandler.MessageDisplay.AddItem("545455453453453453454354"); 
     339            } 
     340        } 
    264341    } 
    265342 
     
    304381        madonreika.Tag = 1337; 
    305382        Madonreika.Add(madonreika); 
    306         Add(madonreika); 
     383        Add(madonreika, -3); 
     384        AddCollisionHandler(madonreika, MadonreikaTormaa); 
    307385        LuoMinioni(Madonreika.Count - 1); 
    308386        ALTKHandler.SoundPlayer.PlaySound(2); 
     387    } 
     388 
     389    void LuoAsteroidi() 
     390    { 
     391        int arvo = RandomGen.NextInt(4); 
     392 
     393        double x = 0.0; 
     394        double y = 0.0; 
     395 
     396        // yläreuna 
     397        if (arvo == 0) 
     398        { 
     399            x = RandomGen.NextDouble(Level.Left -60, Level.Right + 60); 
     400            y = Level.Top + 60; 
     401        } 
     402        // alareuna 
     403        else if (arvo == 1) 
     404        { 
     405            x = RandomGen.NextDouble(Level.Left - 60, Level.Right + 60); 
     406            y = Level.Bottom - 60; 
     407        } 
     408        // vasen reuna 
     409        else if (arvo == 2) 
     410        { 
     411            x = Level.Left - 60; 
     412            y = RandomGen.NextDouble(Level.Bottom - 60, Level.Top + 60); 
     413        } 
     414        // oikea reuna 
     415        else 
     416        { 
     417            x = Level.Right + 60; 
     418            y = RandomGen.NextDouble(Level.Bottom - 60, Level.Top + 60); 
     419        } 
     420        PhysicsObject asteroidi = new PhysicsObject (RandomGen.NextDouble (10, 60), RandomGen.NextDouble(10, 60)); 
     421        asteroidi.Shape = Shape.Circle; 
     422        asteroidi.X = x; 
     423        asteroidi.Y = y; 
     424        asteroidi.Mass = (Math.Abs((asteroidi.Left - asteroidi.Right) * (asteroidi.Top - asteroidi.Bottom))) / 20; 
     425        Vector position = -asteroidi.Position; 
     426        Vector random = Vector.FromLengthAndAngle(RandomGen.NextDouble(2000, 4000), position.Angle); 
     427        Asteroidi.Add(asteroidi); 
     428        Add(Asteroidi[Asteroidi.Count -1], 0); 
     429        asteroidi.CollisionIgnoreGroup = 3; 
     430        asteroidi.Hit(random); 
     431        asteroidi.AngularVelocity = RandomGen.NextDouble (4, -4); 
     432         
    309433    } 
    310434 
     
    329453    } 
    330454 
     455    void MadonreikaTormaa (PhysicsObject madonreika, PhysicsObject kohde) 
     456    { 
     457        try 
     458        { 
     459            int tagi = (int)kohde.Tag; 
     460            if (tagi == 11) 
     461            { 
     462                ALTKHandler.HealthBars[0].Value = ALTKHandler.HealthBars[0].Value - 30; 
     463            } 
     464            else if (tagi == 12) 
     465            { 
     466                ALTKHandler.HealthBars[1].Value = ALTKHandler.HealthBars[1].Value - 30; 
     467            } 
     468        } 
     469        catch 
     470        { 
     471        } 
     472        PelaajanTuhoaja();  
     473    } 
     474 
    331475    void LuoMinioninAmmus(int minioniID) 
    332476    { 
    333477        Projectile minioninAmmus = new Projectile(4.0, 4.0, Color.Yellow); 
    334478        minioninAmmus.Angle = Minioni[minioniID].Angle; 
     479        minioninAmmus.Shape = Shape.Rectangle; 
     480        minioninAmmus.Width = 8.0; 
     481        minioninAmmus.Height = 2.0; 
    335482        Vector a = Vector.FromLengthAndAngle(25.0, Minioni[minioniID].Angle); 
    336483        minioninAmmus.Position = Minioni[minioniID].Position + a; 
     
    343490    } 
    344491 
     492    void PelaajanTuhoaja() 
     493    { 
     494        //if (ALTKHandler.HealthBars[0].Value < 1) 
     495        //{ 
     496        //    Pelaaja[0].Destroy(); 
     497        //} 
     498 
     499        //if (ALTKHandler.HealthBars[1].Value < 1) 
     500        //{ 
     501        //    Pelaaja[1].Destroy(); 
     502        //}  
     503 
     504    } 
     505 
    345506    void MinioninAmmuksenTuhoaja(PhysicsObject minioninAmmus, PhysicsObject kohde) 
    346507    { 
     
    350511        { 
    351512            int tagi = (int)kohde.Tag; 
    352             if (tagi == 15) 
    353             { 
    354                 kohde.Destroy(); 
    355             } 
     513            if (tagi == 11) 
     514            { 
     515                ALTKHandler.HealthBars[0].Value = ALTKHandler.HealthBars[0].Value - 10 ; 
     516                PelaajanTuhoaja(); 
     517            } 
     518            else if (tagi == 12) 
     519            { 
     520                ALTKHandler.HealthBars[1].Value = ALTKHandler.HealthBars[1].Value - 10; 
     521                PelaajanTuhoaja(); 
     522            } 
     523 
    356524        } 
    357525        catch 
  • 2012/23/RamiP/YAG2DSSBase/YAG2DSS/YAG2DSS/YAG2DSS.csproj

    r2811 r2817  
    66    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> 
    77    <Platform Condition=" '$(Platform)' == '' ">x86</Platform> 
    8     <OutputType>Exe</OutputType> 
     8    <OutputType>WinExe</OutputType> 
    99    <AppDesignerFolder>Properties</AppDesignerFolder> 
    1010    <RootNamespace>YAG2DSS</RootNamespace> 
Note: See TracChangeset for help on using the changeset viewer.