Changeset 4112


Ignore:
Timestamp:
2013-06-13 11:56:27 (6 years ago)
Author:
nijulakk
Message:

Talletus.

Location:
2013/24/NicoL
Files:
40 added
2 edited

Legend:

Unmodified
Added
Removed
  • 2013/24/NicoL/Mastermind/Mastermind/Mastermind/Mastermind.cs

    r4088 r4112  
    77using Jypeli.Widgets; 
    88 
     9public class Maali : PhysicsObject 
     10{ 
     11    public bool pelaajaMaalissa = false; 
     12    public Maali(double leveys, double korkeus) 
     13        : base(leveys, korkeus) 
     14    { 
     15        IsUpdated = true; 
     16    } 
     17 
     18    public List<GameObject> PelaajatLahella(List<GameObject> oliot, double maxEtaisyys) 
     19    { 
     20        List<GameObject> pelaajatLahella = oliot.FindAll(x => x is Pelaaja && Vector.Distance(x.Position, this.Position) < maxEtaisyys); 
     21        return pelaajatLahella; 
     22    } 
     23 
     24    public override void Update(Time time) 
     25    { 
     26 
     27        base.Update(time); 
     28    } 
     29} 
     30 
    931public class Pelaaja : PlatformCharacter 
    1032{ 
     33    public bool onkoMaalissa = false; 
    1134    public Vector aloituspaikka; 
     35 
    1236    public Pelaaja(double leveys, double korkeus) 
    1337        : base(leveys, korkeus) 
    1438    { 
    15  
    1639    } 
    1740} 
     
    1942public class Mastermind : PhysicsGame 
    2043{ 
    21     void PääValikko() 
    22     { 
    23         MultiSelectWindow alkuValikko = new MultiSelectWindow("", "Aloita", "Lopeta"); 
    24         alkuValikko.AddItemHandler(0, AloitaAlusta); 
    25         alkuValikko.AddItemHandler(1, Exit); 
    26  
    27         alkuValikko.Buttons[0].Image = nappula; 
    28         alkuValikko.Buttons[1].Image = nappula; 
    29  
    30         alkuValikko.Image = tausta; 
    31         Add(alkuValikko); 
    32     } 
     44     
     45 
     46    int kenttaNro = 1; 
    3347 
    3448    const double nopeus = 200; 
     
    3650    const int RUUDUN_KOKO = 40; 
    3751 
     52    List<Pelaaja> pelaajat; 
    3853    Pelaaja pelaaja1; 
    3954    Pelaaja pelaaja2; 
     55 
     56    bool pelaaja1Maalissa = false; 
     57    bool pelaaja2Maalissa = false; 
     58 
     59    Animation pelaajanKuva2; 
     60    Animation pelaajanKuva; 
     61    Animation maaliAnim; 
     62    Image tahtiKuva = LoadImage("tahti"); 
    4063    Image maa = LoadImage("block"); 
    4164    Image vaara = LoadImage("Danger block"); 
    4265    Image tausta = LoadImage("Tausta"); 
    4366    Image pääTausta = LoadImage("Taustakuva"); 
    44     Image nappula=LoadImage("nappula"); 
    45  
    46  
    47     Image pelaajanKuva = LoadImage("norsu"); 
    48     Image tahtiKuva = LoadImage("tahti"); 
     67    Image nappula = LoadImage("nappula"); 
     68    Image taustuliini = LoadImage("taustablur"); 
     69     
    4970 
    5071    SoundEffect maaliAani = LoadSoundEffect("maali"); 
     
    5273    public override void Begin() 
    5374    { 
     75        IsFullScreen = false; 
     76        Level.Size = new Vector(1000, 800); 
    5477        Level.Background.Image = pääTausta; 
     78        Camera.ZoomToLevel(); 
     79        //Level.Background.TextureWrapSize = new Vector(Level.Width, Level.Height); 
     80        Level.Background.FitToLevel(); 
    5581        PääValikko(); 
    56     } 
     82 
     83        MediaPlayer.Play("musa"); 
     84        MediaPlayer.IsRepeating = true; 
     85 
     86    } 
     87 
     88    void PääValikko() 
     89    { 
     90        MultiSelectWindow alkuValikko = new MultiSelectWindow("", "Aloita","Kentät", "Lopeta"); 
     91        alkuValikko.AddItemHandler(0, AloitaAlusta); 
     92        alkuValikko.AddItemHandler(1, KysyKentta); 
     93        alkuValikko.AddItemHandler(2, Exit); 
     94 
     95        foreach (var item in alkuValikko.Buttons) 
     96        { 
     97            item.Image = nappula; 
     98        } 
     99        //alkuValikko.Buttons[0].Image = nappula; 
     100        //alkuValikko.Buttons[1].Image = nappula; 
     101        //alkuValikko.Buttons[2].Image = nappula; 
     102 
     103        alkuValikko.Image = tausta; 
     104        Add(alkuValikko); 
     105 
     106 
     107        
     108    } 
     109 
     110 
     111    void KysyKentta() 
     112    { 
     113        MultiSelectWindow kenttaValikko = new MultiSelectWindow("", "kentta1", "kentta2", "kenttä 3", "kentta4", "kentta5", "kenttä 6"); 
     114        kenttaValikko.ItemSelected += KenttaValittu; 
     115        Add(kenttaValikko); 
     116 
     117        kenttaValikko.Image = tausta; 
     118        foreach (var item in kenttaValikko.Buttons) 
     119        { 
     120            item.Image = nappula; 
     121        } 
     122    } 
     123 
     124 
     125    void KenttaValittu(int valinta) 
     126    { 
     127        kenttaNro = valinta+1; 
     128        SeuraavaKentta(); 
     129    } 
     130 
    57131 
    58132    void AloitaAlusta() 
    59133    { 
    60134        ClearAll(); 
    61         Gravity = new Vector(0, -1000); 
    62  
    63         LuoKentta(); 
    64         LisaaNappaimet(); 
     135        //Gravity = new Vector(0, -1000); 
     136         
     137 
     138        SeuraavaKentta(); 
     139       
    65140        // Camera.StayInLevel = true; 
    66141        Camera.Follow(pelaaja1, pelaaja2);//, pelaaja2); 
    67         //    Camera.ZoomFactor = 1.2; 
    68  
    69     } 
    70  
    71     void LuoKentta() 
    72     { 
    73         TileMap kentta = TileMap.FromLevelAsset("kentta1"); 
    74         kentta.SetTileMethod('#', LisaaTaso); 
    75         kentta.SetTileMethod('$', LisaaVTaso); 
    76         kentta.SetTileMethod('*', LisaaTahti); 
     142    } 
     143 
     144 
     145    void SeuraavaKentta() 
     146    { 
     147        ClearAll(); 
     148        pelaajat = new List<Pelaaja>(); 
     149        pelaajat.Clear(); pelaajanKuva2 = LoadAnimation("stillblue"); 
     150        pelaajanKuva = LoadAnimation("still"); 
     151        maaliAnim = LoadAnimation("maali"); 
     152 
     153        Gravity = new Vector(0, -1000); 
     154 
     155        if (kenttaNro == 1) LuoKentta("kentta1"); 
     156        else if (kenttaNro == 2) LuoKentta("kentta2"); 
     157        else if (kenttaNro == 3) LuoKentta("kentta3"); 
     158        else if (kenttaNro == 4) LuoKentta("kentta4"); 
     159        else if (kenttaNro == 5) LuoKentta("kentta5"); 
     160        else if (kenttaNro == 6) LuoKentta("kentta6"); 
     161        else if (kenttaNro == 7) LuoKentta("kentta7"); 
     162        else if (kenttaNro == 8) LuoKentta("kentta8"); 
     163        else if (kenttaNro == 9) LuoKentta("kentta9"); 
     164        else if (kenttaNro == 10) LuoKentta("kentta10"); 
     165        else if (kenttaNro == 11) LuoKentta("kentta11"); 
     166        else if (kenttaNro == 12) LuoKentta("kentta12"); 
     167        else if (kenttaNro == 13) LuoKentta("kentta13"); 
     168        else if (kenttaNro == 14) LuoKentta("kentta14"); 
     169        else if (kenttaNro == 15) LuoKentta("kentta15"); 
     170        else if (kenttaNro == 16) LuoKentta("kentta16"); 
     171        else if (kenttaNro > 16) Exit(); 
     172        LisaaNappaimet(); 
     173        Camera.Follow(pelaaja1, pelaaja2); 
     174 
     175    } 
     176 
     177    void LuoKentta(string kenttaTiedostonNimi) 
     178    { 
    77179        pelaaja1 = new Pelaaja(1, 1); 
    78180        pelaaja2 = new Pelaaja(1, 1); 
    79         kentta.SetTileMethod('A', LisaaPelaaja, pelaaja1, Color.Red); 
    80         kentta.SetTileMethod('B', LisaaPelaaja, pelaaja2, Color.Blue); 
     181        pelaajat.Add(pelaaja1); 
     182        pelaajat.Add(pelaaja2); 
     183 
     184        TileMap kentta = TileMap.FromLevelAsset(kenttaTiedostonNimi); 
     185        kentta.SetTileMethod('#', LisaaTaso); 
     186        kentta.SetTileMethod('*', LisaaTahti); 
     187        kentta.SetTileMethod('V', LisaaVTaso); 
     188        kentta.SetTileMethod('G', LisaaMaali, pelaaja1); 
     189        kentta.SetTileMethod('g', LisaaMaali, pelaaja2); 
     190        kentta.SetTileMethod('A', LisaaPelaaja, pelaaja1, pelaajanKuva); 
     191        kentta.SetTileMethod('B', LisaaPelaaja, pelaaja2, pelaajanKuva2); 
    81192        kentta.Execute(RUUDUN_KOKO, RUUDUN_KOKO); 
    82         Level.CreateBorders(1.0, false); 
    83         Level.Background.CreateGradient(Color.Blue, Color.Red); 
     193        Level.CreateBorders(); 
     194        Level.Background.Image = taustuliini; 
     195        Level.Background.TileToLevel(); 
     196        Level.BackgroundColor = Color.Gray; 
     197 
    84198    } 
    85199 
     
    88202        PhysicsObject taso = PhysicsObject.CreateStaticObject(leveys, korkeus); 
    89203        taso.Position = paikka; 
    90         taso.Color = Color.Purple; 
     204        taso.Color = Color.Green; 
    91205        taso.Image = maa; 
    92206        Add(taso); 
    93207    } 
     208 
     209 
     210    void LisaaTahti(Vector paikka, double leveys, double korkeus) 
     211    { 
     212        PhysicsObject tahti = PhysicsObject.CreateStaticObject(leveys, korkeus); 
     213        tahti.IgnoresCollisionResponse = true; 
     214        tahti.Position = paikka; 
     215        tahti.Image = tahtiKuva; 
     216        tahti.Tag = "tahti"; 
     217        Add(tahti); 
     218    } 
     219 
     220    void LisaaMaali(Vector paikka, double leveys, double korkeus, Pelaaja pelaaja) 
     221    { 
     222        Maali maali = new Maali(leveys, korkeus); 
     223        maali.MakeStatic(); 
     224        maali.Position = paikka; 
     225        maali.Animation = maaliAnim; 
     226        maali.Animation.Start(); 
     227        maali.Tag = "maali"; 
     228        Timer ajastin = new Timer(); 
     229        ajastin.Interval = 0.5; 
     230        ajastin.Timeout += 
     231             delegate 
     232             { 
     233                 List<GameObject> pelaajat = maali.PelaajatLahella(GetObjects(x => true), leveys * 2); 
     234                 if (pelaajat.Count == 0) 
     235                 { 
     236                     pelaaja.onkoMaalissa = false; 
     237                     return; 
     238                 } 
     239                 Pelaaja p = (Pelaaja)pelaajat[0]; 
     240                 if (p == pelaaja) 
     241                 { 
     242                     pelaaja.onkoMaalissa = true; 
     243                     if (this.pelaajat.TrueForAll(x => x.onkoMaalissa)) 
     244                     { 
     245                         MessageDisplay.Add("Kenttä selvitetty!"); 
     246                         ajastin.Stop(); 
     247                         // kenttaNro++; 
     248                         KenttäValikko(); 
     249                         //SeuraavaKentta(); 
     250 
     251                         return; 
     252                     } 
     253                 } 
     254             }; 
     255        ajastin.Start(); 
     256        Add(maali); 
     257 
     258    } 
     259 
     260    void LisaaPelaaja(Vector paikka, double leveys, double korkeus, Pelaaja pelaaja, Animation animaatio) //, PlatformCharacter pelaaja, Animation paikallaan, Animation kavely) 
     261    { 
     262        pelaaja.Size = new Vector(leveys * 0.8, korkeus * 0.8); 
     263        pelaaja.aloituspaikka = paikka; 
     264        pelaaja.Position = paikka; 
     265        pelaaja.Mass = 4.0; 
     266        pelaaja.Animation = animaatio; 
     267        pelaaja.Animation.Start(); 
     268        AddCollisionHandler<Pelaaja, PhysicsObject>(pelaaja, "vaara", TormaaVaaraan); 
     269        // AddCollisionHandler(pelaaja, "maali", maaliinPaasy); 
     270        Add(pelaaja); 
     271    } 
     272 
     273    //void LisaaPelaaja2(Vector paikka, double leveys, double korkeus) //, PlatformCharacter pelaaja, Animation paikallaan, Animation kavely) 
     274    //{ 
     275    //    pelaaja2 = new Pelaaja(leveys * 0.8, korkeus * 0.8); 
     276    //    pelaaja2.Position = paikka; 
     277    //    pelaaja2.Mass = 4.0; 
     278    //    pelaaja2.Animation = pelaajanKuva2; 
     279    //    pelaaja2.Animation.Start(); 
     280    //    AddCollisionHandler<Pelaaja, PhysicsObject>(pelaaja2, "tahti", TormaaTahteen); 
     281    //    AddCollisionHandler(pelaaja2, "maali", maaliinPaasy); 
     282    //    Add(pelaaja2); 
     283    //} 
     284 
    94285    void LisaaVTaso(Vector paikka, double leveys, double korkeus) 
    95286    { 
     
    103294    } 
    104295 
    105     void LisaaTahti(Vector paikka, double leveys, double korkeus) 
    106     { 
    107         PhysicsObject tahti = PhysicsObject.CreateStaticObject(leveys, korkeus); 
    108         tahti.IgnoresCollisionResponse = true; 
    109         tahti.Position = paikka; 
    110         tahti.Image = tahtiKuva; 
    111         tahti.Tag = "vaara"; 
    112         Add(tahti); 
    113     } 
    114  
    115     void LisaaPelaaja(Vector paikka, double leveys, double korkeus, Pelaaja pelaaja, Color vari) 
    116     { 
    117         pelaaja.Size = new Vector(leveys * 0.8, korkeus * 0.8); 
    118         pelaaja.Position = paikka; 
    119         pelaaja.aloituspaikka = paikka; 
    120         pelaaja.Mass = 4.0; 
    121         pelaaja.Color = vari; 
    122         pelaaja.Shape = Shape.Rectangle; 
    123         // AddCollisionHandler(pelaaja, "vaara", TormaaTahteen); 
    124         AddCollisionHandler<Pelaaja, PhysicsObject>(pelaaja, "vaara", AloitaKenttaAlusta); 
    125         Add(pelaaja); 
    126     } 
    127  
    128     void AloitaKenttaAlusta(Pelaaja pelaaja, PhysicsObject vaara) 
    129     { 
    130         pelaaja1.Stop(); 
    131         pelaaja2.Stop(); 
    132         pelaaja1.Position = pelaaja1.aloituspaikka; 
    133         pelaaja2.Position = pelaaja2.aloituspaikka; 
    134     } 
     296    //void maaliinPaasy(PhysicsObject tormaaja, PhysicsObject kohde) 
     297    //{ 
     298    //    if (tormaaja == pelaaja1) 
     299    //    { 
     300    //        pelaaja1Maalissa = true; 
     301    //    } 
     302    //    if (tormaaja == pelaaja2) 
     303    //    { 
     304    //        pelaaja2Maalissa = true; 
     305    //    } 
     306    //    if (pelaaja1Maalissa == true && pelaaja2Maalissa == true) 
     307    //    { 
     308    //        //MessageDisplay.Add("Selvitit kentän!"); 
     309    //    } 
     310 
     311    //} 
     312 
     313 
    135314 
    136315    void LisaaNappaimet() 
    137316    { 
    138317        Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet"); 
    139         Keyboard.Listen(Key.Escape, ButtonState.Pressed, VäliValikko 
    140             , "Valikko"); 
     318        Keyboard.Listen(Key.Escape, ButtonState.Pressed, VäliValikko, "Valikko"); 
    141319 
    142320        Keyboard.Listen(Key.Left, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, -nopeus); 
     
    154332        ControllerOne.Listen(Button.A, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus); 
    155333 
    156         //PhoneBackButton.Listen(ConfirmExit, "Lopeta peli"); 
    157     } 
    158  
    159     void Liikuta(PlatformCharacter hahmo, double nopeus) 
     334        PhoneBackButton.Listen(ConfirmExit, "Lopeta peli"); 
     335    } 
     336 
     337    void Liikuta(Pelaaja hahmo, double nopeus) 
    160338    { 
    161339        hahmo.Walk(nopeus); 
    162340    } 
    163341 
    164     void Hyppaa(PlatformCharacter hahmo, double nopeus) 
     342    void Hyppaa(Pelaaja hahmo, double nopeus) 
    165343    { 
    166344        hahmo.Jump(nopeus); 
    167345    } 
    168346 
    169     void TormaaTahteen(PhysicsObject hahmo, PhysicsObject vtaso) 
    170     { 
    171         AloitaAlusta(); 
    172         MessageDisplay.Add("Try again!"); 
    173  
    174     } 
     347    void TormaaVaaraan(Pelaaja pelaaja, PhysicsObject vtaso) 
     348    { 
     349        //AloitaAlusta(); 
     350        pelaajat.ForEach(x => x.Position = x.aloituspaikka); 
     351        MessageDisplay.Add("Yritä uudestaan!"); 
     352         
     353    } 
     354 
    175355    void VäliValikko() 
    176356    { 
     
    179359        //alkuValikko.AddItemHandler(0, AloitaAlusta); 
    180360        väliValikko.AddItemHandler(1, AloitaAlusta); 
    181         väliValikko.AddItemHandler(2, PääValikko); 
     361        väliValikko.AddItemHandler(2, delegate { 
     362            ClearAll(); 
     363            Begin(); 
     364        }); 
    182365 
    183366        väliValikko.Buttons[0].Image = nappula; 
    184         väliValikko.Buttons[1].Image =nappula; 
     367        väliValikko.Buttons[1].Image = nappula; 
    185368        väliValikko.Buttons[2].Image = nappula; 
    186369 
     
    189372    } 
    190373 
     374    void KenttäValikko() 
     375    { 
     376        MultiSelectWindow kenttäValikko = new MultiSelectWindow("Kenttä selvitetty!", "Seuraava", "Uudestaan", "Lopeta"); 
     377        kenttäValikko.AddItemHandler(0, delegate { ++kenttaNro; SeuraavaKentta(); }); 
     378        kenttäValikko.AddItemHandler(1, AloitaAlusta); 
     379        kenttäValikko.AddItemHandler(2, delegate {  
     380            ClearAll();  
     381            Begin(); }  
     382            ); 
     383 
     384        kenttäValikko.Buttons[0].Image = nappula; 
     385        kenttäValikko.Buttons[1].Image = nappula; 
     386        kenttäValikko.Buttons[2].Image = nappula; 
     387 
     388        kenttäValikko.Image = tausta; 
     389        Add(kenttäValikko); 
     390    } 
    191391} 
  • 2013/24/NicoL/Mastermind/Mastermind/MastermindContent/MastermindContent.contentproj

    r4088 r4112  
    4646  </ItemGroup> 
    4747  <ItemGroup> 
    48     <Compile Include="maali.wav"> 
    49       <Name>maali</Name> 
    50       <Importer>WavImporter</Importer> 
    51       <Processor>SoundEffectProcessor</Processor> 
    52     </Compile> 
    5348    <Compile Include="norsu.png"> 
    5449      <Name>norsu</Name> 
     
    121116    </Compile> 
    122117  </ItemGroup> 
     118  <ItemGroup> 
     119    <Compile Include="musa.mp3"> 
     120      <Name>musa</Name> 
     121      <Importer>Mp3Importer</Importer> 
     122      <Processor>SongProcessor</Processor> 
     123    </Compile> 
     124  </ItemGroup> 
     125  <ItemGroup> 
     126    <Compile Include="maali.anim"> 
     127      <Name>maali</Name> 
     128      <Importer>AnimationImporter</Importer> 
     129      <Processor>AnimationContentProcessor</Processor> 
     130    </Compile> 
     131  </ItemGroup> 
    123132  <Import Project="$(MSBuildExtensionsPath)\Microsoft\XNA Game Studio\$(XnaFrameworkVersion)\Microsoft.Xna.GameStudio.ContentPipeline.targets" /> 
    124133  <!--  To modify your build process, add your task inside one of the targets below and uncomment it.  
Note: See TracChangeset for help on using the changeset viewer.