Ignore:
Timestamp:
2014-06-26 14:58:57 (7 years ago)
Author:
ukviveka
Message:
 
File:
1 edited

Legend:

Unmodified
Added
Removed
  • 2014/26/UkkoK/TasoHyppelyUkkoK/TasoHyppelyUkkoK/TasoHyppelyUkkoK/TasoHyppelyUkkoK.cs

    r5103 r5129  
    77using Jypeli.Widgets; 
    88 
     9 
     10class Vihu : PlatformCharacter 
     11{ 
     12    private IntMeter elamaLaskuri = new IntMeter(3, 0, 3); 
     13    public IntMeter ElamaLaskuri { get { return elamaLaskuri; } } 
     14 
     15    public Vihu(double leveys, double korkeus) 
     16        : base(leveys, korkeus) 
     17    { 
     18        elamaLaskuri.LowerLimit += delegate { this.Destroy(); }; 
     19    } 
     20} 
     21 
     22 
    923public class TasoHyppelyUkkoK : PhysicsGame 
    1024{ 
     
    1630    IntMeter kranuLaskuri; 
    1731 
     32 
    1833    //Image pelaajanKuva = LoadImage("sankari"); 
    19    // Image tahtiKuva = LoadImage("tahti"); 
     34    // Image tahtiKuva = LoadImage("tahti"); 
    2035    // Image aseenKuva = LoadImage("AK-47"); 
    2136    //Image moronKuva = LoadImage("Mörkö"); 
     
    3146    Image Devil = LoadImage("Devil"); 
    3247    Image Kolikko = LoadImage("Kolikko"); 
    33    // Image Dragon = LoadImage("Lohikäärme"); 
     48    // Image Dragon = LoadImage("Lohikäärme"); 
    3449    Image AmmoCrate = LoadImage("AmmoCrate"); 
    35     
    36  
     50    Image Portti = LoadImage("Portti"); 
     51 
     52    IntMeter pisteLaskuri; 
    3753    DoubleMeter elamaLaskuri; 
    3854 
    3955 
    40  
     56    //IntMeter ammusLaskuri; 
    4157 
    4258 
     
    4460 
    4561    PlasmaCannon pelaajan1Ase; 
     62 
     63    int Kenttanumero = 1; 
     64 
    4665 
    4766    public override void Begin() 
     
    5978        LuoElamaLaskuri(); 
    6079        LuoKranuLaskuri(); 
     80        LuoAmmusLaskuri(); 
     81        LuoKolikkoLaskuri(); 
    6182 
    6283        Camera.Follow(pelaaja1); 
     
    6788    void LuoKentta() 
    6889    { 
    69         TileMap kentta = TileMap.FromLevelAsset("kentta1"); 
     90        TileMap kentta = TileMap.FromLevelAsset("kentta" + Kenttanumero); 
    7091        kentta.SetTileMethod('#', LisaaTaso); 
    7192        kentta.SetTileMethod('*', LisaaTahti); 
    7293        kentta.SetTileMethod('P', LisaaPelaaja); 
    7394        kentta.SetTileMethod('V', LisaaVihollinen); 
     95        kentta.SetTileMethod('M', LisaaMaali); 
    7496        //kentta.SetTileMethod('S', LisaaSeina); 
    7597        kentta.SetTileMethod('L', LisaaLaatikko); 
    76         //LISÄÄ AMMUSLAATIKOT!!! 
     98 
    7799        kentta.Execute(RUUDUN_KOKO, RUUDUN_KOKO); 
    78100        Level.CreateBorders(); 
     
    109131        AddCollisionHandler(pelaaja1, "vihollinen", TormaaViholliseen); 
    110132        AddCollisionHandler(pelaaja1, "laatikko", TormaaLaatikkoon); 
     133        AddCollisionHandler(pelaaja1, "Maali", TormaaMaaliin); 
    111134 
    112135        Add(pelaaja1); 
     
    118141        pelaajan1Ase.Ammo.Value = 10; 
    119142        pelaajan1Ase.Ammo.LowerLimit += AmmuksetLoppuu; 
    120          
     143 
    121144 
    122145 
     
    160183    void TormaaTahteen(PhysicsObject hahmo, PhysicsObject tahti) 
    161184    { 
    162         maaliAani.Play(); 
    163         MessageDisplay.Add("Sait kolikon!"); 
     185        pisteLaskuri.Value++; 
     186        MessageDisplay.Add("Keräsit kolikon!"); 
    164187        tahti.Destroy(); 
    165188    } 
     189 
    166190    void AmmusOsui(PhysicsObject ammus, PhysicsObject kohde) 
    167191    { 
     
    170194        if (kohde.Tag == "vihollinen") 
    171195        { 
    172             kohde.Destroy(); 
    173             MessageDisplay.Add("Ammuit vihollisen!"); 
     196            //kohde.Destroy(); 
     197            (kohde as Vihu).ElamaLaskuri.Value--; 
     198            MessageDisplay.Add("Ammuit vihollista!"); 
    174199        } 
    175200 
    176          
     201 
    177202    } 
    178203 
     
    180205    void AmmuAseella(PlasmaCannon ase) 
    181206    { 
    182         PhysicsObject ammus = ase.Shoot(); 
    183  
    184  
    185         if (ammus != null) 
    186         { 
    187             ammus.Size *= 7; 
    188             ammus.Image = Salama; 
    189             ammus.MaximumLifetime = TimeSpan.FromSeconds(2.0); 
    190         } 
    191  
     207        //if (ammusLaskuri.Value > 0) 
     208        //{ 
     209            PhysicsObject ammus = ase.Shoot(); 
     210 
     211             
     212            if (ammus != null) 
     213            { 
     214                //ammusLaskuri.Value--; 
     215                ammus.Size *= 7; 
     216                ammus.Image = Salama; 
     217                ammus.MaximumLifetime = TimeSpan.FromSeconds(2.0); 
     218 
     219            } 
     220        //} 
    192221    } 
    193222 
    194223    void LisaaVihollinen(Vector paikka, double leveys, double korkeus) 
    195224    { 
    196         PlatformCharacter Vihollinen = new PlatformCharacter(leveys, korkeus); 
     225        Vihu Vihollinen = new Vihu(leveys, korkeus); 
    197226        Vihollinen.Position = paikka; 
    198227        Vihollinen.Mass = 4.0; 
    199228        Vihollinen.Image = Devil; 
    200229        Vihollinen.Tag = "vihollinen"; 
    201          
     230        Vihollinen.CollisionIgnoreGroup = 1; 
     231 
    202232        Add(Vihollinen); 
    203233 
     
    206236 
    207237        Vihollinen.Brain = tasoAivot; 
    208  
    209  
    210     } 
     238    } 
     239 
    211240    void HeitaKranaatti(PlatformCharacter pelaaja) 
    212241    { 
     
    219248            kranu.Explosion.Image = rajahtavaPilvi; 
    220249            kranuLaskuri.Value--; 
     250            kranu.CollisionIgnoreGroup = 1; 
    221251 
    222252            pelaaja.Throw(kranu, Angle.FromDegrees(30), 10000); 
     
    227257    { 
    228258        rajahdyksenKohde.Destroy(); 
    229         MessageDisplay.Add("Tuhosit vihollisen kranaatilla!"); 
    230     } 
     259        MessageDisplay.Add("Pilvipullosi tuhosi vihollisen!"); 
     260    } 
     261 
    231262    void VihuTormaaTahteen(PhysicsObject hahmo, PhysicsObject tahti) 
    232263    { 
    233264        MessageDisplay.Add("Vihollinen tuhosi tähden!"); 
    234265        tahti.Destroy(); 
    235          
    236     } 
     266 
     267    } 
     268 
    237269    void LisaaSeina(Vector paikka, double leveys, double korkeus) 
    238270    { 
     
    247279    { 
    248280        elamaLaskuri = new DoubleMeter(10); 
    249         elamaLaskuri.MaxValue = 5; 
     281        elamaLaskuri.MaxValue = 10; 
    250282        elamaLaskuri.LowerLimit += ElamaLoppui; 
    251283 
    252284        ProgressBar elamaPalkki = new ProgressBar(150, 20); 
    253         elamaPalkki.X =  0; 
     285        elamaPalkki.X = 0; 
    254286        elamaPalkki.Y = Screen.Top - 20; 
    255287        elamaPalkki.BindTo(elamaLaskuri); 
     
    270302        elamaLaskuri.Value--; 
    271303        MessageDisplay.Add("Vihollinen vahingoitti sinua!"); 
    272        
    273     } 
    274      
     304 
     305    } 
     306 
    275307 
    276308    void LuoKranuLaskuri() 
    277309    { 
    278         kranuLaskuri = new IntMeter(5);                
    279   
    280         Label pisteNaytto = new Label();  
     310        kranuLaskuri = new IntMeter(3); 
     311 
     312        Label pisteNaytto = new Label(); 
    281313        pisteNaytto.X = 0; 
    282         pisteNaytto.Y = Screen.Top -50; 
     314        pisteNaytto.Y = Screen.Top - 50; 
    283315        pisteNaytto.TextColor = Color.LightBlue; 
    284316        pisteNaytto.Color = Color.DarkBlue; 
     317        pisteNaytto.Title = "Pilvipulloja"; 
    285318 
    286319        pisteNaytto.BindTo(kranuLaskuri); 
     
    300333    void TormaaLaatikkoon(PhysicsObject hahmo, PhysicsObject laatikko) 
    301334    { 
     335 
     336        MessageDisplay.Add("Keräsit tarvikelaatikon!"); 
     337        laatikko.Destroy(); 
     338        kranuLaskuri.Value += 1; 
     339        pelaajan1Ase.Ammo.Value += 5; 
     340    } 
     341 
     342 
     343    void LuoAmmusLaskuri() 
     344    { 
     345        //ammusLaskuri = new IntMeter(pelaajan1Ase.Ammo.Value); 
     346 
     347        Label pisteNaytto = new Label(); 
     348        pisteNaytto.X = 0; 
     349        pisteNaytto.Y = Screen.Top - 100; 
     350        pisteNaytto.TextColor = Color.LightBlue; 
     351        pisteNaytto.Color = Color.DarkBlue; 
     352        pisteNaytto.Title = "Ammuksia"; 
     353 
     354        pisteNaytto.BindTo(pelaajan1Ase.Ammo); 
     355        Add(pisteNaytto); 
     356    } 
     357 
     358    void LisaaMaali(Vector paikka, double leveys, double korkeus) 
     359    { 
     360        PhysicsObject taso = PhysicsObject.CreateStaticObject(leveys, korkeus); 
     361        taso.Position = paikka; 
     362        taso.Color = Color.DarkBlue; 
     363        taso.Image = Portti; 
     364        taso.Tag = "Maali"; 
     365        Add(taso); 
     366    } 
     367 
     368    void TormaaMaaliin(PhysicsObject pelaaja1, PhysicsObject Maali) 
     369    { 
     370        if(pisteLaskuri == 44) 
     371        { 
     372            Kenttanumero++; 
     373            AloitaPeli(); 
     374        } 
     375        
     376    } 
     377    void LuoKolikkoLaskuri() 
     378    { 
     379        pisteLaskuri = new IntMeter(0); 
     380    } 
    302381         
    303         MessageDisplay.Add("Sait tarvikelaatikon!"); 
    304         laatikko.Destroy(); 
    305         kranuLaskuri.Value += 2; 
    306         pelaajan1Ase.Ammo.Value += 15; 
    307     } 
    308  
    309      
    310  
    311  
    312382} 
Note: See TracChangeset for help on using the changeset viewer.