Ignore:
Timestamp:
2016-06-22 15:53:42 (4 years ago)
Author:
koannak
Message:
 
File:
1 edited

Legend:

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

    r7479 r7487  
    1212    const double hyppyNopeus = 850; 
    1313    const int RUUDUN_KOKO = 40; 
    14  
     14    PhysicsObject teleportUlos; 
    1515    PlatformCharacter pelaaja1; 
    1616    int kolikoidenMaara = 0; 
    17     string[] kentat = new string[] { "kentta1", "kentta2", "kentta3" }; 
    18     int kenttaMenossa = 0; 
     17    string[] kentat = new string[] { "kentta1", "kentta2", "kentta3", "kentta4", "kentta5" }; 
     18    int kenttaMenossa = 4; 
    1919    Image pelaajanKuva = LoadImage("kärpänen"); 
    20     Image tahtiKuva = LoadImage("Piste"); 
     20    Image kolikkoKuva = LoadImage("Piste"); 
    2121    Image AmpiaisenKuva = LoadImage("Ampiainen"); 
    2222 
     
    5050    void LisaaAse (Vector paikka, double leveys, double korkeus) 
    5151    { 
    52         PhysicsObject ase = new PhysicsObject(leveys, korkeus); 
     52        PhysicsObject ase = new PhysicsObject(leveys, korkeus/3); 
    5353        ase.Position = paikka; 
    5454        ase.Tag = "ase"; 
     55        ase.Image = LoadImage("ase"); 
    5556        Add(ase); 
    5657    } 
     
    5859    { 
    5960        TileMap kentta = TileMap.FromLevelAsset(kentat[kenttaMenossa]); 
    60         kentta.SetTileMethod('#', LisaaTaso); 
    61         kentta.SetTileMethod('*', LisaaTahti); 
     61        kentta.SetTileMethod('#', LisaaTaso, "taso"); 
     62        kentta.SetTileMethod('*', LisaaKolikko); 
    6263        kentta.SetTileMethod('A', LisaaAmpiainen); 
    6364        kentta.SetTileMethod('N', LisaaPelaaja); 
    6465        kentta.SetTileMethod('-', LisaaAse); 
     66        kentta.SetTileMethod('T', LisaaTaso, "Teleport"); 
     67        kentta.SetTileMethod('U', LisaaTaso, "TeleportUlos"); 
    6568        kentta.Execute(RUUDUN_KOKO, RUUDUN_KOKO); 
    6669        Level.CreateBorders(); 
     
    7982        aivot.Loop = true; 
    8083    } 
    81     void LisaaTaso(Vector paikka, double leveys, double korkeus) 
     84    void LisaaTaso(Vector paikka, double leveys, double korkeus, string tyyppi) 
    8285    { 
    8386        PhysicsObject taso = PhysicsObject.CreateStaticObject(leveys, korkeus); 
     87        taso.IgnoresExplosions = true; 
    8488        taso.Position = paikka; 
    8589        taso.Shape = Shape.FromImage(pilvenreunat); 
    8690        taso.Image = pilvenreunat; 
    8791        taso.Color = Color.White; 
     92        taso.Tag = tyyppi; 
     93        Add(taso); 
     94        if (tyyppi.Equals("TeleportUlos")) teleportUlos = taso; 
    8895         
    89          
    90         Add(taso); 
    91     } 
    92  
    93     void LisaaTahti(Vector paikka, double leveys, double korkeus) 
    94     { 
    95         PhysicsObject tahti = PhysicsObject.CreateStaticObject(leveys, korkeus); 
    96         tahti.IgnoresCollisionResponse = true; 
    97         tahti.Position = paikka; 
    98         tahti.Image = tahtiKuva; 
    99         tahti.Tag = "Piste"; 
     96    } 
     97 
     98    void LisaaKolikko(Vector paikka, double leveys, double korkeus) 
     99    { 
     100        PhysicsObject kolikko = PhysicsObject.CreateStaticObject(leveys, korkeus); 
     101        kolikko.IgnoresCollisionResponse = true; 
     102        kolikko.IgnoresExplosions = true; 
     103        kolikko.Position = paikka; 
     104        kolikko.Image = kolikkoKuva; 
     105        kolikko.Tag = "Piste"; 
    100106        kolikoidenMaara++; 
    101         Add(tahti); 
     107        Add(kolikko); 
    102108    } 
    103109 
     
    108114        pelaaja1.Mass = 4.0; 
    109115        pelaaja1.Image = pelaajanKuva; 
    110         AddCollisionHandler(pelaaja1, "Piste", TormaaTahteen); 
     116        AddCollisionHandler(pelaaja1, "Piste", TormaaKolikkoon); 
    111117        AddCollisionHandler(pelaaja1, "ampiainen", TörmääAmpiaiseen); 
    112118        AddCollisionHandler(pelaaja1, "ase", OtaAse); 
     119        AddCollisionHandler(pelaaja1, "Teleport", SiirraPelaajaa); 
    113120 
    114121        Add(pelaaja1); 
     122    } 
     123    void SiirraPelaajaa (PhysicsObject pelaaja, PhysicsObject teleport) 
     124    { 
     125        pelaaja1.Position = teleportUlos.Position; 
     126        pelaaja1.X += pelaaja.Height; 
     127        pelaaja1.Velocity = Vector.Zero; 
    115128    } 
    116129    void OtaAse (PhysicsObject pelaaja, PhysicsObject ase) 
     
    123136    { 
    124137        ammus.Destroy(); 
     138        Explosion ammusRajahdys = new Explosion(100); 
     139        ammusRajahdys.Position = kohde.Position; 
     140        Add(ammusRajahdys); 
     141        ammusRajahdys.Speed = 170.0; 
     142        ammusRajahdys.Force = 5; 
    125143        if (kohde.Tag.Equals("ampiainen")) kohde.Destroy(); 
     144         
    126145    } 
    127146    void TörmääAmpiaiseen (PhysicsObject pelaaja, PhysicsObject ampiainen) 
     
    165184        if (ammus != null) 
    166185        { 
     186            ammus.IgnoresExplosions = true; 
    167187            //ammus.Size *= 3; 
    168188            //ammus.Image = ... 
     
    177197    } 
    178198 
    179     void TormaaTahteen(PhysicsObject hahmo, PhysicsObject tahti) 
     199    void TormaaKolikkoon(PhysicsObject hahmo, PhysicsObject tahti) 
    180200    { 
    181201        maaliAani.Play(); 
Note: See TracChangeset for help on using the changeset viewer.