Ignore:
Timestamp:
2011-06-08 16:18:05 (10 years ago)
Author:
vihakuli
Message:
 
File:
1 edited

Legend:

Unmodified
Added
Removed
  • 2011/23/vihakuli/Runner/Runner/Runner/Peli.cs

    r1743 r1764  
    1414    Image[] UkonKuvaPeilattu; 
    1515    Image[] Ukkoidlaa = LoadImages("ukkoidlaa"); 
     16    Image vihollisenKuva = LoadImage("vihu"); 
    1617    double liiku = 400; 
    1718    int pisteet = 0; 
     
    2627    List<Label> valikonKohdat = new List<Label>(); 
    2728    List<Label> MaaValikko = new List<Label>(); 
     29    GameObject spawnVihollinen; 
    2830    PhysicsObject spawn; 
    2931    int havisit = 0; 
    3032    int voitit = 0; 
    3133    string[] maat; 
    32     string valittuMaa = "Maat\\asd.txt"; 
     34    string valittuMaa = "Maat\\maa1.txt"; 
     35    Timer aikaLaskuri; 
     36    double aikaaKulunut = 0.0; 
     37    ScoreList topLista = new ScoreList(10, true, 999.9); 
     38    string maanTallennus; 
     39    Label aikaNaytto; 
     40    bool powerJump = false; 
     41    PhysicsObject vihollinen; 
     42     
     43     
     44 
    3345 
    3446    public override void Begin() 
     
    3749        KorkeaHyppyAika = new Timer(); 
    3850        NopeaJuoksuAika = new Timer(); 
    39          
    40         Valikko(); 
    41  
     51        aikaLaskuri = new Timer(); 
     52        aikaLaskuri.Interval = 0.1; 
     53        aikaLaskuri.Trigger += new Timer.TriggerHandler(aikaLaskuri_Trigger); 
     54        Valikko();  
    4255         
    4356    } 
     
    4659    { 
    4760        ClearAll(); 
     61        NopeaJuoksuAika.Start(); 
    4862 
    4963        MaxPisteet = 0; 
     
    108122    { 
    109123        ClearAll(); 
     124        aikaaKulunut = 0; 
     125        aikaLaskuri.Stop(); 
     126        aikaLaskuri.Start(); 
    110127        voitit = 0; 
    111128        havisit = 0; 
    112129        teksti = new Label("teksti"); 
     130        LuoAikaLaskuri(); 
    113131        TeeKentta(); 
    114132        TeeUkko(); 
     
    149167            MessageDisplay.Add(KorkeaHyppyAika.CurrentTime.ToString()); 
    150168            KorkeaHyppyAika.Start(); 
     169            powerJump = true; 
    151170        } 
    152171 
    153172        if (kohde.Color == Color.White) 
    154173        { 
    155             NopeaJuoksuAika.Start(); 
    156174            NopeaJuoksuAika.Reset(); 
    157175        } 
     
    169187                kohta3 = new Label("Kenttä suoritettu!"); 
    170188                kohta3.Position = new Vector(0, 120); 
    171                 //valikonKohdat.Add(kohta3); 
    172189                voitit = 1; 
    173                 Valikko(); 
     190                peliPaattyi("voitto"); 
    174191            } 
    175192        } 
     
    183200            //valikonKohdat.Add(KohtaHavisit); 
    184201            havisit = 1; 
    185             Valikko(); 
     202            peliPaattyi("havio"); 
    186203        } 
    187204    } 
     
    190207    { 
    191208        TileMap ruudut = TileMap.FromFile(valittuMaa); 
    192         ruudut['='] = LuoPalikka; 
    193         ruudut['-'] = LuoHyppyPalikka; 
    194         ruudut[':'] = LuoNopeusPalikka; 
    195         ruudut['*'] = LuoTahtiPalikka; 
    196         ruudut['s'] = LuoSpawn; 
    197         ruudut['!'] = LuoHavioPalikka; 
    198         ruudut.Insert(ruudunLeveys, ruudunKorkeus); 
     209        ruudut.SetTileMethod('=', LuoPalikka); 
     210        ruudut.SetTileMethod('-', LuoHyppyPalikka); 
     211        ruudut.SetTileMethod(':', LuoNopeusPalikka); 
     212        ruudut.SetTileMethod('*', LuoTahtiPalikka); 
     213        ruudut.SetTileMethod('s', LuoSpawn); 
     214        ruudut.SetTileMethod('!', LuoHavioPalikka); 
     215        ruudut.SetTileMethod('b', LuoVihollinen); 
     216        //ruudut.Insert(ruudunLeveys, ruudunKorkeus); 
     217        ruudut.Execute(ruudunLeveys, ruudunKorkeus); 
    199218        Gravity = new Vector(0.0, -800.0); 
    200219        teksti.Text = pisteet.ToString() + "/" + MaxPisteet.ToString(); 
    201220    } 
    202221 
    203     PhysicsObject LuoHavioPalikka() 
     222    void LuoVihollinen(Vector paikka, double leveys, double korkeus) 
     223    { 
     224        spawnVihollinen = new GameObject(40.0, 40.0); 
     225        spawnVihollinen.Position = paikka; 
     226        TeeVihollinen(spawnVihollinen.X, spawnVihollinen.Y); 
     227        //Add(spawnVihollinen); 
     228    } 
     229 
     230    void peliPaattyi(string tulos) 
     231    { 
     232        aikaLaskuri.Stop(); 
     233        maanTallennus = valittuMaa + ".xml"; 
     234        maanTallennus = maanTallennus.Substring(5);  
     235         
     236        if (tulos == "voitto") 
     237        { 
     238            if (!DataStorage.Exists(maanTallennus)) 
     239            { 
     240                 
     241                DataStorage.Save<ScoreList>(topLista, maanTallennus); 
     242            } 
     243 
     244            LoadState tilanne = DataStorage.BeginLoad(maanTallennus); 
     245            tilanne.Load<ScoreList>(topLista, "default"); 
     246            tilanne.EndLoad(); 
     247             
     248            HighScoreWindow topIkkuna = new HighScoreWindow("Runner top times " + valittuMaa + " maalle", 
     249                "Parhaat pisteet", "Gz dude, pääsit listalle pisteillä %p!!! Syötä nimesi: ", topLista, aikaaKulunut); 
     250            topIkkuna.Width = 500; 
     251            topIkkuna.List.Width = 500; 
     252            topIkkuna.Closed += TallennaPisteet; 
     253            Add(topIkkuna); 
     254        } 
     255 
     256        else 
     257        { 
     258            ClearAll(); 
     259            HighScoreWindow topIkkuna = new HighScoreWindow("Pelin nimi tai jotain", 
     260                              "Parhaat pisteet", 
     261                              topLista); 
     262            topIkkuna.Closed += TallennaPisteet; 
     263            Add(topIkkuna); 
     264        } 
     265    } 
     266 
     267    void TallennaPisteet(Window sender) 
     268    { 
     269        DataStorage.Save<ScoreList>(topLista, maanTallennus); 
     270        Valikko(); 
     271    } 
     272 
     273    void LuoHavioPalikka(Vector paikka, double leveys, double korkeus) 
    204274    { 
    205275        PhysicsObject havioPalikka = PhysicsObject.CreateStaticObject(40.0, 40.0); 
     276        havioPalikka.Position = paikka; 
    206277        havioPalikka.Color = Color.OrangeRed; 
    207         return havioPalikka; 
    208  
    209     } 
    210  
    211     PhysicsObject LuoSpawn() 
     278        Add(havioPalikka); 
     279 
     280    } 
     281 
     282    void LuoSpawn(Vector paikka, double leveys, double korkeus) 
    212283    { 
    213284        spawn = PhysicsObject.CreateStaticObject(50.0, 50.0); 
     285        spawn.Position = paikka; 
    214286        spawn.Color = Color.Green; 
    215287        Add(spawn);  
    216         return spawn; 
    217     } 
    218  
    219     PhysicsObject LuoPalikka() 
     288    } 
     289 
     290    void LuoPalikka(Vector paikka, double leveys, double korkeus) 
    220291    { 
    221292        PhysicsObject palikka = PhysicsObject.CreateStaticObject(50.0, 50.0); 
     293        palikka.Position = paikka; 
    222294        palikka.Shape = Shape.Rectangle; 
    223295        palikka.Color = Color.Black; 
    224         return palikka; 
    225     } 
    226  
    227     PhysicsObject LuoHyppyPalikka() 
     296        Add(palikka); 
     297    } 
     298 
     299    void LuoHyppyPalikka(Vector paikka, double leveys, double korkeus) 
    228300    { 
    229301        PhysicsObject hyppyPalikka = PhysicsObject.CreateStaticObject(50.0, 50.0); 
     302        hyppyPalikka.Position = paikka; 
    230303        hyppyPalikka.Shape = Shape.Rectangle; 
    231304        hyppyPalikka.Color = Color.Red; 
    232         return hyppyPalikka; 
    233     } 
    234  
    235     PhysicsObject LuoNopeusPalikka() 
     305        Add(hyppyPalikka); 
     306    } 
     307 
     308    void LuoNopeusPalikka(Vector paikka, double leveys, double korkeus) 
    236309    { 
    237310        PhysicsObject nopeusPalikka = PhysicsObject.CreateStaticObject(50.0, 50.0); 
     311        nopeusPalikka.Position = paikka; 
    238312        nopeusPalikka.Shape = Shape.Rectangle; 
    239313        nopeusPalikka.Color = Color.White; 
    240         return nopeusPalikka; 
    241     } 
    242  
    243     PhysicsObject LuoTahtiPalikka() 
     314        Add(nopeusPalikka); 
     315    } 
     316 
     317    void LuoTahtiPalikka(Vector paikka, double levets, double korkeus) 
    244318    { 
    245319        PhysicsObject tahtiPalikka = PhysicsObject.CreateStaticObject(35.0, 35.0); 
     320        tahtiPalikka.Position = paikka; 
    246321        tahtiPalikka.Shape = Shape.Star; 
    247322        tahtiPalikka.Color = Color.Yellow; 
    248323        MaxPisteet = MaxPisteet + 1; 
    249         return tahtiPalikka; 
     324        Add(tahtiPalikka); 
     325    } 
     326 
     327    void LuoAikaLaskuri() 
     328    { 
     329         
     330         
     331        aikaLaskuri.Start(); 
     332         
     333        aikaNaytto = new Label(); 
     334        aikaNaytto.TextColor = Color.White; 
     335        aikaNaytto.DecimalPlaces = 1; 
     336        aikaNaytto.X = Screen.Left / 2; 
     337        aikaNaytto.Y = Screen.Top - 20; 
     338        //aikaNaytto.BindTo(aikaLaskuri.SecondCounter); 
     339        Add(aikaNaytto); 
     340         
     341    } 
     342 
     343    void aikaLaskuri_Trigger(Timer sender) 
     344    { 
     345        aikaaKulunut = aikaaKulunut + sender.SecondCounter.Value; 
     346        aikaNaytto.Text = aikaaKulunut.ToString("0.00"); 
    250347    } 
    251348 
     
    255352        Keyboard.Listen(Key.Right, ButtonState.Down, LiikutaUkkoa, "Pelaaja liikkuu oikealle", liiku, "oikea"); 
    256353        Keyboard.Listen(Key.Up, ButtonState.Pressed, Hyppy, "Ukko Hyppää"); 
    257         Keyboard.Listen(Key.Escape, ButtonState.Pressed, Valikko, "Poistu"); 
     354        Keyboard.Listen(Key.Escape, ButtonState.Pressed, peliPaattyi, "Poistu","havio"); 
    258355    } 
    259356 
     
    281378    void Hyppy() 
    282379    { 
    283         double asd = KorkeaHyppyAika.CurrentTime; 
    284         TimeSpan nykyhetki = DateTime.Now.TimeOfDay; 
    285         TimeSpan erotus = nykyhetki- KorkeaHyppyAika.StartTime; 
    286         if (asd < 0.3) 
     380        if (powerJump == true) 
    287381        { 
    288382            ukko.Jump(800.0); 
    289             return;     
     383            powerJump = false;  
    290384        } 
    291385        ukko.Jump(500.0); 
    292386    } 
     387 
     388    void TeeVihollinen(double x, double y) 
     389    { 
     390        vihollinen = new PhysicsObject(40.0, 40.0); 
     391        vihollinen.X = x; 
     392        vihollinen.Y = y; 
     393        vihollinen.Image = vihollisenKuva; 
     394        vihollinen.Hit(new Vector(-600,0)); 
     395        vihollinen.IgnoresGravity = true; 
     396        vihollinen.LinearDamping = 1; 
     397        AddCollisionHandler(vihollinen, VihuTormasi); 
     398        Add(vihollinen); 
     399    } 
     400 
     401    void VihuTormasi(PhysicsObject tormaaja, PhysicsObject kohde) 
     402    { 
     403        vihollinen.Velocity = -vihollinen.Velocity; 
     404    } 
     405 
    293406} 
Note: See TracChangeset for help on using the changeset viewer.