Ignore:
Timestamp:
2016-06-21 15:54:06 (4 years ago)
Author:
koannak
Message:
 
File:
1 edited

Legend:

Unmodified
Added
Removed
  • 2016/25/SaanaR/Tasohyppelypeli1/Tasohyppelypeli1/Tasohyppelypeli1/Tasohyppelypeli1.cs

    r7472 r7479  
    1010{ 
    1111    const double nopeus = 200; 
    12     const double hyppyNopeus = 750; 
     12    const double hyppyNopeus = 850; 
    1313    const int RUUDUN_KOKO = 40; 
    1414 
    1515    PlatformCharacter pelaaja1; 
    16  
     16    int kolikoidenMaara = 0; 
     17    string[] kentat = new string[] { "kentta1", "kentta2", "kentta3" }; 
     18    int kenttaMenossa = 0; 
    1719    Image pelaajanKuva = LoadImage("kärpänen"); 
    1820    Image tahtiKuva = LoadImage("Piste"); 
    1921    Image AmpiaisenKuva = LoadImage("Ampiainen"); 
    2022 
    21     SoundEffect maaliAani = LoadSoundEffect("maali"); 
     23    SoundEffect maaliAani = LoadSoundEffect("Kolikko"); 
     24    SoundEffect hyppyAani = LoadSoundEffect("hyppy"); 
    2225    Image pilvenreunat = LoadImage("Pilvi"); 
    2326    public override void Begin() 
     27    { 
     28        LuoAlkuvalikko(); 
     29    } 
     30    void LuoAlkuvalikko () 
     31    { 
     32        MultiSelectWindow alkuValikko = new MultiSelectWindow("Pelin alkuvalikko", 
     33"Aloita peli", "Lopeta"); 
     34        Add(alkuValikko); 
     35        alkuValikko.AddItemHandler(0, AloitaPeli); 
     36        alkuValikko.AddItemHandler(1, Exit); 
     37        alkuValikko.Color = Color.BlueGray; 
     38    } 
     39    void AloitaPeli () 
    2440    { 
    2541        Gravity = new Vector(0, -1000); 
     
    3248        Camera.StayInLevel = true; 
    3349    } 
    34  
     50    void LisaaAse (Vector paikka, double leveys, double korkeus) 
     51    { 
     52        PhysicsObject ase = new PhysicsObject(leveys, korkeus); 
     53        ase.Position = paikka; 
     54        ase.Tag = "ase"; 
     55        Add(ase); 
     56    } 
    3557    void LuoKentta() 
    3658    { 
    37         TileMap kentta = TileMap.FromLevelAsset("kentta1"); 
     59        TileMap kentta = TileMap.FromLevelAsset(kentat[kenttaMenossa]); 
    3860        kentta.SetTileMethod('#', LisaaTaso); 
    3961        kentta.SetTileMethod('*', LisaaTahti); 
    4062        kentta.SetTileMethod('A', LisaaAmpiainen); 
    4163        kentta.SetTileMethod('N', LisaaPelaaja); 
     64        kentta.SetTileMethod('-', LisaaAse); 
    4265        kentta.Execute(RUUDUN_KOKO, RUUDUN_KOKO); 
    4366        Level.CreateBorders(); 
     
    6083        PhysicsObject taso = PhysicsObject.CreateStaticObject(leveys, korkeus); 
    6184        taso.Position = paikka; 
     85        taso.Shape = Shape.FromImage(pilvenreunat); 
     86        taso.Image = pilvenreunat; 
    6287        taso.Color = Color.White; 
    63         taso.Shape = Shape.FromImage(pilvenreunat); 
     88         
     89         
    6490        Add(taso); 
    6591    } 
     
    7298        tahti.Image = tahtiKuva; 
    7399        tahti.Tag = "Piste"; 
     100        kolikoidenMaara++; 
    74101        Add(tahti); 
    75102    } 
     
    83110        AddCollisionHandler(pelaaja1, "Piste", TormaaTahteen); 
    84111        AddCollisionHandler(pelaaja1, "ampiainen", TörmääAmpiaiseen); 
     112        AddCollisionHandler(pelaaja1, "ase", OtaAse); 
     113 
    85114        Add(pelaaja1); 
     115    } 
     116    void OtaAse (PhysicsObject pelaaja, PhysicsObject ase) 
     117    { 
     118        pelaaja1.Weapon = new AssaultRifle(20, 10); 
     119        ase.Destroy(); 
     120        pelaaja1.Weapon.ProjectileCollision = AmmusOsui; 
     121    } 
     122    void AmmusOsui(PhysicsObject ammus, PhysicsObject kohde) 
     123    { 
     124        ammus.Destroy(); 
     125        if (kohde.Tag.Equals("ampiainen")) kohde.Destroy(); 
    86126    } 
    87127    void TörmääAmpiaiseen (PhysicsObject pelaaja, PhysicsObject ampiainen) 
     
    110150        ControllerOne.Listen(Button.DPadRight, ButtonState.Down, Liikuta, "Pelaaja liikkuu oikealle", pelaaja1, nopeus); 
    111151        ControllerOne.Listen(Button.A, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus); 
     152        Keyboard.Listen(Key.Space, ButtonState.Down, AmmuAseella, "Ammu", pelaaja1); 
    112153 
    113154        PhoneBackButton.Listen(ConfirmExit, "Lopeta peli"); 
     
    118159        hahmo.Walk(nopeus); 
    119160    } 
     161    void AmmuAseella(PlatformCharacter pelaaja) 
     162    { 
     163        PhysicsObject ammus = pelaaja.Weapon.Shoot(); 
     164 
     165        if (ammus != null) 
     166        { 
     167            //ammus.Size *= 3; 
     168            //ammus.Image = ... 
     169            //ammus.MaximumLifetime = TimeSpan.FromSeconds(2.0); 
     170        } 
     171    } 
    120172 
    121173    void Hyppaa(PlatformCharacter hahmo, double nopeus) 
    122174    { 
    123175        hahmo.Jump(nopeus); 
     176        hyppyAani.Play(); 
    124177    } 
    125178 
     
    129182        MessageDisplay.Add("You get the coin!"); 
    130183        tahti.Destroy(); 
     184        kolikoidenMaara--; 
     185 
     186        if (kolikoidenMaara <= 00) SiirrySeuraavaanKenttaan(); 
    131187    } 
     188    void SiirrySeuraavaanKenttaan () 
     189    { 
     190        ClearAll(); 
     191        kenttaMenossa++; 
     192        if (kenttaMenossa >= kentat.Length) LuoAlkuvalikko(); 
     193        AloitaPeli(); 
     194    } 
     195 
    132196} 
Note: See TracChangeset for help on using the changeset viewer.