Changeset 2987 for 2012/24


Ignore:
Timestamp:
2012-06-13 14:06:27 (11 years ago)
Author:
atjokine
Message:

Talletus.

Location:
2012/24/AtteJ/Räiskintä-mättöpeli
Files:
3 added
6 edited

Legend:

Unmodified
Added
Removed
  • 2012/24/AtteJ/Räiskintä-mättöpeli/Räiskintä-mättöpeli/Räiskintä-mättöpeli/Räiskintä_mättöpeli.cs

    r2952 r2987  
    1212    Vector liikuYlös = new Vector(0.0, 250.0); 
    1313    PhysicsObject pelaaja; 
     14    Weapon Ase; 
     15    IntMeter VihollisiaJaljella; 
     16    IntMeter VihollisiaTuhottu; 
     17    IntMeter KierrosLaskuri; 
     18    DoubleMeter Elämät; 
     19    ScoreList TopLista = new ScoreList(10, false, 0); 
     20    bool peliLoppui = false; 
     21    int Vihollisia = 10; 
     22 
    1423    public override void Begin() 
    1524    { 
     
    2029        Aseet(); 
    2130        LisääOhjaimet(); 
    22         viholliset (400.0, 0.0); 
    23         viholliset (400.0, 100.0); 
    24         viholliset(400.0, -100.0); 
    25  
    26         
    27          
     31        LuoKierrosLaskuri(); 
     32 
     33        if (DataStorage.Exists("pisteet.xml")) 
     34            TopLista = DataStorage.Load<ScoreList>(TopLista, "pisteet.xml"); 
     35 
     36        int i = 0; 
     37        while (i < Vihollisia) 
     38        { 
     39            vihollinen (Level.Right - 30, RandomGen.NextDouble(Level.Bottom + 30, Level.Top - 30)); 
     40            i++; 
     41        } 
    2842 
    2943        PhoneBackButton.Listen(ConfirmExit, "Lopeta peli"); 
     
    3650        Level.CreateBorders(); 
    3751        Camera.ZoomToLevel(); 
    38  
    39     } 
    40  
    41     void viholliset(double x, double y) 
    42     { 
     52        VihollisiaJaljella = new IntMeter(Vihollisia); 
     53        VihollisiaTuhottu = new IntMeter(0); 
     54        VihollisiaJaljella.LowerLimit += KaikkiVihollisetTuhottu; 
     55 
     56        Label Pistenaytto = new Label(); 
     57        Pistenaytto.X = Level.Right - 30; 
     58        Pistenaytto.Y = Level.Top - 5; 
     59        Pistenaytto.TextColor = Color.White; 
     60        Pistenaytto.Color = Color.Red; 
     61 
     62        Pistenaytto.BindTo(VihollisiaTuhottu); 
     63        Add(Pistenaytto); 
     64 
     65        Label Pisteteksti = new Label("Tuhottu:"); 
     66        Pisteteksti.X = Level.Right - 98; 
     67        Pisteteksti.Y = Level.Top - 5; 
     68        Pisteteksti.TextColor = Color.White; 
     69        Pisteteksti.Color = Color.Red; 
     70        Add(Pisteteksti); 
     71    } 
     72 
     73    PhysicsObject vihollinen(double x, double y) 
     74    { 
     75        FollowerBrain SeuraajanAivot = new FollowerBrain(pelaaja); 
     76        SeuraajanAivot.Speed = 100; 
    4377        PhysicsObject enemy = new PhysicsObject (30, 30); 
     78        enemy.Brain = SeuraajanAivot; 
    4479        enemy.X = x; 
    4580        enemy.Y = y; 
    4681        enemy.Shape = Shape.Circle; 
    4782        enemy.Color = Color.Red; 
     83        enemy.Tag = "vihollinen"; 
    4884        Add (enemy); 
    49     } 
     85        return enemy; 
     86    }  
     87 
     88        
     89     
    5090    void Pelaaja() 
    5191    { 
    5292        pelaaja = new PhysicsObject(30, 30); 
    5393        pelaaja.Shape = Shape.Circle; 
    54         pelaaja.Color = Color.White; 
     94        pelaaja.Color = Color.Blue; 
    5595        pelaaja.X = -400; 
    5696        pelaaja.Y = 0; 
     
    5898        pelaaja.LinearDamping = 0.9; 
    5999        pelaaja.Restitution = 1.0; 
    60          
     100        pelaaja.CanRotate = false; 
     101 
     102        Elämät = new DoubleMeter(100); 
     103        Elämät.MaxValue = 100; 
     104        Elämät.LowerLimit += GameOver; 
     105 
     106        ProgressBar ElämäPalkki = new ProgressBar(150, 10); 
     107        ElämäPalkki.BindTo(Elämät); 
     108        ElämäPalkki.X = Level.Left - 50; 
     109        ElämäPalkki.Y = Level.Top - 5; 
     110        ElämäPalkki.BarColor = Color.Red; 
     111        ElämäPalkki.BorderColor = Color.Green; 
     112        Add(ElämäPalkki); 
     113 
     114        Elämät.Value = 101; 
     115 
     116        AddCollisionHandler(pelaaja, "vihollinen", VihollinenOsuuPelaajaan); 
     117 
    61118    } 
    62119     
     
    65122        ControllerOne.ListenAnalog(AnalogControl.LeftStick, 0.1, LiikutaPelaajaa,  
    66123        "Liikuta pelaajaa tattia pyörittämällä"); 
     124        ControllerOne.Listen(Button.X, ButtonState.Pressed, Ampuminen, "ammu"); 
     125 
    67126    } 
    68127    void LiikutaPelaajaa (AnalogState TatinTila) 
     
    76135        pelaaja.Add(pyssy); 
    77136        pyssy.Ammo.Value = 99999999; 
     137        Ase = pyssy; 
    78138         
    79139    } 
     
    84144        Explosion rajahdys = new Explosion(10); 
    85145        rajahdys.Position = ammus.Position; 
     146 
     147        if (kohde.Tag == "vihollinen") 
     148        { 
     149            kohde.Destroy(); 
     150            VihollisiaJaljella.Value--; 
     151            VihollisiaTuhottu.Value++; 
     152        } 
    86153        Add(rajahdys); 
    87     } 
     154         
     155    } 
     156 
     157    void KaikkiVihollisetTuhottu(int vihollisia) 
     158    { 
     159        MessageDisplay.Add("Viholliset tuhottu!"); 
     160 
     161        Timer.SingleShot(1.5, LisaaVihollisia); 
     162 
     163    } 
     164 
     165    void Ampuminen() 
     166    { 
     167        PhysicsObject panos = Ase.Shoot(); 
     168        if (panos != null) 
     169        { 
     170            AddCollisionHandler(panos, LuotiOsuu); 
     171        } 
     172    } 
     173    void VihollinenOsuuPelaajaan(IPhysicsObject pelaaja, IPhysicsObject enemy) 
     174    { 
     175        Elämät.Value -= 10; 
     176    } 
     177 
     178    void GameOver(double Elämät) 
     179    { 
     180        if (peliLoppui) return; 
     181 
     182        MessageDisplay.Add("Hävisit pelin"); 
     183        HighScoreWindow topIkkuna = new HighScoreWindow( 
     184                             "Parhaat pisteet", 
     185                             "Onneksi olkoon, pääsit listalle tapoilla %p! Syötä nimesi:", 
     186                             TopLista, VihollisiaTuhottu.Value); 
     187        topIkkuna.Closed += TallennaPisteet; 
     188        Add(topIkkuna); 
     189        peliLoppui = true; 
     190        
     191 
     192    } 
     193    void TallennaPisteet(Window sender) 
     194    { 
     195        DataStorage.Save<ScoreList>(TopLista, "pisteet.xml"); 
     196 
     197        Timer.SingleShot(3.0, Exit); 
     198 
     199    } 
     200    void LisaaVihollisia() 
     201    { 
     202        Vihollisia = Vihollisia + 10; 
     203 
     204        VihollisiaJaljella.Value = Vihollisia; 
     205 
     206        KierrosLaskuri.Value += 1; 
     207 
     208        int i = 0; 
     209        while (i < Vihollisia) 
     210        { 
     211            vihollinen(Level.Right - 30, RandomGen.NextDouble(Level.Bottom + 30, Level.Top - 30)); 
     212            i++; 
     213        } 
     214    } 
     215    void LuoKierrosLaskuri() 
     216    { 
     217        KierrosLaskuri = new IntMeter(1); 
     218        Label KierrosNaytto = new Label(); 
     219        KierrosNaytto.X = Level.Center.X - 100; 
     220        KierrosNaytto.Y = Level.Top - 5; 
     221        KierrosNaytto.TextColor = Color.White; 
     222        KierrosNaytto.Color = Color.Red; 
     223        KierrosNaytto.Title = "Kierros"; 
     224        KierrosNaytto.BindTo(KierrosLaskuri); 
     225        Add (KierrosNaytto); 
     226    } 
     227 
    88228} 
Note: See TracChangeset for help on using the changeset viewer.