Ignore:
Timestamp:
2013-06-26 14:56:13 (7 years ago)
Author:
olalleht
Message:

Talletus.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • 2013/26/Olli-PekkaL/'Murica/Tasohyppelypeli1/Tasohyppelypeli1/Tasohyppelypeli1.cs

    r4225 r4243  
    1717    Image pelaajanKuva = LoadImage("UKKELI 2.0"); 
    1818    Image tahtiKuva = LoadImage("PURILAINEN"); 
     19    Image piikkikuva = LoadImage("Piikki"); 
     20    Image porkkanakuva = LoadImage("Porkkana"); 
     21    Image Makkari = LoadImage("Makkari"); 
    1922 
    2023    SoundEffect maaliAani = LoadSoundEffect("maali"); 
    2124 
     25    IntMeter hampurilaislaskuri = new IntMeter(0, 0, 50); 
     26 
     27    int kenttaNro = 1; 
     28 
    2229    public override void Begin() 
    2330    { 
    24         Gravity = new Vector(0, -1000); 
    25  
    26         LuoKentta(); 
    27         LisaaNappaimet(); 
    28  
    29         Camera.Follow(pelaaja1); 
    30         Camera.ZoomFactor = 1.2; 
    31         Camera.StayInLevel = true; 
    32     } 
    33  
    34     void LuoKentta() 
    35     { 
    36         TileMap kentta = TileMap.FromLevelAsset("kentta1"); 
     31        SeuraavaKentta(); 
     32    } 
     33 
     34    void LuoKentta(string kentanNimi) 
     35    { 
     36        TileMap kentta = TileMap.FromLevelAsset(kentanNimi); 
    3737        kentta.SetTileMethod('#', LisaaTaso); 
    3838        kentta.SetTileMethod('*', LisaaTahti); 
    3939        kentta.SetTileMethod('N', LisaaPelaaja); 
     40        kentta.SetTileMethod('P', LisaaPiikki); 
     41        kentta.SetTileMethod('O', LisaaPorkkana); 
     42        kentta.SetTileMethod('M', LisaaMaali); 
    4043        kentta.Execute(RUUDUN_KOKO, RUUDUN_KOKO); 
    41         Level.CreateBorders(); 
    4244        Level.Background.CreateGradient(Color.White, Color.SkyBlue); 
    4345    } 
     
    4951        taso.Color = Color.Green; 
    5052        Add(taso); 
     53         
     54    } 
     55 
     56    void LisaaPiikki(Vector paikka, double leveys, double korkeus) 
     57    { 
     58        PhysicsObject piikki = PhysicsObject.CreateStaticObject(leveys, korkeus); 
     59        piikki.Position = paikka; 
     60        piikki.Image = piikkikuva; 
     61        piikki.Tag = "piikki"; 
     62        Add(piikki); 
     63 
     64    } 
     65    void LisaaMaali(Vector paikka, double leveys, double korkeus) 
     66    { 
     67 
     68        PhysicsObject maali = PhysicsObject.CreateStaticObject(200, 100); 
     69        maali.Image = Makkari; 
     70        maali.IgnoresCollisionResponse = true; 
     71        maali.Position = paikka; 
     72        maali.Tag = "Makkari"; 
     73        Add(maali); 
     74 
    5175    } 
    5276 
     
    6185    } 
    6286 
     87 
     88 
     89    void LisaaPorkkana(Vector paikka, double leveys, double korkeus) 
     90    { 
     91        PhysicsObject porkkana = PhysicsObject.CreateStaticObject(leveys / 2, korkeus); 
     92        porkkana.IgnoresCollisionResponse = true; 
     93        porkkana.Position = paikka; 
     94        porkkana.Image = porkkanakuva; 
     95        porkkana.Tag = "Porkkana"; 
     96        Add(porkkana); 
     97    } 
     98 
     99 
     100 
    63101    void LisaaPelaaja(Vector paikka, double leveys, double korkeus) 
    64102    { 
    65103        pelaaja1 = new PlatformCharacter(leveys, korkeus); 
     104        pelaaja1.Shape = Shape.FromImage(pelaajanKuva); 
    66105        pelaaja1.Position = paikka; 
    67106        pelaaja1.Mass = 5.0; 
    68107        pelaaja1.Image = pelaajanKuva; 
    69108        AddCollisionHandler(pelaaja1, "Hampurilainen", TormaaTahteen); 
     109        AddCollisionHandler(pelaaja1, "piikki", TormaaPiikkiin); 
     110        AddCollisionHandler(pelaaja1, "Porkkana", tormaaPorkkanaan); 
     111        AddCollisionHandler(pelaaja1, "Makkari", tormaaMaaliin); 
    70112        Add(pelaaja1); 
    71113    } 
     
    97139    { 
    98140        hahmo.Jump(nopeus); 
     141    } 
     142 
     143    void TormaaPiikkiin(PhysicsObject hahmo, PhysicsObject tahti) 
     144    { 
     145        Timer.SingleShot(2.0, SeuraavaKentta); 
     146        Explosion rajahdys = new Explosion(100 * hahmo.Size.X/40.0); 
     147        rajahdys.Position = hahmo.Position; 
     148        Add(rajahdys); 
     149        for (int i = 0; i < hampurilaislaskuri.Value; i++) 
     150        { 
     151            PhysicsObject purilainen = new PhysicsObject(30, 30); 
     152            purilainen.Position = hahmo.Position + RandomGen.NextVector(10, 50); 
     153            purilainen.Image = tahtiKuva; 
     154            Add(purilainen); 
     155        } 
     156        hahmo.Destroy(); 
     157        MessageDisplay.Add("Kuolit..."); 
    99158    } 
    100159 
     
    105164        tahti.Destroy(); 
    106165        pelaaja1.Size *= 1.1; 
    107  
    108     } 
     166        hampurilaislaskuri.Value++; 
     167 
     168    } 
     169 
     170   void SeuraavaKentta() 
     171    { 
     172        ClearAll(); 
     173 
     174        hampurilaislaskuri.Value = 0; 
     175 
     176        if (kenttaNro == 1) LuoKentta("kentta1"); 
     177        else if (kenttaNro == 2) LuoKentta("kentta2"); 
     178        else if (kenttaNro == 3) LuoKentta("kentta2");         
     179        else if (kenttaNro > 3) Exit(); 
     180 
     181 
     182        LisaaNappaimet(); 
     183        Gravity = new Vector(0, -1000); 
     184 
     185        Camera.Follow(pelaaja1); 
     186        Camera.ZoomFactor = 1.7; 
     187        Camera.StayInLevel = true; 
     188    } 
     189 
     190   void tormaaPorkkanaan(PhysicsObject hahmo,PhysicsObject porkkana) 
     191   { 
     192       porkkana.Destroy(); 
     193       pelaaja1.Size *= 0.5; 
     194       MessageDisplay.Add("Söit Porkkanan"); 
     195       hampurilaislaskuri.Value--; 
     196 
     197   } 
     198 
     199   void tormaaMaaliin(PhysicsObject hahmo, PhysicsObject maali) 
     200   { 
     201       kenttaNro++; 
     202       SeuraavaKentta(); 
     203 
     204   } 
     205 
     206 
     207 
    109208} 
     209 
Note: See TracChangeset for help on using the changeset viewer.