Changeset 2852 for 2012/23


Ignore:
Timestamp:
2012-06-07 19:38:23 (7 years ago)
Author:
lemilaht
Message:

2P
Bug fixed

Location:
2012/23/LeoL
Files:
3 added
1 edited

Legend:

Unmodified
Added
Removed
  • 2012/23/LeoL/Tasohyppelypeli1.cs

    r2823 r2852  
    1010{ 
    1111    string CurrentLevelFile = String.Empty; 
    12  
     12    SoundEffect JousiAani = LoadSoundEffect("Ampuu"); 
    1313    DoubleMeter elamaMittari; 
     14    DoubleMeter elamaMittari2; 
     15    DoubleMeter elamaMittari3; 
     16    DoubleMeter P2elamaMittari; 
     17    DoubleMeter P3elamaMittari; 
    1418    Image Ampujankuva = LoadImage("Ampuja"); 
    1519    Image DemoninKuva = LoadImage("Dem1.anm"); 
    1620    Image olionKuva = LoadImage("cafgar.anm"); 
    1721    Image magenKuva = LoadImage("Mage"); 
     22    Image maalinKuva = LoadImage("Maali"); 
     23    Image hunterKuva = LoadImage("HUntelaar"); 
     24    Image kavlorKuva = LoadImage("Kavlor"); 
    1825    Image[] pelaajanAnim = LoadImages("pelaaja", "Pelaaja2", "Pelaaja3"); 
    1926    Image[] pelaajanAnimPeilattu; 
    20      
     27    Image p2Kuva = LoadImage("P2"); 
     28 
    2129    double nopeusYlos = 1250; 
    2230    Vector nopeusOikea = new Vector(250, 0); 
     
    2533 
    2634    PlatformCharacter pelaaja; 
     35    PlatformCharacter pelaaja2; 
     36    PlatformCharacter pelaaja3; 
    2737 
    2838    public override void Begin() 
     
    3040        ClearAll(); 
    3141        MultiSelectWindow valikko = new MultiSelectWindow("Welcome to game", 
    32         "tutorial", "Start level 1", "Start level 2", "End"); 
     42        "P1", "P2", "Exit Game"); 
    3343        valikko.ItemSelected += PainettiinValikonNappia; 
    3444        Add(valikko); 
    35          
    36  
    37  
    38  
    39     } 
    40     void  
    41  
    42      lataaKenttä() 
    43     { 
    44     } 
     45    } 
     46        void PainettiinValikonNappia(int valinta) 
     47    { 
     48        switch (valinta) 
     49        { 
     50            case 0: 
     51                P1MSW(); 
     52                break; 
     53 
     54            case 1: 
     55                P2MSW(); 
     56                break; 
     57 
     58            case 2: 
     59                Exit(); 
     60                break; 
     61        } 
     62    } 
     63     
    4564 
    4665    void LuoKenttä(string levelFile) 
     
    5574        ruudut.SetTileMethod('-', LuoAmpuja); 
    5675        ruudut.SetTileMethod('=', LuoMaali); 
    57         ruudut.SetTileMethod(';', LuoMage); 
     76        ruudut.SetTileMethod('M', LuoMage); 
     77        ruudut.SetTileMethod('H', LuoHunter); 
     78        ruudut.SetTileMethod('K', LuoKavlor); 
     79        ruudut.SetTileMethod('E', EPotion); 
    5880        ruudut.Execute(20, 20); 
    5981        Level.Background.Color = Color.ForestGreen; 
    6082        Camera.Follow(pelaaja); 
     83        Gravity = new Vector(0, -5000); 
     84 
     85        CurrentLevelFile = levelFile; 
     86    } 
     87    void LuoKenttä2(string levelFile) 
     88    { 
     89        TileMap ruudut = TileMap.FromLevelAsset(levelFile); 
     90        ruudut.SetTileMethod('_', LuoPalikka); 
     91        ruudut.SetTileMethod('.', LuoSeina); 
     92        ruudut.SetTileMethod('"', LuoPiikki); 
     93        ruudut.SetTileMethod('3', LuoPelaaja3); 
     94        ruudut.SetTileMethod('+', LuoCafgar); 
     95        ruudut.SetTileMethod('#', LuoDemoni); 
     96        ruudut.SetTileMethod('-', LuoAmpuja); 
     97        ruudut.SetTileMethod('=', LuoMaali); 
     98        ruudut.SetTileMethod('M', LuoMage); 
     99        ruudut.SetTileMethod('H', LuoHunter); 
     100        ruudut.SetTileMethod('K', LuoKavlor); 
     101        ruudut.SetTileMethod('E', EPotion); 
     102        ruudut.SetTileMethod('2', LuoPelaaja2); 
     103        ruudut.Execute(20, 20); 
     104        Level.Background.Color = Color.ForestGreen; 
     105        Camera.Follow(pelaaja3); 
    61106        Gravity = new Vector(0, -5000); 
    62107 
     
    94139    void AsetaOhjaimet() 
    95140    { 
    96         Keyboard.Listen(Key.Escape, ButtonState.Down, ConfirmExit, "Poistu pelistä"); 
     141        Keyboard.Listen(Key.Escape, ButtonState.Down, Begin, "Poistu pelistä"); 
    97142        Keyboard.Listen(Key.A, ButtonState.Down, AsetaNopeus, "Pelaaja liikkuu vasemmalle", pelaaja, nopeusVasen); 
    98143        Keyboard.Listen(Key.A, ButtonState.Released, AsetaNopeus, null, pelaaja, Vector.Zero); 
     
    102147        Keyboard.Listen(Key.E, ButtonState.Pressed, PelaajaLyo, null); 
    103148        Keyboard.Listen(Key.Q, ButtonState.Pressed, PelaajaLyo2, null); 
     149  
     150         
     151         
     152    } 
     153    void AsetaOhjaimet2() 
     154    { 
     155        Keyboard.Listen(Key.Left, ButtonState.Down, AsetaNopeus2, "Pelaaja2 liikkuu vasemmalle", pelaaja2, nopeusVasen); 
     156        Keyboard.Listen(Key.Left, ButtonState.Released, AsetaNopeus2, null, pelaaja2, Vector.Zero); 
     157        Keyboard.Listen(Key.Up, ButtonState.Pressed, Hyppy2, "Pelaaja 1: Pelaaaja hyppää  ylös", pelaaja2, nopeusYlos); 
     158        Keyboard.Listen(Key.Right, ButtonState.Down, AsetaNopeus2, "Pelaaja 1: Pelaaja Liikkuu Oikealle", pelaaja2, nopeusOikea); 
     159        Keyboard.Listen(Key.Right, ButtonState.Released, AsetaNopeus2, null, pelaaja2, Vector.Zero); 
     160 
     161        Keyboard.Listen(Key.Escape, ButtonState.Down, Begin, "Poistu pelistä"); 
     162        Keyboard.Listen(Key.P, ButtonState.Down, Begin, "End Game"); 
     163        Keyboard.Listen(Key.A, ButtonState.Down, AsetaNopeus3, "Pelaaja liikkuu vasemmalle", pelaaja3, nopeusVasen); 
     164        Keyboard.Listen(Key.A, ButtonState.Released, AsetaNopeus3, null, pelaaja3, Vector.Zero); 
     165        Keyboard.Listen(Key.W, ButtonState.Pressed, Hyppy3, "Pelaaja 1: Pelaaaja hyppää  ylös", pelaaja3, nopeusYlos); 
     166        Keyboard.Listen(Key.D, ButtonState.Down, AsetaNopeus3, "Pelaaja 1: Pelaaja Liikkuu Oikealle", pelaaja3, nopeusOikea); 
     167        Keyboard.Listen(Key.D, ButtonState.Released, AsetaNopeus3, null, pelaaja3, Vector.Zero); 
     168        Keyboard.Listen(Key.E, ButtonState.Pressed, PelaajaLyo4, null); 
     169        Keyboard.Listen(Key.Q, ButtonState.Pressed, PelaajaLyo3, null); 
    104170    } 
    105171 
     
    108174        pelaaja = new PlatformCharacter(20, 40); 
    109175        pelaaja.Position = paikka; 
    110  
    111176        pelaaja.Color = Color.Aquamarine; 
    112177        pelaaja.Image = pelaajanKuva; 
    113178        pelaaja.CanRotate = false; 
    114179        AddCollisionHandler(pelaaja, "piikki", PelaajaKuolee); 
    115         AddCollisionHandler(pelaaja, "vihu", PelaajaMenettaa); 
     180        AddCollisionHandler(pelaaja, "Demoni", PelaajaMenettaa); 
    116181        AddCollisionHandler(pelaaja, "Ampuja", PelaajaMenettaa2); 
    117182        AddCollisionHandler(pelaaja, "cafgar", PelaajaMenettaa2); 
    118183        AddCollisionHandler(pelaaja, "maali", SaavutitMaalin); 
     184        AddCollisionHandler(pelaaja, "peruna", LisaaElamaa); 
    119185        PelaajanElamat(); 
    120186        pelaaja.Mass = 5000; 
    121187        pelaaja.Weapon = new PlasmaCannon(20, 5); 
    122188        pelaaja.Weapon.IsVisible = false; 
     189        Add(pelaaja); 
     190    } 
     191    void LuoPelaaja3(Vector paikka, double leveys, double korkeus) 
     192    { 
     193        pelaaja3 = new PlatformCharacter(20, 40); 
     194        pelaaja3.Position = paikka; 
     195        pelaaja3.Color = Color.Aquamarine; 
     196        pelaaja3.Image = pelaajanKuva; 
     197        pelaaja3.CanRotate = false; 
     198        AddCollisionHandler(pelaaja, "piikki", Pelaaja3Kuolee); 
     199        AddCollisionHandler(pelaaja, "Demoni", Pelaaja3Menettaa); 
     200        AddCollisionHandler(pelaaja, "Ampuja", Pelaaja3Menettaa2); 
     201        AddCollisionHandler(pelaaja, "cafgar", Pelaaja3Menettaa2); 
     202        AddCollisionHandler(pelaaja, "maali", SaavutitMaalin3); 
     203        AddCollisionHandler(pelaaja, "peruna", LisaaElamaa3); 
     204        PelaajanElamat3(); 
     205        pelaaja3.Mass = 5000; 
     206        pelaaja3.Weapon = new PlasmaCannon(20, 5); 
     207        pelaaja3.Weapon.IsVisible = false; 
     208        Add(pelaaja3); 
     209    } 
     210    void LuoPelaaja2(Vector paikka, double leveys, double korkeus) 
     211    { 
     212        pelaaja2 = new PlatformCharacter(20, 40); 
     213        pelaaja2.Position = paikka; 
     214        pelaaja2.Color = Color.Aquamarine; 
     215        pelaaja2.Image = p2Kuva; 
     216        pelaaja2.CanRotate = false; 
     217        AddCollisionHandler(pelaaja2, "piikki", Pelaaja2Kuolee); 
     218        AddCollisionHandler(pelaaja2, "Demoni", Pelaaja2Menettaa); 
     219        AddCollisionHandler(pelaaja2, "Ampuja", Pelaaja2Menettaa2); 
     220        AddCollisionHandler(pelaaja2, "cafgar", Pelaaja2Menettaa2); 
     221        AddCollisionHandler(pelaaja2, "maali", SaavutitMaalin2); 
     222        AddCollisionHandler(pelaaja2, "peruna", LisaaElamaa2); 
     223        PelaajanElamat2(); 
     224        pelaaja2.Mass = 5000; 
    123225         
    124         Add(pelaaja); 
     226        Add(pelaaja2); 
    125227    } 
    126228 
     
    128230    { 
    129231        Pelaaja.Velocity = nopeus; 
     232    } 
     233    void AsetaNopeus2(PhysicsObject Pelaaja2, Vector nopeus) 
     234    { 
     235        Pelaaja2.Velocity = nopeus; 
     236    } 
     237    void AsetaNopeus3(PhysicsObject Pelaaja3, Vector nopeus) 
     238    { 
     239        Pelaaja3.Velocity = nopeus; 
    130240    } 
    131241 
     
    136246        pelaaja.Destroy(); 
    137247        Replay(); 
    138  
    139     } 
     248    } 
     249    void Pelaaja2Kuolee(PhysicsObject pelaaja, PhysicsObject kohde) 
     250    { 
     251        pelaaja.Destroy(); 
     252        Replay2(); 
     253    } 
     254    void Pelaaja3Kuolee(PhysicsObject pelaaja, PhysicsObject kohde) 
     255    { 
     256        pelaaja.Destroy(); 
     257        Replay2(); 
     258    } 
     259 
    140260    void LuoCafgar(Vector paikka, double leveys, double korkeus) 
    141261    { 
    142         PhysicsObject Cafgar = PhysicsObject.CreateStaticObject(20, 40); 
     262        PhysicsObject Cafgar = new PhysicsObject(20, 40); 
    143263        Cafgar.Position = paikka; 
    144264        Cafgar.Image = olionKuva; 
     
    146266        Cafgar.Tag = "cafgar"; 
    147267        Cafgar.Brain = Aivot(); 
     268 
     269        Cafgar.Brain.Active = true; 
     270        Cafgar.CanRotate = false; 
     271        CafgarinElamat(Cafgar); 
     272        AddCollisionHandler(Cafgar, "ase", CafgarMenettaa); 
    148273        Add(Cafgar); 
    149274    } 
     275 
    150276    void LuoDemoni(Vector paikka, double leveys, double korkeus) 
    151277    { 
     
    154280        Demoni.Image = DemoninKuva; 
    155281        Demoni.Color = Color.Black; 
    156         Demoni.Tag = "vihu"; 
     282        Demoni.Tag = "Demoni"; 
    157283        Demoni.Brain = Aivot(); 
    158         AddCollisionHandler(Demoni, "piikki", DemoniKuolee); 
     284        AddCollisionHandler(Demoni, "piikki", DemoniTuhoutuu); 
    159285        AddCollisionHandler(Demoni, "Ampuja", DemoniKuolee); 
    160286        AddCollisionHandler(Demoni, "ammus", DemoniKuolee); 
     
    162288        Add(Demoni); 
    163289    } 
     290    void DemoniTuhoutuu(PhysicsObject Demoni, PhysicsObject kohde) 
     291    { 
     292        Demoni.Destroy(); 
     293    } 
    164294    void Hyppy(PlatformCharacter pelaaja, double hypynVoima) 
    165295    { 
    166296        pelaaja.Jump(hypynVoima); 
     297    } 
     298    void Hyppy2(PlatformCharacter pelaaja2, double hypynVoima) 
     299    { 
     300        pelaaja2.Jump(hypynVoima); 
     301    } 
     302    void Hyppy3(PlatformCharacter pelaaja3, double hypynVoima) 
     303    { 
     304        pelaaja3.Jump(hypynVoima); 
    167305    } 
    168306    Brain Aivot() 
     
    173311        seuraajanAivot.FollowAlways = true; 
    174312        seuraajanAivot.TargetCloseDistance = 20; 
    175  
    176  
    177  
     313        seuraajanAivot.StopWhenTargetClose = false; 
    178314        seuraajanAivot.TargetClose += mitaTapahtuuKunOllaanLahella; 
    179315        return seuraajanAivot; 
     
    184320    { 
    185321    } 
    186     void DemoniKuolee(PhysicsObject Demoni, PhysicsObject kohde) 
    187     { 
    188         Demoni.Destroy(); 
    189     } 
     322 
     323    void DemoniKuolee(PhysicsObject tormaaja, PhysicsObject kohde) 
     324    { 
     325        kohde.Destroy(); 
     326    } 
     327 
    190328    Brain AivotAmpuja() 
    191329    { 
     
    195333        seuraajanAivot.FollowAlways = true; 
    196334        seuraajanAivot.TargetCloseDistance = 200; 
    197  
    198  
    199  
    200335        seuraajanAivot.TargetClose += mitaTapahtuuKunOllaanLahella2; 
    201336        return seuraajanAivot; 
     
    213348        } 
    214349    } 
     350 
    215351    void LuoAmpuja(Vector paikka, double leveys, double korkeus) 
    216352    { 
     
    229365        Add(Ampuja); 
    230366    } 
     367 
    231368    void PelaajaMenettaa() 
    232369    { 
    233370    } 
     371 
    234372    void PelaajanElamat() 
    235373    { 
    236374        elamaMittari = new DoubleMeter(50); 
    237         elamaMittari.MaxValue = 25; 
     375        elamaMittari.MaxValue = 50; 
    238376        ProgressBar elamaPalkki = new ProgressBar(150, 10); 
    239377        elamaPalkki.BindTo(elamaMittari); 
     
    242380        elamaPalkki.X = Screen.Right - 150; 
    243381        elamaPalkki.Y = Screen.Top - 10; 
    244         elamaPalkki.Angle = Angle.RightAngle; 
     382        //elamaPalkki.Angle = Angle.RightAngle; 
    245383        elamaPalkki.BarColor = Color.Green; 
    246384        elamaPalkki.BorderColor = Color.White; 
    247         elamaPalkki.Angle = Angle.FromDegrees(90); 
     385        //elamaPalkki.Angle = Angle.FromDegrees(90); 
    248386        elamaMittari.Value = 50; 
    249  
    250387        elamaMittari.LowerLimit += PelaajaTuhoutuu; 
    251          
    252  
    253     } 
     388    } 
     389 
    254390    void PelaajaMenettaa(PhysicsObject pelaaja, PhysicsObject kohde) 
    255391    { 
     
    261397        pelaaja.Destroy(); 
    262398        MessageDisplay.Add("Dead"); 
     399 
    263400        Replay(); 
    264401    } 
     402 
    265403    void PelaajaMenettaa2(PhysicsObject pelaaja, PhysicsObject kohde) 
    266404    { 
    267405        elamaMittari.Value -= 5; 
    268406    } 
     407    void PelaajanElamat2() 
     408    { 
     409        P2elamaMittari = new DoubleMeter(50); 
     410        P2elamaMittari.MaxValue = 50; 
     411        ProgressBar P2elamaPalkki = new ProgressBar(150, 10); 
     412        P2elamaPalkki.BindTo(P2elamaMittari); 
     413        Add(P2elamaPalkki); 
     414 
     415       P2elamaPalkki.X = Screen.Right - 150; 
     416       P2elamaPalkki.Y = Screen.Top - 10; 
     417       P2elamaPalkki.BarColor = Color.Navy; 
     418       P2elamaPalkki.BorderColor = Color.White; 
     419        P2elamaMittari.Value = 50; 
     420        P2elamaMittari.LowerLimit += Pelaaja2Tuhoutuu; 
     421    } 
     422 
     423    void Pelaaja2Menettaa(PhysicsObject pelaaja2, PhysicsObject kohde) 
     424    { 
     425        P2elamaMittari.Value -= 3; 
     426    } 
     427 
     428    void Pelaaja2Tuhoutuu(double mittarinArvo) 
     429    { 
     430        pelaaja.Destroy(); 
     431        MessageDisplay.Add("Dead"); 
     432 
     433        Replay2(); 
     434    } 
     435    void LisaaElamaa2(PhysicsObject pelaaja2, PhysicsObject potion) 
     436    { 
     437        potion.Destroy(); 
     438        P2elamaMittari.Value += 50; 
     439 
     440    } 
     441 
     442    void Pelaaja2Menettaa2(PhysicsObject pelaaja, PhysicsObject kohde) 
     443    { 
     444        elamaMittari.Value -= 5; 
     445    } 
     446    void PelaajanElamat3() 
     447    { 
     448        P3elamaMittari = new DoubleMeter(50); 
     449        P3elamaMittari.MaxValue = 50; 
     450        ProgressBar P3elamaPalkki = new ProgressBar(150, 10); 
     451        P3elamaPalkki.BindTo(P3elamaMittari); 
     452        Add(P3elamaPalkki); 
     453 
     454        P3elamaPalkki.X = Screen.Left - 150; 
     455        P3elamaPalkki.Y = Screen.Top - 10; 
     456        P3elamaPalkki.BarColor = Color.Green; 
     457        P3elamaPalkki.BorderColor = Color.White; 
     458        P3elamaMittari.Value = 50; 
     459        P3elamaMittari.LowerLimit += Pelaaja3Tuhoutuu; 
     460    } 
     461 
     462    void Pelaaja3Menettaa(PhysicsObject pelaaja2, PhysicsObject kohde) 
     463    { 
     464        P2elamaMittari.Value -= 3; 
     465    } 
     466 
     467    void Pelaaja3Tuhoutuu(double mittarinArvo) 
     468    { 
     469        pelaaja.Destroy(); 
     470        MessageDisplay.Add("Dead"); 
     471 
     472        Replay2(); 
     473    } 
     474    void LisaaElamaa3(PhysicsObject pelaaja2, PhysicsObject potion) 
     475    { 
     476        potion.Destroy(); 
     477        P2elamaMittari.Value += 50; 
     478 
     479    } 
     480 
     481    void Pelaaja3Menettaa2(PhysicsObject pelaaja, PhysicsObject kohde) 
     482    { 
     483        elamaMittari.Value -= 5; 
     484    } 
     485 
    269486    void PelaajaLyo() 
    270487    { 
     488        PhysicsObject Miekka = new PhysicsObject(5, 5); 
     489        Miekka.IsVisible = false; 
     490        Miekka.Position = pelaaja.Position; 
     491        Miekka.Tag = "ase"; 
     492        AddCollisionHandler(Miekka, "Demoni", DemoniKuolee); 
     493        AddCollisionHandler(Miekka, "Ampuja", DemoniKuolee); 
     494        AddCollisionHandler(Miekka, "mage", DemoniKuolee); 
     495        Miekka.Push(new Vector(20, 0)); 
     496        Add(Miekka); 
    271497        pelaaja.Animation = new Animation(pelaajanAnim); 
    272498        pelaaja.Animation.Start(); 
    273499        pelaaja.Animation.Played += new Action(AnimValm); 
    274         pelaaja.Animation.FPS = 5; 
    275     } 
     500        pelaaja.Animation.FPS = 10; 
     501 
     502 
     503    } 
     504 
    276505    void AnimValm() 
    277506    { 
    278507        pelaaja.Animation.Stop(); 
    279508    } 
     509 
    280510    void PelaajaLyo2() 
    281511    { 
     512        PhysicsObject Miekka2 = new PhysicsObject(5, 5); 
     513        Miekka2.IsVisible = false; 
     514        Miekka2.Position = pelaaja.Position; 
     515        Miekka2.Tag = "ase"; 
     516        Miekka2.Push(new Vector(-20, 0)); 
     517        AddCollisionHandler(Miekka2, "Demoni", DemoniKuolee); 
     518        AddCollisionHandler(Miekka2, "Ampuja", DemoniKuolee); 
     519        AddCollisionHandler(Miekka2, "mage", DemoniKuolee); 
     520        Add(Miekka2); 
     521 
    282522        pelaaja.Animation = new Animation(pelaajanAnimPeilattu); 
    283523        pelaaja.Animation.Start(); 
    284524        pelaaja.Animation.Played += new Action(AnimValm2); 
    285         pelaaja.Animation.FPS = 5; 
    286     } 
     525        pelaaja.Animation.FPS = 10; 
     526 
     527    } 
     528 
    287529    void AnimValm2() 
    288530    { 
    289531        pelaaja.Animation.Stop(); 
    290532    } 
    291     void PainettiinValikonNappia(int valinta) 
     533    void PelaajaLyo4() 
     534    { 
     535        PhysicsObject Miekka3 = new PhysicsObject(5, 5); 
     536        Miekka3.IsVisible = false; 
     537        Miekka3.Position = pelaaja.Position; 
     538        Miekka3.Tag = "ase"; 
     539        AddCollisionHandler(Miekka3, "Demoni", DemoniKuolee); 
     540        AddCollisionHandler(Miekka3, "Ampuja", DemoniKuolee); 
     541        AddCollisionHandler(Miekka3, "mage", DemoniKuolee); 
     542        Miekka3.Push(new Vector(20, 0)); 
     543        Add(Miekka3); 
     544        pelaaja3.Animation = new Animation(pelaajanAnim); 
     545        pelaaja3.Animation.Start(); 
     546        pelaaja3.Animation.Played += new Action(AnimValm3); 
     547        pelaaja3.Animation.FPS = 10; 
     548 
     549 
     550    } 
     551 
     552    void AnimValm3() 
     553    { 
     554        pelaaja3.Animation.Stop(); 
     555    } 
     556 
     557    void PelaajaLyo3() 
     558    { 
     559        PhysicsObject Miekka4 = new PhysicsObject(5, 5); 
     560        Miekka4.IsVisible = false; 
     561        Miekka4.Position = pelaaja.Position; 
     562        Miekka4.Tag = "ase"; 
     563        Miekka4.Push(new Vector(-20, 0)); 
     564        AddCollisionHandler(Miekka4, "Demoni", DemoniKuolee); 
     565        AddCollisionHandler(Miekka4, "Ampuja", DemoniKuolee); 
     566        AddCollisionHandler(Miekka4, "mage", DemoniKuolee); 
     567        Add(Miekka4); 
     568 
     569        pelaaja.Animation = new Animation(pelaajanAnimPeilattu); 
     570        pelaaja.Animation.Start(); 
     571        pelaaja.Animation.Played += new Action(AnimValm5); 
     572        pelaaja.Animation.FPS = 10; 
     573 
     574    } 
     575 
     576    void AnimValm5() 
     577    { 
     578        pelaaja3.Animation.Stop(); 
     579    } 
     580 
     581 
     582    void PainettiinValikonNappiaP1(int valinta) 
    292583    { 
    293584        switch (valinta) 
    294585        { 
    295586            case 0: 
    296                  Aloitus("Tutorial map"); 
     587                Aloitus("Tutorial map", "Road To War"); 
    297588                break; 
    298589 
    299590            case 1: 
    300                 Aloitus("kartta"); 
     591                Aloitus("kartta", "Field Forces"); 
    301592                break; 
    302593 
    303594            case 2: 
    304                 Aloitus("Kentta2"); 
     595                Aloitus("Kentta2", "Far From Victory"); 
    305596                break; 
    306597 
    307598            case 3: 
     599                Aloitus("Kentta3", "Field Forces"); 
     600                break; 
     601 
     602            case 4: 
     603                Begin(); 
     604                break; 
     605 
     606            case 5: 
    308607                Exit(); 
    309608                break; 
    310609        } 
    311610    } 
    312     void Aloitus(string levelFile) 
    313     { 
    314          
     611    void PainettiinValikonNappiaP2(int valinta) 
     612    { 
     613        switch (valinta) 
     614        { 
     615            case 0: 
     616                Aloitus2("Tutorial map", "Road To War"); 
     617                break; 
     618 
     619            case 1: 
     620                Aloitus2("kartta", "Field Forces"); 
     621                break; 
     622 
     623            case 2: 
     624                Aloitus2("Kentta2", "Far From Victory"); 
     625                break; 
     626 
     627            case 3: 
     628                Aloitus2("Kentta3", "Field Forces"); 
     629                break; 
     630 
     631            case 4: 
     632                Begin(); 
     633                break; 
     634 
     635            case 5: 
     636                Exit(); 
     637                break; 
     638        } 
     639    } 
     640 
     641 
     642    void Aloitus(string levelFile, string kappale) 
     643    { 
     644 
    315645        pelaajanAnimPeilattu = Image.Mirror(pelaajanAnim); 
    316646 
    317647        LuoKenttä(levelFile); 
    318         lataaKenttä(); 
     648        MediaPlayer.Stop(); 
     649        MediaPlayer.Play(kappale); 
    319650        AsetaOhjaimet(); 
    320651    } 
    321      
     652    void Aloitus2(string levelFile, string kappale) 
     653    { 
     654 
     655        pelaajanAnimPeilattu = Image.Mirror(pelaajanAnim); 
     656 
     657        LuoKenttä2(levelFile); 
     658        MediaPlayer.Stop(); 
     659        MediaPlayer.Play(kappale); 
     660        AsetaOhjaimet2(); 
     661    } 
     662 
    322663 
    323664    void LuoMaali(Vector paikka, double leveys, double korkeus) 
    324665    { 
    325         PhysicsObject maali = PhysicsObject.CreateStaticObject(40, 40); 
     666        PhysicsObject maali = PhysicsObject.CreateStaticObject(40, 80); 
    326667        maali.Position = paikka; 
    327         maali.Shape = Shape.Pentagon ; 
     668        maali.Image = maalinKuva; 
    328669        maali.Tag = "maali"; 
    329670        maali.Color = Color.Blue; 
    330          
     671 
    331672        Add(maali); 
    332673    } 
    333674    void SaavutitMaalin(PhysicsObject pelaaja, PhysicsObject kohde) 
    334675    { 
     676        MediaPlayer.Stop(); 
     677        MediaPlayer.Play("Opening The"); 
    335678        YouWin(); 
    336679    } 
     680    void SaavutitMaalin2(PhysicsObject pelaaja, PhysicsObject kohde) 
     681    { 
     682        MediaPlayer.Stop(); 
     683        MediaPlayer.Play("Opening The"); 
     684        YouWin2(); 
     685    } 
     686    void SaavutitMaalin3(PhysicsObject pelaaja, PhysicsObject kohde) 
     687    { 
     688        MediaPlayer.Stop(); 
     689        MediaPlayer.Play("Opening The"); 
     690        YouWin2(); 
     691    } 
    337692    void Replay() 
    338693    { 
    339694        ClearAll(); 
    340         MultiSelectWindow valikko2 = new MultiSelectWindow("You Died",  
     695        MediaPlayer.Stop(); 
     696        MediaPlayer.Play("The Defeated"); 
     697        MultiSelectWindow valikko2 = new MultiSelectWindow("You Died", 
    341698        "Replay", "Menu", "End"); 
    342699        valikko2.ItemSelected += PainettiinValikonNappia2; 
    343700        Add(valikko2); 
    344701    } 
    345    void PainettiinValikonNappia2(int valinta) 
     702    void PainettiinValikonNappia2(int valinta) 
    346703    { 
    347704        switch (valinta) 
     
    364721    { 
    365722        ClearAll(); 
    366         MultiSelectWindow valikko3 = new MultiSelectWindow("You Win",  
     723        MultiSelectWindow valikko3 = new MultiSelectWindow("You Win", 
    367724        "Replay", "Menu", "End"); 
    368        valikko3.ItemSelected += PainettiinValikonNappia3; 
     725        valikko3.ItemSelected += PainettiinValikonNappia3; 
    369726        Add(valikko3); 
    370727    } 
     
    386743        } 
    387744    } 
    388      
     745    void YouWin2() 
     746    { 
     747        ClearAll(); 
     748        MultiSelectWindow valikko3 = new MultiSelectWindow("You Win", 
     749        "Replay", "Menu", "End"); 
     750        valikko3.ItemSelected += PainettiinValikonNappiaP2W; 
     751        Add(valikko3); 
     752    } 
     753    void PainettiinValikonNappiaP2W(int valinta) 
     754    { 
     755        switch (valinta) 
     756        { 
     757            case 0: 
     758                AloitaUudelleen2(); 
     759                break; 
     760 
     761            case 1: 
     762                Begin(); 
     763                break; 
     764 
     765            case 2: 
     766                Exit(); 
     767                break; 
     768        } 
     769    } 
     770 
    389771    void AloitaUudelleen() 
    390772    { 
    391773        ClearAll(); 
    392774        pelaajanAnimPeilattu = Image.Mirror(pelaajanAnim); 
    393  
    394775        LuoKenttä(CurrentLevelFile); 
    395         lataaKenttä(); 
    396776        AsetaOhjaimet(); 
    397777    } 
     778    void AloitaUudelleen2() 
     779    { 
     780        ClearAll(); 
     781        pelaajanAnimPeilattu = Image.Mirror(pelaajanAnim); 
     782        LuoKenttä2(CurrentLevelFile); 
     783        AsetaOhjaimet(); 
     784    } 
     785 
    398786    Brain AivotMage() 
    399787    { 
     
    403791        seuraajanAivot.FollowAlways = true; 
    404792        seuraajanAivot.TargetCloseDistance = 300; 
    405  
    406  
    407  
    408793        seuraajanAivot.TargetClose += mitaTapahtuuKunOllaanLahella3; 
    409794        return seuraajanAivot; 
    410795    } 
    411796 
    412  
    413797    void mitaTapahtuuKunOllaanLahella3(object lahettajaAivot, EventArgs e) 
     798    { 
     799        //Magen ase on sen lapsiolio eli Objects-listassa paikassa 0. 
     800 
     801        PhysicsObject mage = (lahettajaAivot as Brain).Owner as PhysicsObject; 
     802 
     803        if (mage == null || mage.Objects.Count < 1) return; 
     804 
     805        PlasmaCannon mageAse = (PlasmaCannon)mage.Objects[0]; 
     806        mageAse.Angle = (pelaaja.Position - (lahettajaAivot as Brain).Owner.Position).Angle; 
     807        PhysicsObject ammus = mageAse.Shoot(); 
     808 
     809        if (ammus != null) 
     810        { 
     811            AddCollisionHandler(ammus, pelaaja, PelaajaMenettaa2); 
     812            ammus.Tag = "ammus"; 
     813        } 
     814    } 
     815 
     816    void LuoMage(Vector paikka, double leveys, double korkeus) 
     817    { 
     818 
     819        PhysicsObject Mage = new PhysicsObject(20, 40); 
     820        Mage.IgnoresGravity = true; 
     821        Mage.CanRotate = false; 
     822        Mage.Position = paikka; 
     823        Mage.Image = magenKuva; 
     824        Mage.IsVisible = true; 
     825        Mage.Color = Color.Black; 
     826        Mage.Tag = "mage"; 
     827        Mage.Brain = AivotMage(); 
     828        PlasmaCannon pyssy = new PlasmaCannon(20, 5); 
     829        Mage.Add(pyssy); 
     830        pyssy.TimeBetweenUse = TimeSpan.FromSeconds(0.5); 
     831        pyssy.IsVisible = false; 
     832        Add(Mage); 
     833    } 
     834    Brain AivotHunter() 
     835    { 
     836        FollowerBrain seuraajanAivot = new FollowerBrain(pelaaja); 
     837        seuraajanAivot.Speed = 300; 
     838        seuraajanAivot.TargetFollowDistance = 200; 
     839        seuraajanAivot.FollowAlways = true; 
     840        seuraajanAivot.TargetCloseDistance = 200; 
     841 
     842 
     843 
     844        seuraajanAivot.TargetClose += mitaTapahtuuKunOllaanLahella4; 
     845        return seuraajanAivot; 
     846    } 
     847 
     848 
     849    void mitaTapahtuuKunOllaanLahella4(object lahettajaAivot, EventArgs e) 
    414850    { 
    415851        ((lahettajaAivot as Brain).Owner as PlatformCharacter).Weapon.Angle = (pelaaja.Position - (lahettajaAivot as Brain).Owner.Position).Angle; 
     
    421857        } 
    422858    } 
    423     void LuoMage(Vector paikka, double leveys, double korkeus) 
    424     { 
    425         PhysicsObject Mage = PhysicsObject.CreateStaticObject(20, 40); 
    426         Mage.Position = paikka; 
    427         Mage.Image = magenKuva; 
    428         Mage.Color = Color.Black; 
    429         Mage.Tag = "mage"; 
    430         Mage.Brain = AivotMage(); 
    431         Add(Mage); 
    432     } 
    433     
     859    void LuoHunter(Vector paikka, double leveys, double korkeus) 
     860    { 
     861 
     862        PlatformCharacter hunter = new PlatformCharacter(20, 40); 
     863 
     864        hunter.MaxVelocity = 400.400; 
     865        hunter.Position = paikka; 
     866        hunter.Image = hunterKuva; 
     867        hunter.Color = Color.Black; 
     868        hunter.Tag = "Ampuja"; 
     869        hunter.Brain = AivotHunter(); 
     870        AddCollisionHandler(hunter, "piikki", HuntKuoli); 
     871        hunter.Weapon = new PlasmaCannon(5, 3); 
     872        hunter.Weapon.TimeBetweenUse = TimeSpan.FromSeconds(3); 
     873        hunter.Weapon.IsVisible = false; 
     874        Add(hunter); 
     875    } 
     876    void LuoKavlor(Vector paikka, double leveys, double korkeus) 
     877    { 
     878 
     879        PhysicsObject kavlor = new PhysicsObject(20, 40); 
     880 
     881        kavlor.MaxVelocity = 400.400; 
     882        kavlor.Position = paikka; 
     883        kavlor.Image = kavlorKuva; 
     884        kavlor.Color = Color.Black; 
     885        kavlor.Tag = "kavlor"; 
     886        kavlor.Brain = AivotKavlor(); 
     887        kavlor.CanRotate = false; 
     888        PlasmaCannon pyssy = new PlasmaCannon(20, 5); 
     889        kavlor.Add(pyssy); 
     890        pyssy.TimeBetweenUse = TimeSpan.FromSeconds(3); 
     891        pyssy.IsVisible = false; 
     892        KavlorinElamat(kavlor); 
     893        AddCollisionHandler(kavlor, "ase", KavlorMenettaa); 
     894        Add(kavlor); 
     895    } 
     896    void HuntKuoli(PhysicsObject hunter, PhysicsObject kohde) 
     897    { 
     898        hunter.Destroy(); 
     899    } 
     900    void CafgarinElamat(PhysicsObject Cafgar) 
     901    { 
     902        elamaMittari2 = new DoubleMeter(25); 
     903        elamaMittari2.MaxValue = 50; 
     904        ProgressBar elamaPalkki2 = new ProgressBar(150, 10); 
     905        elamaPalkki2.BindTo(elamaMittari2); 
     906        Add(elamaPalkki2); 
     907 
     908        elamaPalkki2.X = Screen.Right - 150; 
     909        elamaPalkki2.Y = Screen.Top - 20; 
     910        //elamaPalkki.Angle = Angle.RightAngle; 
     911        elamaPalkki2.BarColor = Color.Red; 
     912        elamaPalkki2.BorderColor = Color.White; 
     913        //elamaPalkki.Angle = Angle.FromDegrees(90); 
     914        elamaMittari2.Value = 50; 
     915        //        elamaMittari.LowerLimit += CafgarKuolee; 
     916        elamaMittari2.LowerLimit += delegate 
     917        { 
     918            Cafgar.Destroy(); 
     919            YouWin(); 
     920        }; 
     921    } 
     922 
     923    void CafgarMenettaa(PhysicsObject Cafgar, PhysicsObject kohde) 
     924    { 
     925        elamaMittari2.Value -= 5; 
     926    } 
     927    void KavlorinElamat(PhysicsObject Kavlor) 
     928    { 
     929        elamaMittari3 = new DoubleMeter(25); 
     930        elamaMittari3.MaxValue = 50; 
     931        ProgressBar elamaPalkki3 = new ProgressBar(150, 10); 
     932        elamaPalkki3.BindTo(elamaMittari3); 
     933        Add(elamaPalkki3); 
     934 
     935        elamaPalkki3.X = Screen.Right - 150; 
     936        elamaPalkki3.Y = Screen.Top - 30; 
     937        //elamaPalkki.Angle = Angle.RightAngle; 
     938        elamaPalkki3.BarColor = Color.Purple; 
     939        elamaPalkki3.BorderColor = Color.White; 
     940        //elamaPalkki.Angle = Angle.FromDegrees(90); 
     941        elamaMittari3.Value = 50; 
     942        //        elamaMittari.LowerLimit += CafgarKuolee; 
     943        elamaMittari3.LowerLimit += delegate 
     944        { 
     945            Kavlor.Destroy(); 
     946            YouWin(); 
     947        }; 
     948    } 
     949 
     950    void KavlorMenettaa(PhysicsObject Kavlor, PhysicsObject kohde) 
     951    { 
     952        elamaMittari3.Value -= 5; 
     953    } 
     954    Brain AivotKavlor() 
     955    { 
     956        FollowerBrain seuraajanAivot = new FollowerBrain(pelaaja); 
     957        seuraajanAivot.Speed = 300; 
     958        seuraajanAivot.TargetFollowDistance = 100; 
     959        seuraajanAivot.FollowAlways = true; 
     960        seuraajanAivot.TargetCloseDistance = 200; 
     961        seuraajanAivot.TargetClose += mitaTapahtuuKunOllaanLahella5; 
     962        return seuraajanAivot; 
     963    } 
     964 
     965    void mitaTapahtuuKunOllaanLahella5(object lahettajaAivot, EventArgs e) 
     966    { 
     967        //Magen ase on sen lapsiolio eli Objects-listassa paikassa 0. 
     968 
     969        PhysicsObject kavlor = (lahettajaAivot as Brain).Owner as PhysicsObject; 
     970 
     971        if (kavlor == null || kavlor.Objects.Count < 1) return; 
     972 
     973        PlasmaCannon kavlorAse = (PlasmaCannon)kavlor.Objects[0]; 
     974        kavlorAse.Angle = (pelaaja.Position - (lahettajaAivot as Brain).Owner.Position).Angle; 
     975        PhysicsObject ammus = kavlorAse.Shoot(); 
     976 
     977        if (ammus != null) 
     978        { 
     979            AddCollisionHandler(ammus, pelaaja, PelaajaMenettaa2); 
     980            ammus.Tag = "ammus"; 
     981        } 
     982    } 
     983    void EPotion(Vector paikka, double leveys, double korkeus) 
     984    { 
     985        PhysicsObject potion = new PhysicsObject(20, 20); 
     986        potion.Position = paikka; 
     987        potion.CanRotate = false; 
     988        potion.Shape = Shape.Heart; 
     989        potion.Color = Color.Red; 
     990        potion.Tag = "peruna"; 
     991        Add(potion); 
     992    } 
     993    void LisaaElamaa(PhysicsObject pelaaja, PhysicsObject potion) 
     994    { 
     995        potion.Destroy(); 
     996        elamaMittari.Value += 50; 
     997         
     998    } 
     999    void P1MSW() 
     1000    { 
     1001        MultiSelectWindow valikko = new MultiSelectWindow("One Player", 
     1002        "tutorial", "Level 1", "Level 2", "Level 3", "Menu", "Exit"); 
     1003        valikko.ItemSelected += PainettiinValikonNappiaP1; 
     1004        Add(valikko); 
     1005    } 
     1006    void P2MSW() 
     1007    { 
     1008        MultiSelectWindow valikko = new MultiSelectWindow("Two Players", 
     1009        "tutorial", "Level 1", "Level 2", "Level 3", "Menu", "Exit"); 
     1010        valikko.ItemSelected += PainettiinValikonNappiaP2; 
     1011        Add(valikko); 
     1012    } 
     1013    void Replay2() 
     1014    { 
     1015        ClearAll(); 
     1016        MediaPlayer.Stop(); 
     1017        MediaPlayer.Play("The Defeated"); 
     1018        MultiSelectWindow valikko2 = new MultiSelectWindow("You Died", 
     1019        "Replay", "Menu", "End"); 
     1020        valikko2.ItemSelected += PainettiinValikonNappiaP22; 
     1021        Add(valikko2); 
     1022    } 
     1023    void PainettiinValikonNappiaP22(int valinta) 
     1024    { 
     1025        switch (valinta) 
     1026        { 
     1027 
     1028            case 0: 
     1029                AloitaUudelleen2(); 
     1030                break; 
     1031 
     1032            case 1: 
     1033                Begin(); 
     1034                break; 
     1035 
     1036            case 2: 
     1037                Exit(); 
     1038                break; 
     1039        } 
     1040    } 
    4341041} 
    435  
Note: See TracChangeset for help on using the changeset viewer.