Changeset 954


Ignore:
Timestamp:
2010-06-17 15:56:55 (9 years ago)
Author:
vilvaini
Message:
 
Location:
2010/24/Vilvaini/Smile Jump
Files:
3 added
3 edited

Legend:

Unmodified
Added
Removed
  • 2010/24/Vilvaini/Smile Jump/Content/Content.contentproj

    r902 r954  
    6161    </Compile> 
    6262  </ItemGroup> 
     63  <ItemGroup> 
     64    <Compile Include="smile jump aloitusruutu.png"> 
     65      <Name>smile jump aloitusruutu</Name> 
     66      <Importer>TextureImporter</Importer> 
     67      <Processor>TextureProcessor</Processor> 
     68    </Compile> 
     69  </ItemGroup> 
    6370  <Import Project="$(MSBuildExtensionsPath)\Microsoft\XNA Game Studio\$(XnaFrameworkVersion)\Microsoft.Xna.GameStudio.ContentPipeline.targets" /> 
    6471  <!-- To modify your build process, add your task inside one of the targets below and uncomment it.  
  • 2010/24/Vilvaini/Smile Jump/Peli.cs

    r936 r954  
    1010    const double hyppyVoima = 4000; 
    1111    double tasokorkeus = 0; 
     12    double tramppahyppy = 0; 
    1213    double vihollistiheytys = 1; 
    1314    double tasoleveys = 150; 
    1415    double viholliskorkeus = 800; 
     16 
     17    //bool pelaajan1ase = false; 
     18    bool Kolmepelaajaa = false; 
     19    //bool pelaajan2ase = false; 
     20     
    1521    IntMeter pelaajan1pisteet; 
    1622    IntMeter pelaajan2pisteet; 
     
    1824    PlatformCharacter pelaaja1; 
    1925    PlatformCharacter pelaaja2; 
     26    PlatformCharacter pelaaja3; 
     27    PlatformCharacter pelaaja4; 
    2028    //PhysicsObject vihollinen; 
     29    PhysicsObject Alku; 
    2130    PhysicsObject taso; 
    2231 
    2332    Timer aikaLaskuri; 
    24  
    25      
     33    Timer aikaLaskuri2; 
     34 
    2635    PhysicsObject vasenReuna; 
    2736    PhysicsObject alaReuna; 
    2837    PhysicsObject oikeaReuna; 
    2938    PhysicsObject DownReuna; 
    30     int kenttaNro; // monesko kenttä on menossa 
    3139     
    3240 
     
    3745        pelaajan1pisteet = new IntMeter(0); 
    3846        pelaajan2pisteet = new IntMeter(0); 
     47 
    3948        Camera.StayInLevel = true; 
    40         seuraavaKentta(); 
     49        Alkukentta(); 
     50    } 
     51 
     52    void Alkukentta() 
     53    { 
     54        ClearAll(); 
     55        AlustaPistelaskurit(); 
     56        MessageDisplay.Add("Aloita kaksinpeli (Paina 2)"); 
     57        MessageDisplay.Add("Aloita yksinpeli (Paina 1)"); 
     58        MessageDisplay.Add("Poistu (Paina P)"); 
     59        Alkunappaimet(); 
     60        lisaaPelaajat(); 
     61        LisaaDownReuna(); 
     62        alaReuna = Level.CreateBottomBorder(); 
     63        Level.Background.CreateGradient(Color.Beige, Color.Wheat); 
     64        LisaaAloitusruutu(); 
     65    } 
     66 
     67    private void AlustaPistelaskurit() 
     68    { 
     69        pelaajan1pisteet.Reset(); 
     70        pelaajan2pisteet.Reset(); 
     71    } 
     72 
     73    private void Alkunappaimet() 
     74    { 
     75        Keyboard.Listen(Key.D2, ButtonState.Pressed, seuraavaKentta, ""); 
     76        Keyboard.Listen(Key.D1, ButtonState.Pressed, ShowControlHelp, ""); 
     77        Keyboard.Listen(Key.Escape, ButtonState.Pressed, Exit, ""); 
    4178    } 
    4279 
     
    6097        lisaaTaso(RandomGen.NextDouble(Level.Left + 50, Level.Right - 50), Level.Bottom + 150, 150); 
    6198 
    62         vasenReuna = Level.CreateLeftBorder(); 
    63         vasenReuna.Restitution = 0.0; 
    64         vasenReuna.IsVisible = false; 
    65  
    66         alaReuna = Level.CreateBottomBorder(); 
    67         vasenReuna.Restitution = 0.0; 
    68         vasenReuna.IsVisible = false; 
    69  
    70         oikeaReuna = Level.CreateRightBorder(); 
    71         vasenReuna.Restitution = 0.0; 
    72         vasenReuna.IsVisible = false; 
    73  
    74          
    75          
     99        TeeReunat(); 
     100        TeePistenaytot(); 
     101 
     102        // Asetetaan painovoima 
     103        Gravity = new Vector(0, -600); 
     104 
     105        luoKentta(); 
     106        lisaaNappaimet(); 
     107    } 
     108 
     109    void TeePistenaytot() 
     110    { 
    76111        // luodaan pistelaskunäyttö 
    77112        ValueDisplay pisteNaytto = new ValueDisplay(); 
     
    83118        pisteNaytto.BindTo(pelaajan1pisteet); 
    84119        Add(pisteNaytto);    // lisätään peliin 
    85          
     120 
    86121 
    87122        // luodaan pistelaskunäyttö 
     
    95130        Add(pisteNaytto2);    // lisätään peliin 
    96131 
    97         kenttaNro += 1; // lisätään kenttänumeroa yhdellä 
    98         MessageDisplay.Add("Kenttä " + kenttaNro); 
    99  
    100         // Asetetaan painovoima 
    101         Gravity = new Vector(0, -600); 
    102  
    103         luoKentta(); 
    104         lisaaNappaimet(); 
    105         //LisaaDownReuna(Camera.Position.Y - 200); 
    106          
    107          
    108     } 
    109  
    110      
    111  
     132    } 
     133 
     134    void TeeReunat() 
     135    { 
     136        vasenReuna = Level.CreateLeftBorder(); 
     137        vasenReuna.Restitution = 0.0; 
     138        vasenReuna.IsVisible = false; 
     139 
     140        alaReuna = Level.CreateBottomBorder(); 
     141        vasenReuna.Restitution = 0.0; 
     142        vasenReuna.IsVisible = false; 
     143 
     144        oikeaReuna = Level.CreateRightBorder(); 
     145        vasenReuna.Restitution = 0.0; 
     146        vasenReuna.IsVisible = false; 
     147    } 
     148 
     149    void LisaaAloitusruutu() 
     150    { 
     151        Alku = PhysicsObject.CreateStaticObject(800, 400); 
     152        Alku.X = 0; 
     153        Alku.Y = Level.Bottom + 300; 
     154        Alku.Image = LoadImage("Smile Jump aloitusruutu"); 
     155        Alku.IgnoresCollisionResponse = true; 
     156        Alku.IgnoresPhysicsLogics = true; 
     157        Add(Alku); 
     158    } 
    112159 
    113160    void KasittelePallonTormays(PhysicsObject pelaaja1, PhysicsObject kohde) 
     
    132179    } 
    133180 
    134     void p1piste(PhysicsObject p1, PhysicsObject kohde) 
     181    void Pelaaja1Osui(PhysicsObject p1, PhysicsObject kohde) 
    135182    { 
    136183        if (kohde == DownReuna) 
     
    138185            pelaajan2pisteet.Value += 1; 
    139186            p1.Destroy(); 
    140             seuraavaKentta(); 
     187            if (pelaajan2pisteet >= 2) 
     188            { 
     189                MessageDisplay.TextColor = Color.White; 
     190                MessageDisplay.Add("Pelaaja 2 voitti pelin."); 
     191                Alkukentta(); 
     192            } 
     193            else 
     194            { 
     195                seuraavaKentta(); 
     196            } 
    141197        } 
    142198 
     
    146202            pelaajan2pisteet.Value += 1; 
    147203            p1.Destroy(); 
    148             seuraavaKentta(); 
     204            if (pelaajan2pisteet < 2) 
     205            {  
     206                seuraavaKentta(); 
     207            } 
    149208        } 
    150209          
    151210    } 
    152211 
    153     void VihollisKaantyVR(PhysicsObject vihulainen, PhysicsObject kohde) 
    154     { 
    155         if (kohde == vasenReuna) 
    156         { 
    157             vihulainen.Velocity = new Vector(220.0, 0.0); 
    158         } 
    159  
    160     } 
    161  
    162     void VihollisKaantyOR(PhysicsObject vihulainen, PhysicsObject kohde) 
    163     { 
    164         if (kohde == oikeaReuna) 
    165         { 
    166             vihulainen.Velocity = new Vector(-220.0, 0.0); 
    167         } 
    168  
    169     } 
    170  
    171     void p2piste(PhysicsObject p2, PhysicsObject kohde) 
     212    void Pelaaja2Osui(PhysicsObject p2, PhysicsObject kohde) 
    172213    { 
    173214        if (kohde == DownReuna) 
     
    175216            pelaajan1pisteet.Value++; 
    176217            p2.Destroy(); 
    177             seuraavaKentta(); 
     218            if (pelaajan1pisteet >= 2) 
     219            { 
     220                MessageDisplay.TextColor = Color.White; 
     221                MessageDisplay.Add("Pelaaja 1 voitti pelin."); 
     222                Alkukentta(); 
     223            } 
     224            else 
     225            { 
     226                seuraavaKentta(); 
     227            } 
    178228        } 
    179229 
     
    183233            kohde.Destroy(); 
    184234            p2.Destroy(); 
    185             seuraavaKentta(); 
    186         } 
    187           
    188     } 
     235            if (pelaajan1pisteet < 2) 
     236            { 
     237                seuraavaKentta(); 
     238            } 
     239        } 
     240 
     241    } 
     242 
     243    void VihollisKaantyVR(PhysicsObject vihulainen, PhysicsObject kohde) 
     244    { 
     245        if (kohde == vasenReuna) 
     246        { 
     247            vihulainen.Velocity = new Vector(220.0, 0.0); 
     248        } 
     249 
     250    } 
     251 
     252    void VihollisKaantyOR(PhysicsObject vihulainen, PhysicsObject kohde) 
     253    { 
     254        if (kohde == oikeaReuna) 
     255        { 
     256            vihulainen.Velocity = new Vector(-220.0, 0.0); 
     257        } 
     258 
     259    } 
     260 
    189261    void luoKentta() 
    190262    { 
     
    201273        vihollistiheytys = 0; 
    202274        viholliskorkeus = 0; 
    203         for (int v = 0; v < 115; v++) 
     275        for (int v = 0; v < 55; v++) 
    204276        { 
    205277            viholliskorkeus = viholliskorkeus + 600 - vihollistiheytys; 
    206278            LisaaVihollinen(RandomGen.NextDouble(Level.Left , Level.Right), Level.Bottom + viholliskorkeus + RandomGen.NextDouble(0.0, 40.0)); 
    207             vihollistiheytys = vihollistiheytys + 5; 
     279            vihollistiheytys = vihollistiheytys + 10; 
    208280        } 
    209281 
     
    217289        } 
    218290 
    219         LisaaDownReuna(Camera.Position.Y - 200); 
    220  
    221          
    222         Level.Background.CreateGradient(Color.Beige, Color.Wheat); 
    223  
    224         
     291        //LisaaDownReuna(Camera.Position.Y - 200); 
     292        LisaaDownReuna(); 
     293         
     294        Level.Background.CreateGradient(Color.SkyBlue, Color.DarkBlue); 
    225295        lisaaPelaajat(); 
    226296 
    227         aikaLaskuri = new Timer();                     // luodaan uusi ajastin, nimeltä aikaLaskuri 
    228         aikaLaskuri.Interval = 1;                      // ajastukseksi 5 sekuntia 
    229         aikaLaskuri.Trigger += new Timer.TriggerHandler(aikaLoppui);  //   // asetetaan tapahtuma, kun aikaLaskuri kun 5 sekuntia on kulunut. 
    230         Add(aikaLaskuri);                       // lisätään aikaLaskuri peliin 
     297        aikaLaskuri = new Timer(); 
     298        aikaLaskuri.Interval = 1;  
     299        aikaLaskuri.Trigger += aikaLoppui; 
     300        Add(aikaLaskuri);  
    231301        aikaLaskuri.Start(1); 
    232302 
    233         kenttaNro = 0; 
    234303        Level.Width = 1024; 
    235304        Level.Height = 15000; 
     
    237306        LisaaVihollinen(0.0, Level.Bottom + 500); 
    238307        Camera.StayInLevel = true; 
    239  
    240308         
    241309        pelaajan1pisteet.MaxValue = 2; 
    242         pelaajan1pisteet.UpperLimit += laskuriYlarajassa; 
    243  
    244      
    245     } 
    246  
    247     void laskuriYlarajassa(int arvo) 
    248     { 
    249         MessageDisplay.TextColor = Color.White; 
    250         MessageDisplay.Add("Pelaaja 1 voitti pelin."); 
    251310    } 
    252311 
     
    289348    } 
    290349 
     350    void lisaaPelaaja3() 
     351    { 
     352        pelaaja3 = new PlatformCharacter(40, 40); 
     353        pelaaja3.Mass = 4.0; 
     354        pelaaja3.Shape = Shapes.Circle; 
     355        pelaaja3.Image = LoadImage("smile jump(keltainen pelaaja) (2)"); 
     356        pelaaja3.X = -50; 
     357        pelaaja3.Y = Level.Bottom + 50; 
     358 
     359        AddCollisionHandler(pelaaja3, KasittelePallonTormays); 
     360 
     361        Add(pelaaja3); 
     362    } 
     363 
     364    void lisaaPelaaja4() 
     365    { 
     366        pelaaja4 = new PlatformCharacter(40, 40); 
     367        pelaaja4.Mass = 4.0; 
     368        pelaaja4.Shape = Shapes.Circle; 
     369        pelaaja4.Image = LoadImage("smile jump (vihreä pelaaja) (2)"); 
     370        pelaaja4.X = 100; 
     371        pelaaja4.Y = Level.Bottom + 50; 
     372 
     373        AddCollisionHandler(pelaaja4, KasittelePallonTormays); 
     374 
     375        Add(pelaaja4); 
     376    } 
     377 
    291378    void LisaaVihollinen(double x, double y) 
    292379    { 
     
    294381        vihollinen.Image = LoadImage("smile jump(vihollinen) (2)"); 
    295382        vihollinen.Tag = "vihollinen"; 
     383        vihollinen.Shape = Shapes.Circle; 
    296384        vihollinen.X = x; 
    297385        vihollinen.Y = y; 
     
    305393    } 
    306394 
     395    void LisaaTramppaika(double tr) 
     396    { 
     397        tramppahyppy = tr; 
     398        aikaLaskuri2 = new Timer();                     // luodaan uusi ajastin, nimeltä aikaLaskuri 
     399        aikaLaskuri2.Interval = 1;                      // ajastukseksi 5 sekuntia 
     400        aikaLaskuri2.Trigger += new Timer.TriggerHandler(aikaLoppui2);  //   // asetetaan tapahtuma, kun aikaLaskuri kun 5 sekuntia on kulunut. 
     401        Add(aikaLaskuri2);                       // lisätään aikaLaskuri peliin 
     402        aikaLaskuri2.Start(1); 
     403    } 
     404 
     405 
     406 
    307407    private void aikaLoppui(Timer sender) 
    308408    { 
    309         AddCollisionHandler(pelaaja1, p1piste); 
    310         AddCollisionHandler(pelaaja2, p2piste); 
    311  
    312     } 
    313  
    314  
     409        AddCollisionHandler(pelaaja1, Pelaaja1Osui); 
     410        AddCollisionHandler(pelaaja2, Pelaaja2Osui); 
     411    } 
     412 
     413    // TODO: kesken 
     414    private void aikaLoppui2(Timer sender) 
     415    { 
     416        if (tramppahyppy == 2) 
     417        { 
     418            pelaaja2.IgnoresCollisionResponse = false; 
     419            pelaaja2.IgnoresPhysicsLogics = false; 
     420        } 
     421        else 
     422        { 
     423            pelaaja1.IgnoresCollisionResponse = false; 
     424            pelaaja1.IgnoresPhysicsLogics = false; 
     425        } 
     426 
     427    } 
    315428 
    316429    void lisaaNappaimet() 
     
    330443    } 
    331444 
     445    // TODO: kesken 
     446    //void KasitteleAse(PhysicsObject Ase, PhysicsObject pelaaja) 
     447    //{ 
     448    //    if (pelaaja == pelaaja1) 
     449    //    { 
     450    //        pelaajan1ase = true; 
     451    //    } 
     452    //    else if (pelaaja == pelaaja2) 
     453    //    { 
     454    //        pelaajan2ase = true; 
     455     //   } 
     456   // }     
     457     
    332458    void lisaaGamePadNappaimet(GamePad controller) 
    333459    { 
    334460        controller.Listen(Button.Back, ButtonState.Pressed, Exit, "Poistu pelistä"); 
    335461 
    336         controller.Listen(Button.DPadLeft, ButtonState.Down, liikuta, "Pelaaja liikkuu vasemmalle", pelaaja1, -nopeus); 
    337         controller.Listen(Button.DPadRight, ButtonState.Down, liikuta, "Pelaaja liikkuu oikealle", pelaaja1, nopeus); 
    338         controller.Listen(Button.A, ButtonState.Pressed, hyppaa, "Pelaaja hyppää", pelaaja1, hyppyVoima); 
     462        controller.Listen(Button.DPadLeft, ButtonState.Down, liikuta, "Pelaaja liikkuu vasemmalle", pelaaja3, -nopeus); 
     463        controller.Listen(Button.DPadRight, ButtonState.Down, liikuta, "Pelaaja liikkuu oikealle", pelaaja3, nopeus); 
     464        controller.Listen(Button.A, ButtonState.Pressed, hyppaa, "Pelaaja hyppää", pelaaja3, hyppyVoima); 
    339465    } 
    340466 
     
    349475    } 
    350476 
    351     void LisaaDownReuna(double y) 
     477    /// <summary> 
     478    /// DownReuna tuhoaa pelaajat ja tasot, jotka ovat 
     479    /// ruudun alapuolella. 
     480    /// </summary> 
     481    void LisaaDownReuna() 
    352482    { 
    353483        DownReuna = new PhysicsObject(2000, 100); 
     
    356486        DownReuna.IgnoresCollisionResponse = true; 
    357487        DownReuna.IgnoresGravity = true; 
    358  
    359488        Add(DownReuna); 
    360  
    361  
    362     } 
    363     
    364      
    365      
    366      
    367      
     489    } 
    368490     
    369491    protected override void Update(Time time) 
    370492    { 
    371         if (pelaaja1.Y > pelaaja2.Y) 
    372         { 
    373             Camera.Follow(pelaaja1); 
    374              
    375         } 
    376         else 
    377         { 
    378             Camera.Follow(pelaaja2); 
    379             
    380         } 
    381  
     493        if (Kolmepelaajaa == true) 
     494            { 
     495                if (pelaaja1.Y > pelaaja2.Y) 
     496                { 
     497                    if (pelaaja1.Y > pelaaja3.Y) 
     498                    { 
     499                        Camera.Follow(pelaaja1); 
     500                    } 
     501                } 
     502                if (pelaaja2.Y > pelaaja3.Y) 
     503                { 
     504                    if (pelaaja2.Y > pelaaja1.Y) 
     505                    { 
     506                        Camera.Follow(pelaaja2); 
     507                    } 
     508                     
     509                } 
     510                if (pelaaja3.Y > pelaaja2.Y) 
     511                { 
     512                    if (pelaaja3.Y > pelaaja1.Y) 
     513                    { 
     514                        Camera.Follow(pelaaja3); 
     515                    } 
     516                     
     517                } 
     518                
     519            } 
     520 
     521        // Tämä pitää huolen siitä, että kun kamera menee ylöspäin, niin kameran 
     522        // alapuolella olevat asiat tuhoutuvat. 
    382523        DownReuna.Y = Camera.Position.Y - 400; 
    383         
    384524 
    385525        base.Update(time); 
  • 2010/24/Vilvaini/Smile Jump/Smile Jump.csproj

    r867 r954  
    5757  </PropertyGroup> 
    5858  <ItemGroup> 
    59     <Reference Include="Jypeli2, Version=1.0.0.0, Culture=neutral, processorArchitecture=x86"> 
     59    <Reference Include="Jypeli2, Version=2.1.9.0, Culture=neutral, processorArchitecture=x86"> 
    6060      <SpecificVersion>False</SpecificVersion> 
    6161      <HintPath>..\..\lib\Jypeli2.dll</HintPath> 
Note: See TracChangeset for help on using the changeset viewer.