Changeset 2868 for 2012/23/EetuK


Ignore:
Timestamp:
2012-06-08 10:51:55 (11 years ago)
Author:
sijoseha
Message:
 
Location:
2012/23/EetuK/Tasohyppelypeli1/Tasohyppelypeli1
Files:
6 added
5 edited

Legend:

Unmodified
Added
Removed
  • 2012/23/EetuK/Tasohyppelypeli1/Tasohyppelypeli1/Tasohyppelypeli1/Tasohyppelypeli1.cs

    r2802 r2868  
    1212    const double hyppyNopeus = 1000; 
    1313    const int RUUDUN_KOKO = 40; 
     14    ScoreList topLista = new ScoreList(10, false, 0); 
    1415 
    1516    PlatformCharacter pelaaja1; 
    1617    // PlatformCharacter vihollinen; 
    17     Image pelaajanKuva = LoadImage("tyyppi"); 
     18    Image pelaajanKuva = LoadImage("erkki"); 
    1819    Image tahtiKuva = LoadImage("tahti"); 
    1920    Image vihukuva = LoadImage("vihu"); 
     21    Image maalikuva = LoadImage("maalikuva"); 
     22    Image morkokuva = LoadImage("mörkki"); 
    2023    SoundEffect maaliAani = LoadSoundEffect("maali"); 
    2124    Image vihukuva2 = LoadImage("lentävä pahis"); 
     25    ExplosionSystem es; 
    2226    public override void Begin() 
    2327    { 
     28        es = new ExplosionSystem(LoadImage("mursu"), 1000); 
     29        Add(es); 
     30        if (DataStorage.Exists("pisteet.xml")) 
     31            topLista = DataStorage.Load<ScoreList>(topLista, "pisteet.xml"); 
     32        nautavalikko(null); 
     33 
     34 
     35 
     36    } 
     37    void nautavalikko(Window sender) 
     38    { 
     39        ClearAll(); 
    2440        MultiSelectWindow valikko = new MultiSelectWindow("Tervetuloa peliin", 
    2541            "Aloita peli", "Parhaat pisteet", "Lopeta"); 
    2642        valikko.ItemSelected += PainettiinValikonNappia; 
    2743        Add(valikko); 
    28  
    29          
    3044    } 
    3145 
     
    3650        luoKentta(); 
    3751        lisaaNappaimet(); 
     52 
    3853        Camera.Follow(pelaaja1); 
    39        // Camera.ZoomToLevel(); 
    40          Camera.StayInLevel = true; 
     54        // Camera.ZoomToLevel(); 
     55        Camera.StayInLevel = true; 
    4156    } 
    4257 
     
    4459    { 
    4560        TileMap kentta = TileMap.FromFile("kentta1.txt"); 
    46         kentta.SetTileMethod('#', lisaaTaso); 
     61        kentta.SetTileMethod('#', LisaaTaso); 
    4762        kentta.SetTileMethod('*', lisaaTahti); 
    4863        kentta.SetTileMethod('N', lisaaPelaaja); 
    4964        kentta.SetTileMethod('v', lisaavihollinen); 
    5065        kentta.SetTileMethod('l', lisaavihu2); 
     66        kentta.SetTileMethod('m', LisaaMaali); 
     67        kentta.SetTileMethod('+', LisaaTaso2); 
     68        kentta.SetTileMethod('q', Lisaamorko); 
    5169        kentta.Execute(RUUDUN_KOKO, RUUDUN_KOKO); 
    5270        Level.CreateBorders(); 
    53         Level.Background.CreateGradient(Color.White, Color.SkyBlue); 
    54     } 
    55  
    56     void lisaaTaso(Vector paikka, double leveys, double korkeus) 
     71        Level.Background.CreateGradient(Color.White, Color.Crimson); 
     72        Level.Background.CreateStars(); 
     73    } 
     74 
     75    void LisaaMaali(Vector paikka, double leveys, double korkeus) 
     76    { 
     77        PhysicsObject maali = PhysicsObject.CreateStaticObject(leveys, korkeus); 
     78        Add(maali); maali.Tag = "maali"; 
     79        maali.Position = paikka; 
     80        maali.Image = maalikuva; 
     81    } 
     82 
     83    void LisaaTaso(Vector paikka, double leveys, double korkeus) 
    5784    { 
    5885        PhysicsObject taso = PhysicsObject.CreateStaticObject(leveys, korkeus); 
    5986        taso.Position = paikka; 
    60         taso.Color = Color.Green; 
     87        taso.Color = Color.Teal; 
    6188        Add(taso); 
    6289    } 
     
    74101    void lisaaPelaaja(Vector paikka, double leveys, double korkeus) 
    75102    { 
    76          
    77  
    78  
    79103        pelaaja1 = new PlatformCharacter(leveys, korkeus); 
    80104        pelaaja1.Position = paikka; 
     
    82106        pelaaja1.Image = pelaajanKuva; 
    83107        AddCollisionHandler(pelaaja1, kasittelePelaajanTormays); 
    84         Add(pelaaja1);  
     108        Add(pelaaja1); 
    85109        pelaaja1.Weapon = new PlasmaCannon(20, 5); 
    86110        pelaaja1.Weapon.Ammo.Value = int.MaxValue; 
    87  
    88     } 
     111        AddCollisionHandler(pelaaja1, "maali", pelaajatormasimaaliin); 
     112    } 
     113 
    89114 
    90115    void lisaaNappaimet() 
    91116    { 
     117        Keyboard.Listen(Key.Space, ButtonState.Pressed, HeitaKranaatti, "heitä kranaatti"); 
    92118        Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet"); 
    93119        Keyboard.Listen(Key.Escape, ButtonState.Pressed, Exit, "Poistu pelistä"); 
     
    112138        if (ammus != null) 
    113139        { 
     140            ammus.Tag = "ammus"; 
    114141            ammus.Size *= 3; 
    115             AddCollisionHandler(ammus, AmmusTormasi); 
    116         } 
    117     } 
    118  
    119     void AmmusTormasi(PhysicsObject ammus, PhysicsObject kohde) 
    120     { 
     142            AddCollisionHandler(ammus, "vuhu", CollisionHandler.AddMeterValue(pisteLaskuri, 1)); 
     143            AddCollisionHandler(ammus, "vihu", CollisionHandler.AddMeterValue(pisteLaskuri, 1)); 
     144        } 
     145    } 
     146 
     147    //void HeitaKranaatti() 
     148    //{ 
     149    //    Grenade kranaatti = new Grenade(4.0); 
     150    //    kranaatti.X = pelaaja1.X + 10; 
     151    //    kranaatti.Y = pelaaja1.Y + 10; 
     152    //    Add(kranaatti); 
     153    //    kranaatti.ex 
     154    //    Vector heittoVoima = Vector.FromLengthAndAngle(4000, Angle.FromDegrees(45)); 
     155    //    kranaatti.Hit(heittoVoima); 
     156    //} 
     157 
     158    void HeitaKranaatti() 
     159    { 
     160        PhysicsObject naatti = new PhysicsObject(LoadImage("grenade")); 
     161        Add(naatti); 
     162        naatti.Tag = "naatti"; 
     163        naatti.Restitution = 0.6; 
     164        naatti.Position = pelaaja1.Position; 
     165        naatti.Angle = pelaaja1.Angle; 
     166        naatti.CollisionIgnoreGroup = pelaaja1.CollisionIgnoreGroup; 
     167        Vector heittoVoima = Vector.FromLengthAndAngle(4000, Angle.FromDegrees(45)); 
     168        naatti.Hit(heittoVoima); 
     169 
     170        Timer.SingleShot(2.5, delegate 
     171        { 
     172            KranaattiRajahti(naatti.X, naatti.Y, 375); naatti.Destroy(); 
     173        }); 
     174    } 
     175 
     176    void KranaattiRajahti(double x, double y, int numberOfParticles) 
     177    { 
     178        //NaattiPoks.X = x; 
     179        //NaattiPoks.Y = y; 
     180        //NaattiPoks.MinScale = 1; 
     181        //NaattiPoks.MaxScale = 10; 
     182        //NaattiPoks.AddEffect(x, y, numberOfParticles); 
     183        Explosion e = new Explosion(65); 
     184        Add(e); 
     185        e.Position = new Vector(x, y); 
     186        e.ShockwaveReachesObject += delegate(IPhysicsObject kohde, 
     187 Vector suunta) { ShockHit(kohde, suunta, e); }; 
     188    } 
     189    void ShockHit(IPhysicsObject kohde, Vector suunta, Explosion rajahdys) 
     190    { 
     191 
    121192        if (kohde.Tag.ToString() == "vihu") 
    122193        { 
    123194            kohde.Destroy(); 
     195            pisteLaskuri.Value++; 
     196            es.AddEffect(kohde.Position, 100); 
    124197        } 
    125198    } 
     
    138211    { 
    139212        if (kohde.Tag.ToString() == "tahti") 
    140         {  pisteLaskuri.Value += 1; 
     213        { 
     214            pisteLaskuri.Value += 1; 
    141215            maaliAani.Play(); 
    142             MessageDisplay.Add("Keräsit tähden!"); 
    143             kohde.Destroy(); 
    144         } 
     216            MessageDisplay.Add("SAIT PISTEEN!!!!"); 
     217            kohde.Destroy(); 
     218        } 
     219 
    145220    } 
    146221 
     
    157232        vihollinen.Mass = 40; 
    158233        vihollinen.Image = vihukuva; 
    159         AddCollisionHandler(vihollinen, pelaaja1, kasitteleVihollisenTormays); 
     234        AddCollisionHandler(vihollinen, kasitteleVihollisenTormays); 
    160235        Add(vihollinen); 
    161236    } 
     
    163238    void kasitteleVihollisenTormays(PhysicsObject hahmo, PhysicsObject kohde) 
    164239    { 
    165         pisteLaskuri.Value += 1; 
    166         maaliAani.Play(); 
    167         MessageDisplay.Add("KUOLIT!!!"); 
    168         kohde.Destroy(); 
    169     } 
     240        if (kohde == pelaaja1) 
     241        { 
     242            pisteLaskuri.Value += 1; 
     243            maaliAani.Play(); 
     244            MessageDisplay.Add("KUOLIT!!!"); 
     245            kohde.Destroy(); 
     246        } 
     247        if (kohde.Tag.ToString() == "ammus") 
     248        { 
     249            hahmo.Destroy(); 
     250            kohde.Destroy(); 
     251        } 
     252    } 
     253 
    170254    void PainettiinValikonNappia(int valinta) 
    171255    { 
     
    176260                break; 
    177261            case 1: 
     262                HighScoreWindow topIkkuna = new HighScoreWindow( 
     263                              "Parhaat pisteet", 
     264                              topLista); 
     265                topIkkuna.Closed += nautavalikko; 
     266                Add(topIkkuna); 
     267 
    178268                // ParhaatPisteet(); 
     269                //public class Peli(); 
    179270                break; 
    180271            case 2: 
     
    183274        } 
    184275    } 
    185      void lisaavihu2(Vector paikka, double leveys, double korkeus) 
     276 
     277    void lisaavihu2(Vector paikka, double leveys, double korkeus) 
    186278    { 
    187279        PhysicsObject vihu2 = new PhysicsObject(leveys, korkeus); 
     
    196288        //vihu2.Mass = 40; 
    197289        vihu2.Image = vihukuva2; 
    198         AddCollisionHandler(vihu2, pelaaja1, kasitteleVihollisenTormays); 
     290        AddCollisionHandler(vihu2, kasitteleVihollisenTormays); 
    199291        Add(vihu2); 
    200292    }IntMeter pisteLaskuri; 
    201293 
    202      void LuoLaskuri() 
    203      { 
    204          pisteLaskuri = new IntMeter(0); 
    205  
    206          Label pisteNaytto = new Label(); 
    207          pisteNaytto.X = Screen.Left + 100; 
    208          pisteNaytto.Y = Screen.Top - 100; 
    209          pisteNaytto.TextColor = Color.Red; 
    210  
    211          pisteNaytto.BindTo(pisteLaskuri); 
    212          Add(pisteNaytto); 
    213           
    214           
    215      } 
    216  
     294    void LuoLaskuri() 
     295    { 
     296        pisteLaskuri = new IntMeter(0); 
     297 
     298        Label pisteNaytto = new Label(); 
     299        pisteNaytto.X = Screen.Left + 100; 
     300        pisteNaytto.Y = Screen.Top - 100; 
     301        pisteNaytto.TextColor = Color.Red; 
     302 
     303        pisteNaytto.BindTo(pisteLaskuri); 
     304        Add(pisteNaytto); 
     305 
     306 
     307    } 
     308    void pelaajatormasimaaliin(PhysicsObject pelaaja, PhysicsObject maali) 
     309    { 
     310        HighScoreWindow topIkkuna = new HighScoreWindow( 
     311                                "Parhaat pisteet", 
     312                                "Onneksi olkoon, pääsit listalle pisteillä %p! Syötä nimesi:", 
     313                                topLista, pisteLaskuri); 
     314        topIkkuna.Closed += TallennaPisteet; 
     315        Add(topIkkuna); 
     316 
     317        MessageDisplay.Add("VOITIT!!!"); 
     318        // Timer.SingleShot(2.0, Begin); 
     319        pelaaja.Destroy(); 
     320    } 
     321 
     322    void TallennaPisteet(Window sender) 
     323    { 
     324        DataStorage.Save<ScoreList>(topLista, "pisteet.xml"); 
     325        nautavalikko(null); 
     326    } 
     327 
     328    void LisaaTaso2(Vector paikka, double leveys, double korkeus) 
     329    { 
     330        PhysicsObject taso2 = PhysicsObject.CreateStaticObject(leveys, korkeus); 
     331        taso2.Position = paikka; 
     332        taso2.Color = Color.Transparent; 
     333        Add(taso2); 
     334    } 
     335 
     336    void Lisaamorko(Vector paikka, double leveys, double korkeus) 
     337    { 
     338        PhysicsObject morko = new PhysicsObject(leveys, korkeus); 
     339        morko.Position = paikka; 
     340        FollowerBrain aivot = new FollowerBrain(pelaaja1); 
     341        aivot.TargetFollowDistance = 500; 
     342        aivot.Speed = 100; 
     343        aivot.Active = true; 
     344        morko.Brain = aivot; 
     345        morko.Tag = "vuhu"; 
     346        morko.Mass = 40; 
     347        morko.Image = morkokuva; 
     348        AddCollisionHandler(morko, kasittelemoronTormays); 
     349        Add(morko); 
     350 
     351 
     352    } 
     353    void kasittelemoronTormays(PhysicsObject hahmo, PhysicsObject kohde) 
     354    { 
     355        if (kohde == pelaaja1) 
     356        { 
     357            pisteLaskuri.Value += 0; 
     358            maaliAani.Play(); 
     359            MessageDisplay.Add("KUOLIT!!!"); 
     360            kohde.Destroy(); 
     361        } 
     362    } 
    217363} 
  • 2012/23/EetuK/Tasohyppelypeli1/Tasohyppelypeli1/Tasohyppelypeli1/kentta1.txt

    r2802 r2868  
    11         * 
    2          ## 
    3  
    4        *    *llllllllll 
    5        ##  ## 
    6  
    7      *        * 
    8      ##  ##  ##llllllllllllllllllllllll 
    9  
    10    *    *  *    *                                                                                             ## 
    11    ##  ##  ##  ##                                                                                       v ####                llllllllll                                                                                            l    l 
    12                                                                                                   v ####                                                                                                          ################################## 
    13  *    *      *   *                    *                                                      v ####                                                                                                                ******************************v                                              ########################                                                                                              l l l l l l l l l l l 
    14  ##  ##  ##  ##  ##            v   #   ##     ***                                       v ####                                         v* v* v* v* v* v *v *v* v *v *v *v       *      v     *     v   vv      vv    ###############################**************lll***************                                                                                                                                ***************************** 
    15                            l   ##           ####                   ##                ####             llllll                     ########### ######################################   ###   ###   ###   #################################################                                               ################################                                              vvvvv                         ####################################### 
    16         N        ll         ##   vvvv                    vv *******vv                                                      *                             vvvvvvvvvv             vvvvv                                   vv                                      lllllvl                                  lllllll 
    17                 ********************                                                                                                                                                                                                                                                                                                                                                      ############         ### 
    18 ########################################################################################################################################################################################################################################################################################################################################################################## 
     2         ##                                 # 
     3                                            #                      l   l   l   l   l   l   l 
     4       *    *llllllllll                     #                                                                                                                 ********************* 
     5       ##  ##                               #  #######################################################################################################      ###################### 
     6                                            #                                                                                                             ###### 
     7     *        *                             #                                                                                                       ### 
     8     ##  ##  ##llll                      ####  l  l  l  l  l  l  l                                                  #                      ###   ############                                                                                                                              *** 
     9                                                                                            #                        ######################  ###                                                                                                                                               ++++++ 
     10   *    *  *    *                 ##                                                      #                      ##lllll                                                                                                                                                                        +++ 
     11   ##  ##  ##  ##  ##  ##   ##                                                         **   #                 v ####                llllllllll                                                                                            l    l                                                   ++++                                                                                                                                                                                       
     12                                                                                   #### #              v ####                                                                                                          #################################                                                   +                                                                                                                                                                                     
     13 *    *      *   *                    *                                          #            v ####                                                                                                                ******************************v                                              ########################                                                                                                                                                                 
     14                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   
     15 ##  ##  ##  ##  ##            v   #   ##     ***                                #       v ####                #######                  v* v* v* v* v* v *v *v* v *v *v *v       *      v     *     v   vv      vv    ###############################**************lll***************                         q                                                                                                         *****************************     m                        
     16                           l   ##           ####                   ##           #     ####             llllll                     ########### ######################################   ###   ###   ###   #################################################                                               ################################                                              v                             #######################################l               
     17        N               ##   vvvv                    vv *******vv            #                                          *                             vvvvvvvvvv             vvvvv                                   vv                                                                               lllllll## 
     18                ********************                                                    #                                                                                                                                                                                                                             #  q                             vvvv                            ############         ### 
     19############################################################################ ll    ############################################################################################################################################################################################################################################################################################ 
  • 2012/23/EetuK/Tasohyppelypeli1/Tasohyppelypeli1/Tasohyppelypeli1Content/Tasohyppelypeli1Content.contentproj

    r2802 r2868  
    8282    </Compile> 
    8383  </ItemGroup> 
     84  <ItemGroup> 
     85    <Compile Include="maalikuva.png"> 
     86      <Name>maalikuva</Name> 
     87      <Importer>TextureImporter</Importer> 
     88      <Processor>TextureProcessor</Processor> 
     89    </Compile> 
     90  </ItemGroup> 
     91  <ItemGroup> 
     92    <Compile Include="mörkki.png"> 
     93      <Name>mörkki</Name> 
     94      <Importer>TextureImporter</Importer> 
     95      <Processor>TextureProcessor</Processor> 
     96    </Compile> 
     97  </ItemGroup> 
     98  <ItemGroup> 
     99    <Compile Include="erkki.png"> 
     100      <Name>erkki</Name> 
     101      <Importer>TextureImporter</Importer> 
     102      <Processor>TextureProcessor</Processor> 
     103    </Compile> 
     104  </ItemGroup> 
     105  <ItemGroup> 
     106    <Compile Include="grenade.png"> 
     107      <Name>grenade</Name> 
     108      <Importer>TextureImporter</Importer> 
     109      <Processor>TextureProcessor</Processor> 
     110    </Compile> 
     111  </ItemGroup> 
     112  <ItemGroup> 
     113    <Compile Include="mursu.png"> 
     114      <Name>mursu</Name> 
     115      <Importer>TextureImporter</Importer> 
     116      <Processor>TextureProcessor</Processor> 
     117    </Compile> 
     118  </ItemGroup> 
     119  <ItemGroup> 
     120    <Compile Include="pena.png"> 
     121      <Name>pena</Name> 
     122      <Importer>TextureImporter</Importer> 
     123      <Processor>TextureProcessor</Processor> 
     124    </Compile> 
     125  </ItemGroup> 
    84126  <Import Project="$(MSBuildExtensionsPath)\Microsoft\XNA Game Studio\$(XnaFrameworkVersion)\Microsoft.Xna.GameStudio.ContentPipeline.targets" /> 
    85127  <!--  To modify your build process, add your task inside one of the targets below and uncomment it.  
Note: See TracChangeset for help on using the changeset viewer.