Ignore:
Timestamp:
2015-06-11 11:36:18 (6 years ago)
Author:
otoskinn
Message:
 
File:
1 edited

Legend:

Unmodified
Added
Removed
  • 2015/24/UunoT/Tasohyppelypeli2/Tasohyppelypeli2/Tasohyppelypeli2/Tasohyppelypeli2.cs

    r6003 r6016  
    1414    const int RUUDUN_KOKO = 40; 
    1515    int kenttaNro = 1; 
     16    DoubleMeter alaspainLaskuri=new DoubleMeter(5.0); 
     17    Timer aikaLaskuri; 
     18    bool osuuMaahan = false; 
     19    DoubleMeter pisteLaskuri = new DoubleMeter(0.0); 
     20    Timer pisteAjastin; 
     21     
    1622     
    1723    PlatformCharacter pelaaja1; 
     
    3844        if (kenttaNro == 1) LuoKentta("kentta1"); 
    3945        else if (kenttaNro == 2) LuoKentta("kentta2"); 
    40         //else if (kenttaNro == 3) LuoKentta("kentta3"); 
     46        else if (kenttaNro == 3) LuoKentta("kentta3"); 
    4147        else if (kenttaNro > 2) Exit(); 
    4248        LisaaNappaimet(); 
     
    5359    { 
    5460        TileMap kentta = TileMap.FromLevelAsset(kenttaTiedostonNimi); 
    55          
     61        LuoylospainAikalaskuri(); 
    5662        kentta.SetTileMethod('#', LisaaTaso); 
    5763        //kentta.SetTileMethod('*', LisaaTahti); 
     
    5965        kentta.SetTileMethod('R', maata); 
    6066        kentta.SetTileMethod('K', LuoKrystalli); 
    61         kentta.SetTileMethod('B', Luoprotaali); 
     67        //kentta.SetTileMethod('B', Luoprotaali); 
    6268        //kentta.SetTileMethod('T', LisaaTikkaat); 
    6369        //kentta.SetTileMethod('p', spawneri); 
     
    103109        pelaaja1.Mass = 4.0; 
    104110        pelaaja1.Image = pelaajanKuva; 
    105         //AddCollisionHandler(pelaaja1, "tahti", TormaaTahteen); 
     111        AddCollisionHandler(pelaaja1, "seina", LuoAikaLaskuri); 
    106112        //AddCollisionHandler(pelaaja1, "tikkaat", Kiipea); 
    107         AddCollisionHandler(pelaaja1, "portaali", Karttavaihto); 
     113        //AddCollisionHandler(pelaaja1, "portaali", Karttavaihto); 
    108114        Add(pelaaja1); 
    109115    } 
     
    119125       
    120126    } 
    121     void Luoprotaali(Vector paikka, double leveys, double korkeus) 
    122     {  
    123     PhysicsObject protaali = new PhysicsObject(leveys,korkeus); 
    124     protaali.Tag = "portaali"; 
    125     protaali.Position = paikka; 
    126     Add (protaali); 
    127     } 
    128     void Karttavaihto(PhysicsObject pelaaja1, PhysicsObject protaali)  
    129     { 
    130         kenttaNro += 1; 
    131         SeuraavaKentta(); 
    132     } 
     127    //void Luoprotaali(Vector paikka, double leveys, double korkeus) 
     128    //{  
     129    //PhysicsObject protaali = new PhysicsObject(leveys,korkeus); 
     130    //protaali.Tag = "portaali"; 
     131    //protaali.Position = paikka; 
     132    //Add (protaali); 
     133    //} 
     134    //void Karttavaihto(PhysicsObject pelaaja1, PhysicsObject protaali)  
     135    //{ 
     136    //    kenttaNro += 1; 
     137    //    SeuraavaKentta(); 
     138    //} 
    133139    void LisaaNappaimet() 
    134140    { 
     
    157163    { 
    158164        hahmo.Jump(nopeus); 
     165        osuuMaahan = false; 
     166        aikaLaskuri.Stop(); 
    159167    } 
    160168 
     
    183191    void LuoKrystalli(Vector paikka, double x, double y) 
    184192    { 
    185         PhysicsObject krystalli = new PhysicsObject(40, 100); 
     193        PhysicsObject krystalli = new PhysicsObject(40, 75); 
    186194        krystalli.Position = paikka; 
    187195        krystalli.Shape = Shape.Ellipse; 
    188196        krystalli.Image = RuneStone; 
    189         krystalli.Brain = new FollowerBrain(pelaaja1); 
     197        krystalli.IgnoresGravity = true; 
     198        //krystalli.Brain = new FollowerBrain(pelaaja1); 
    190199        krystalli.CollisionIgnoreGroup = 3; 
    191200        Add(krystalli); 
     
    207216        runeblast.Angle = suunta.Angle; 
    208217        runeblast.IgnoresGravity = true; 
     218        AddCollisionHandler(runeblast, "seina", Tromaaseina); 
     219        runeblast.Lifetime ; 
    209220        Add(runeblast); 
    210         runeblast.Hit(suunta * 750); 
     221        runeblast.Hit(suunta * 2500); 
    211222        runeblast.Tag = "Prjectile"; 
    212         AddCollisionHandler = (runeblast, "seina", tromaaseina); 
    213     } 
     223         
     224    } 
     225    void LuoAikaLaskuri(PhysicsObject pelaaja1, PhysicsObject mMata) 
     226    { 
     227         
     228        if (osuuMaahan == false) 
     229        { 
     230             
     231            aikaLaskuri = new Timer(); 
     232            aikaLaskuri.Interval = 0.1; 
     233            aikaLaskuri.Timeout += LaskeAlaspain; 
     234            aikaLaskuri.Start(); 
     235         
     236 
     237 
     238        Label aikaNaytto = new Label(); 
     239        aikaNaytto.TextColor = Color.Black; 
     240        aikaNaytto.DecimalPlaces = 1; 
     241        aikaNaytto.BindTo(alaspainLaskuri); 
     242        aikaNaytto.X = Screen.Right - 50.0; 
     243        aikaNaytto.Y = Screen.Top - 50.0; 
     244        Add(aikaNaytto); 
     245 
     246        } 
     247 
     248        osuuMaahan = true; 
     249 
     250 
     251   } 
     252    void LuoylospainAikalaskuri() 
     253    { 
     254        pisteAjastin = new Timer(); 
     255        pisteAjastin.Interval = 2; 
     256        pisteAjastin.Timeout += delegate { pisteLaskuri.Value++; }; 
     257        pisteAjastin.Start(); 
     258 
     259        pisteLaskuri.MaxValue = 50; 
     260        pisteLaskuri.UpperLimit += delegate 
     261        { 
     262 
     263            kenttaNro += 1; 
     264                SeuraavaKentta(); 
     265                MessageDisplay.Add("peliä ei voi voittaa"); 
     266        }; 
     267 
     268        Label pisteNaytto = new Label(); 
     269        pisteNaytto.TextColor = Color.Black; 
     270        pisteNaytto.DecimalPlaces = 1; 
     271        pisteNaytto.BindTo(pisteLaskuri); 
     272        pisteNaytto.X = Screen.Right - 50.0; 
     273        pisteNaytto.Y = Screen.Top  -100.0; 
     274        Add(pisteNaytto); 
     275    } 
     276    void LaskeAlaspain() 
     277    { 
     278        alaspainLaskuri.Value -= 0.1; 
     279 
     280        if (alaspainLaskuri.Value <= 0) 
     281        { 
     282            MessageDisplay.Add("#G3tr3gt"); 
     283            //KoskemMata; 
     284            aikaLaskuri.Stop(); 
     285            Timer.SingleShot(3.0, Exit); 
     286            return; 
     287 
     288 
     289 
     290        } 
     291 
     292    } 
     293     
     294    void LuoRuneblastolio(Vector paikka) 
     295    { 
     296        PhysicsObject runeblast2 = new PhysicsObject(10, 5); 
     297        runeblast2.Position = paikka; 
     298        runeblast2.Image = Blast; 
     299        runeblast2.CollisionIgnoreGroup = 3; 
     300        runeblast2.Brain = new FollowerBrain(pelaaja1); 
     301        Add(runeblast2); 
     302        Timer.SingleShot(5.0, runeblast2.Destroy); 
     303         
     304    } 
     305     
    214306    //void spawneri(Vector paikka, double leveys, double korkeus) 
    215307    //{ 
     
    219311    //    kutsuja.Start(); 
    220312    //} 
    221     void tromaaseina( 
    222     { 
    223         
    224     } 
     313    void Tromaaseina(PhysicsObject runeblast, PhysicsObject taso) 
     314    { 
     315        //Explosion rajahdys = new Explosion(75); 
     316        //rajahdys.Position = runeblast.Position; 
     317        //Add(rajahdys); 
     318        LuoRuneblastolio(runeblast.Position); 
     319        runeblast.Destroy(); 
     320    } 
     321     
     322 
     323 
     324 
    225325 
    226326} 
Note: See TracChangeset for help on using the changeset viewer.