Ignore:
Timestamp:
2014-07-03 15:01:43 (5 years ago)
Author:
novaanan
Message:
 
File:
1 edited

Legend:

Unmodified
Added
Removed
  • 2014/27/NoelV/turhakepeli/turhakepeli/turhakepeli/turhakepeli.cs

    r5332 r5383  
    99public class turhakepeli : PhysicsGame 
    1010{ 
     11 
     12    IntMeter vihollistenMaara = new IntMeter(0, 0, 0); 
     13 
    1114    PhysicsObject pelaaja; 
     15    PhysicsObject turhake; 
    1216    Image hahmo = LoadImage("pelaaja"); 
    1317    Image valikonKuva = LoadImage("valikko"); 
     
    2125    Image VasenYla = LoadImage("vasenYla"); 
    2226    Image hahmoHyokkaa = LoadImage("pelaajaHyokkaa"); 
     27    Image kuollut = LoadImage("kuollut"); 
    2328 
    2429    DoubleMeter enkkaLaskuri; 
    25     DoubleMeter EnergiaLaskuri; 
    26  
     30    DoubleMeter energiaLaskuri; 
     31    const double TIILENLEVEYS = 20; 
     32    const double TIILENKORKEUS = 20; 
    2733 
    2834    private Image[] hahmonLiikeAlas = LoadImages("hahmo01", "hahmo02"); 
     
    3036    private Image[] hahmonLiikeOikea = LoadImages("hahmo01", "hahmo02"); 
    3137    Image taustaKuva = LoadImage("maa"); 
    32       
     38    Timer energianKasvattaja; 
    3339 
    3440    public override void Begin() 
    3541    { 
    3642 
    37         Level.Background.Image = taustaKuva; 
    38         Level.Background.TileToLevel(); 
    39  
    40  
    41  
    42         //GameObject taustaPilvet = new GameObject(10000, 10000); 
    43        // taustaPilvet.Image = taustaKuva; 
    44         //Add(taustaPilvet, -3); 
    45         //Layers[-3].RelativeTransition = new Vector(0.5, 0.5); 
    46  
    47       
    48  
    49         SmoothTextures = false; 
    50         Level.Background.Color = Color.Brown; 
    51  
    52         //hahmonLiike = LoadAnimation("hahmo"); 
    53  
    54         LuoKentta(); 
    55         
    56         LisaaOhjaimet(); 
    57  
    58         LuoEnkkaLaskuri(); 
    59  
    60         LuoEnergiaLaskuri(); 
    61  
    62        
    63         
    64  
    65  
    66         Camera.Zoom(4); 
    67         Camera.FollowedObject = pelaaja; 
    68  
    69         PhysicsObject turhake = new PhysicsObject(10, 10); 
    70         turhake.Color = Color.Gray; 
    71         Add(turhake); 
     43        AloitaPeli(); 
    7244 
    7345 
     
    148120    void LuoKentta() 
    149121    { 
    150         Image taustaKuva = LoadImage("kuvanNimi"); 
    151         Level.Background.TileToLevel(); 
     122        //ClearAll(); 
     123         
     124        // TODO kuollessa kertaa zoomin ja kaikkee 
     125 
     126        vihollistenMaara.Value = 0; 
     127        vihollistenMaara.MaxValue = 0; 
     128        vihollistenMaara.MinValue = 0; 
     129        Level.Background.Image = taustaKuva; 
     130 
     131 
     132        pelaaja = new PhysicsObject(TIILENLEVEYS, TIILENKORKEUS); 
     133 
    152134 
    153135        //1. Luetaan kuva uuteen ColorTileMappiin, kuvan nimen perässä ei .png-päätettä. 
    154         ColorTileMap ruudut = ColorTileMap.FromLevelAsset("kentta"); 
     136        ColorTileMap ruudut = ColorTileMap.FromLevelAsset(RandomGen.SelectOne("kentta", "kentta02")); 
    155137 
    156138        //2. Kerrotaan mitä aliohjelmaa kutsutaan, kun tietyn värinen pikseli tulee vastaan kuvatiedostossa. 
     
    163145        ruudut.SetTileMethod(new Color(155, 0, 255), LuoVasenAla); 
    164146        ruudut.SetTileMethod(new Color(255, 145, 0), LuoVasenYla); 
     147        ruudut.SetTileMethod(new Color(127, 0, 55), LuoVihollinen); 
     148 
    165149 
    166150 
    167151        //3. Execute luo kentän 
    168152        //   Parametreina leveys ja korkeus 
    169         ruudut.Execute(20, 20); 
    170  
    171  
    172  
    173         Timer vihunLuontiAjastin = new Timer(); 
    174         vihunLuontiAjastin.Interval = 10.0; 
    175         vihunLuontiAjastin.Timeout += delegate { LuoVihollinen(new Vector(RandomGen.NextDouble(Level.Left, Level.Right), Level.Top)); }; 
    176         vihunLuontiAjastin.Start(); 
    177  
    178     } 
     153        ruudut.Execute(TIILENLEVEYS, TIILENKORKEUS); 
     154        Level.Background.TileToLevel(); 
     155        vihollistenMaara.LowerLimit += KenttaLapi; 
     156         
     157        energianKasvattaja = new Timer(); 
     158        energianKasvattaja.Interval = 2.0; 
     159        energianKasvattaja.Timeout += delegate { energiaLaskuri.Value++; if (energiaLaskuri.Value >= 10) energianKasvattaja.Stop(); }; 
     160         
     161        LuoVihuNaytto(); 
     162 
     163        //Timer vihunLuontiAjastin = new Timer(); 
     164        //vihunLuontiAjastin.Interval = 1.0; 
     165        //vihunLuontiAjastin.Timeout += delegate { LuoVihollinen(new Vector(RandomGen.NextDouble(Level.Left+20, Level.Right-20), RandomGen.NextDouble (Level.Bottom+20, Level.Top-20)));}; 
     166        //vihunLuontiAjastin.Start(); 
     167 
     168    } 
     169 
     170    void LuoVihuNaytto() 
     171    { 
     172        Label pisteNaytto = new Label(); 
     173        pisteNaytto.X = Screen.Left + 100; 
     174        pisteNaytto.Y = Screen.Top - 100; 
     175        pisteNaytto.TextColor = Color.Black; 
     176        pisteNaytto.Color = Color.White; 
     177 
     178        pisteNaytto.BindTo(vihollistenMaara); 
     179        Add(pisteNaytto); 
     180    } 
     181 
    179182    void LuoAlaseina(Vector paikka, double leveys, double korkeus) 
    180183    { 
     
    229232        Add(oikea); 
    230233 
    231  
     234         
    232235    } 
    233236     
     
    236239    void LuoPelaaja(Vector paikka, double leveys, double korkeus) 
    237240    { 
    238         pelaaja = new PhysicsObject(leveys, korkeus); 
     241         
    239242        pelaaja.Image = hahmo; 
    240243        pelaaja.Position = paikka; 
     
    269272 
    270273 
    271     private void LuoVihollinen(Vector vektori) 
    272     { 
    273         Vihu vihollinen = new Vihu(20, 20); 
     274    private void LuoVihollinen(Vector paikka, double leveys, double korkeus) 
     275    {  
     276        Vihu vihollinen = new Vihu(leveys, korkeus); 
    274277 
    275278        vihollinen.ElamaLaskuri = new IntMeter(5, 0, 5); 
    276  
     279        vihollinen.Position = paikka; 
    277280        Add(vihollinen); 
    278281        vihollinen.Restitution = 1.5; 
     
    291294 
    292295        vihollinen.Brain = seuraajanAivot; 
    293  
     296        vihollistenMaara.MaxValue++; 
     297        vihollistenMaara.Value = vihollistenMaara.MaxValue; 
     298         
     299    } 
     300    void KenttaLapi() 
     301    { 
     302        //MessageDisplay.Add("Läpäisit kentän"); 
     303        ClearAll(); 
     304        AloitaPeli(); 
    294305    } 
    295306    void Hyokkaa() 
     
    303314 
    304315 
    305         Add(hyokkaus); 
     316     
     317 
     318        if (energiaLaskuri.Value > 0) 
     319        { 
     320            energiaLaskuri.Value--; 
     321            Add(hyokkaus); 
     322            if (energiaLaskuri.Value < 10) 
     323            { 
     324                 
     325                if (!energianKasvattaja.Enabled) 
     326                { 
     327                 energianKasvattaja.Start(); 
     328                } 
     329                 
     330            } 
     331        } 
     332 
    306333        hyokkaus.CanRotate = false; 
    307334        AxleJoint liitos = new AxleJoint(pelaaja, hyokkaus);   
     
    339366        if (kohde.Tag.Equals("vihu")) 
    340367        { 
    341             TuhoaVihu(kohde); 
     368            OsuVihuun(kohde); 
     369             
    342370        } 
    343371    } 
    344     private void TuhoaVihu(PhysicsObject kohde) 
     372    private void OsuVihuun(PhysicsObject kohde) 
    345373    { 
    346374        //Explosion rajahdys = new Explosion(150); 
     
    351379 
    352380        (kohde as Vihu).ElamaLaskuri.Value--; 
    353         if ((kohde as Vihu).ElamaLaskuri.Value <= 0) kohde.Destroy(); 
     381        if ((kohde as Vihu).ElamaLaskuri.Value <= 0) 
     382        { 
     383            kohde.Destroy(); 
     384            vihollistenMaara.Value--; 
     385        } 
    354386    } 
    355387 
     
    370402    { 
    371403 
    372         Explosion rajahdys = new Explosion(50); 
    373  
    374         rajahdys.Position = pelaaja.Position; 
    375         Add(rajahdys); 
     404         
     405        //IsPaused = true; 
     406        //pelaaja.Image = kuollut; 
     407        //MessageDisplay.Add("aodihb"); 
     408        //Label teksti = new Label("GAME OVER!!!"); 
     409       //teksti.TextScale = new Vector(3, 3); 
     410       //Add(teksti); 
     411       //teksti.Color = Color.Transparent; 
     412     
    376413        IsPaused = true; 
    377  
    378         pelaaja.Destroy(); 
    379         MessageDisplay.Add("Hävisit pelin"); 
    380  
    381         Label teksti = new Label("PELI LOPPUI!!!"); 
    382         teksti.TextScale = new Vector(3, 3); 
    383         Add(teksti); 
    384         teksti.Color = Color.Red; 
    385  
     414        MultiSelectWindow valikko = new MultiSelectWindow("Game Over", "Restart", "Quit Game"); 
     415        valikko.AddItemHandler(1, Exit); 
     416        valikko.AddItemHandler(0, delegate { AloitaPeli(); }); 
     417        valikko.Color = Color.Black; 
     418        valikko.Color = Color.Transparent; 
     419        valikko.SelectionColor = Color.Black; 
     420        valikko.Image = valikonKuva; 
     421        Add(valikko); 
     422     
     423     
    386424        
    387425    } 
     426    void AloitaPeli() 
     427    { 
     428        ClearAll(); 
     429        IsPaused = false; 
     430        Mouse.IsCursorVisible = false; 
     431       
     432 
     433        Level.Background.Image = taustaKuva; 
     434        Level.Background.TileToLevel(); 
     435        Camera.StayInLevel = true; 
     436 
     437 
     438        //GameObject taustaPilvet = new GameObject(10000, 10000); 
     439        // taustaPilvet.Image = taustaKuva; 
     440        //Add(taustaPilvet, -3); 
     441        //Layers[-3].RelativeTransition = new Vector(0.5, 0.5); 
     442 
     443 
     444 
     445        SmoothTextures = false; 
     446        Level.Background.Color = Color.Brown; 
     447 
     448        //hahmonLiike = LoadAnimation("hahmo"); 
     449 
     450        LuoKentta(); 
     451 
     452        LisaaOhjaimet(); 
     453 
     454        LuoEnkkaLaskuri(); 
     455 
     456        LuoEnergiaLaskuri(); 
     457 
     458 
     459 
     460 
     461 
     462 
     463        Camera.Zoom(4); 
     464        
     465 
     466        turhake = new PhysicsObject(10, 10); 
     467        turhake.Color = Color.Gray; 
     468        Add(turhake); 
     469        Camera.FollowedObject = pelaaja; 
     470    } 
     471 
     472 
     473 
    388474     void OsuuViholliseen(PhysicsObject pelaaja, PhysicsObject vihu) 
    389475    { 
     
    396482     void LuoEnergiaLaskuri() 
    397483     { 
    398         EnergiaLaskuri = new DoubleMeter(10); 
    399         EnergiaLaskuri.MaxValue = 10; 
    400         EnergiaLaskuri.LowerLimit += ElamaLoppui; 
     484        energiaLaskuri = new DoubleMeter(10); 
     485        energiaLaskuri.MaxValue = 10; 
     486        //energiaLaskuri.LowerLimit += ElamaLoppui; 
    401487 
    402488         ProgressBar energiaPalkki = new ProgressBar(150, 20); 
    403489         energiaPalkki.X = Screen.Left + 150; 
    404          energiaPalkki.Y = Screen.Top - 10; 
    405          energiaPalkki.BindTo(EnergiaLaskuri); 
     490         energiaPalkki.Y = Screen.Top - 50; 
     491         energiaPalkki.BindTo(energiaLaskuri); 
     492         energiaPalkki.Color = Color.Blue; 
     493     
    406494         Add(energiaPalkki); 
     495         energiaPalkki.Color = Color.Blue; 
    407496     } 
    408497    
     
    418507        : base(leveys, korkeus) 
    419508    { 
    420         elamaLaskuri.LowerLimit += delegate { this.Destroy(); }; 
     509        //elamaLaskuri.LowerLimit += delegate { this.Destroy(); }; 
    421510    } 
    422511} 
Note: See TracChangeset for help on using the changeset viewer.