Changeset 2560


Ignore:
Timestamp:
2011-08-04 14:59:44 (8 years ago)
Author:
onpernu
Message:

Talletus.

Location:
2011/31/OnniP
Files:
5 added
4 edited

Legend:

Unmodified
Added
Removed
  • 2011/31/OnniP/PerusPeli3/PerusPeli3/Peli.cs

    r2538 r2560  
    99public class Peli : PhysicsGame 
    1010{ 
     11    List<Label> valikonKohdat; 
     12    Image Ohjuskuva = LoadImage("Ohjus"); 
    1113    Image MansikanKuva = LoadImage("Transparent Mansikka"); 
     14    Image Pikselikatto = LoadImage("Pix"); 
    1215    Image PilviKuva = LoadImage("Pillvi"); 
    13     Image Pilvikuva2 = LoadImage ("Pillvi3"); 
     16    Image Pilvikuva2 = LoadImage("Pillvi3"); 
    1417    GameObject Sydän1; 
    1518    GameObject Sydän2; 
     
    1720    PhysicsObject Mansikka; 
    1821    PhysicsObject Maila; 
    19     
    20     Vector nopeusVasemmalle = new Vector(-100, 0); 
    21     Vector nopeusOikealle = new Vector (100, 0); 
     22 
     23    Vector nopeusVasemmalle = new Vector(-400, 0); 
     24    Vector nopeusOikealle = new Vector(400, 0); 
    2225    Vector Pysähdys = new Vector(0, 0); 
    23  
    24      
     26    IntMeter Pisteet; 
     27    bool Onkopeliloppunut = false; 
     28    ScoreList topLista = new ScoreList(10, false, 0); 
     29 
    2530 
    2631    public override void Begin() 
    2732 
    28     { 
    29         //luoMaila( Level.Left + 20.0, 0.0 ); 
    30  
    31         //luoMaila( Level.Right - 20.0, 0.0 ); 
    32  
     33   { 
     34        Valikko(); 
     35         
     36 
     37 
     38 
     39 
     40    } 
     41     
     42     
     43    void Aloitapeli() 
     44    { 
     45        ClearAll(); 
     46        PhysicsObject vasenreuna = Level.CreateLeftBorder(); 
     47        vasenreuna.X =-500; 
     48        vasenreuna.Y = 0; 
     49        PhysicsObject Oikeareuna = Level.CreateRightBorder(); 
     50        Oikeareuna.X = -500; 
     51        Oikeareuna.Y = 0; 
     52 
     53        Level.CreateRightBorder(); 
     54        laskuri(); 
    3355        Camera.ZoomToLevel(); 
    3456        PhysicsObject katto = PhysicsObject.CreateStaticObject(1300, 100); 
     
    3860        Add(katto); 
    3961        katto.Color = Color.Cyan; 
    40         PhysicsObject lattia =  PhysicsObject.CreateStaticObject(1300, 100); 
     62        PhysicsObject lattia = PhysicsObject.CreateStaticObject(1300, 100); 
    4163        lattia.Y = -400; 
    4264        Add(lattia); 
    4365        lattia.IsVisible = true; 
    44         luoMansikka (); 
     66        luoMansikka(); 
    4567        lattia.Color = Color.DarkGray; 
    46          
     68 
    4769        Level.BackgroundColor = Color.SkyBlue; 
    4870        luoPilvi(); 
    49         //MansikkaMaassa(); 
     71 
    5072        lattia.Tag = "lattia"; 
    5173        PhysicsObject oikeaSeinä = PhysicsObject.CreateStaticObject(300, 800); 
     
    7092        Sydän2.X = 350; 
    7193        Sydän2.Y = -330; 
    72         Add(Sydän2);  
     94        Add(Sydän2); 
    7395        Sydän3 = new GameObject(30, 30); 
    7496        Sydän3.Shape = Shape.Heart; 
     
    7799        Sydän3.Y = -330; 
    78100        Add(Sydän3); 
    79          
    80         Maila = PhysicsObject.CreateStaticObject (80, 20); 
     101 
     102        Maila = PhysicsObject.CreateStaticObject(80, 20); 
    81103        Maila.Color = Color.Black; 
    82104        Add(Maila); 
    83          Asetaohjaimet (); 
     105        Maila.Y = (-200); 
     106        Asetaohjaimet(); 
     107        Maila.Tag = "maila"; 
     108        LisaaLaskuri(); 
     109     
     110     
     111     
     112    } 
     113 
     114    void Valikko() 
     115    {  
     116     
     117         ClearAll(); 
     118 
     119        valikonKohdat = new List<Label>(); 
     120 
     121        Label kohta1 = new Label("Aloita uusi peli"); 
     122        kohta1.Position = new Vector(0, 40); 
     123        valikonKohdat.Add(kohta1); 
     124 
     125        Label kohta2 = new Label("Lopeta"); 
     126        kohta2.Position = new Vector(0, -40); 
     127        valikonKohdat.Add(kohta2); 
     128 
     129        foreach (Label valikonKohta in valikonKohdat) 
     130        { 
     131            Add(valikonKohta); 
     132        } 
     133 
     134        Mouse.ListenOn(kohta1, MouseButton.Left, ButtonState.Pressed, Aloitapeli , null); 
     135        Mouse.ListenOn(kohta2, MouseButton.Left, ButtonState.Pressed, Exit, null); 
    84136         
    85  
    86  
    87      
    88  
    89 } 
     137        Mouse.IsCursorVisible = true; 
     138        Mouse.ListenMovement(1.0, ValikossaLiikkuminen, null); 
     139        Keyboard.Listen(Key.Escape, ButtonState.Pressed, Exit, "Poistu"); 
     140        Level.Background.CreateGradient(Color.Black, Color.Red); 
     141        GameObject Rikselikatto = new GameObject(500, 500); 
     142        Rikselikatto.X = -400; 
     143        Rikselikatto.Image = Pikselikatto; 
     144        Rikselikatto.Y = 275; 
     145        Add(Rikselikatto); 
     146        GameObject Hikselikatto = new GameObject(500, 500); 
     147        Hikselikatto.X = 100; 
     148        Hikselikatto.Image = Pikselikatto; 
     149        Hikselikatto.Y = 200; 
     150        Add(Hikselikatto); 
     151        GameObject Mikselikatto = new GameObject(500, 500); 
     152        Mikselikatto.X = 100; 
     153        Mikselikatto.Image = Pikselikatto; 
     154        Mikselikatto.Y = 300; 
     155        Add(Mikselikatto); 
     156        GameObject Sikselikatto = new GameObject(500, 500); 
     157        Sikselikatto.X = 100; 
     158        Sikselikatto.Image = Pikselikatto; 
     159        Sikselikatto.Y = 250; 
     160        Add(Sikselikatto); 
     161        GameObject Nikselikatto = new GameObject(500, 500); 
     162        Nikselikatto.X = 100; 
     163        Nikselikatto.Image = Pikselikatto; 
     164        Nikselikatto.Y = 225; 
     165        Add(Nikselikatto); 
     166        GameObject Vikselikatto = new GameObject(500, 500); 
     167        Vikselikatto.X = 100; 
     168        Vikselikatto.Image = Pikselikatto; 
     169        Vikselikatto.Y = 275; 
     170        Add(Vikselikatto); 
     171        GameObject Zikselikatto = new GameObject(500, 500); 
     172        Zikselikatto.X = 600; 
     173        Zikselikatto.Image = Pikselikatto; 
     174        Zikselikatto.Y = 200; 
     175        Add(Zikselikatto); 
     176        GameObject Qikselikatto = new GameObject(500, 500); 
     177        Qikselikatto.X = 600; 
     178        Qikselikatto.Image = Pikselikatto; 
     179        Qikselikatto.Y = 300; 
     180        Add(Qikselikatto); 
     181        GameObject Fikselikatto = new GameObject(500, 500); 
     182        Fikselikatto.X = 600; 
     183        Fikselikatto.Image = Pikselikatto; 
     184        Fikselikatto.Y = 250; 
     185        Add(Fikselikatto); 
     186        GameObject Gikselikatto = new GameObject(500, 500); 
     187        Gikselikatto.X = 600; 
     188        Gikselikatto.Image = Pikselikatto; 
     189        Gikselikatto.Y = 225; 
     190        Add(Gikselikatto); 
     191        GameObject Tikselikatto = new GameObject(500, 500); 
     192        Tikselikatto.X = 600; 
     193        Tikselikatto.Image = Pikselikatto; 
     194        Tikselikatto.Y = 275; 
     195        Add(Tikselikatto);  
     196        timer2(); 
     197 
     198        
     199         
     200 
     201    } 
     202 
     203 
     204     
     205    void ValikossaLiikkuminen(AnalogState hiirenTila) 
     206    { 
     207        foreach (Label kohta in valikonKohdat) 
     208        { 
     209            if (Mouse.IsCursorOn(kohta)) 
     210            { 
     211                kohta.TextColor = Color.Red; 
     212            } 
     213            else 
     214            { 
     215                kohta.TextColor = Color.Lime; 
     216            } 
     217 
     218        } 
     219    } 
     220 
     221     
     222     
     223     
     224     
    90225    void luoMansikka() 
    91226    { 
     
    95230        Mansikka.Y = 300; 
    96231        Add(Mansikka); 
    97         Vector impulssi = new Vector(0, -100); 
     232        Vector impulssi = new Vector(0, -200); 
    98233        Mansikka.Hit(impulssi); 
    99234        Mansikka.Tag = "Mansikka"; 
    100235        AddCollisionHandler(Mansikka, MansikkaMaassa); 
    101236 
    102          
    103  
    104          
     237 
     238 
     239 
     240 
    105241    } 
    106242    void luoPilvi() 
    107      
    108 { 
    109     GameObject Pilvi = new GameObject (800, 400); 
    110     Pilvi.Image = PilviKuva; 
    111     Pilvi.Y = 200; 
    112     Pilvi.X = 300; 
    113     Add(Pilvi); 
    114     Pilvi.IsVisible = true; 
    115  
    116     GameObject Pilvi3 = new GameObject(800, 400); 
    117     Pilvi3.Image = Pilvikuva2; 
    118     Add (Pilvi3); 
    119     Pilvi3.X = -400; 
    120     Pilvi3.Y = 300; 
    121  
    122         } 
     243    { 
     244        GameObject Pilvi = new GameObject(800, 400); 
     245        Pilvi.Image = PilviKuva; 
     246        Pilvi.Y = 200; 
     247        Pilvi.X = 300; 
     248        Add(Pilvi); 
     249        Pilvi.IsVisible = true; 
     250 
     251        GameObject Pilvi3 = new GameObject(800, 400); 
     252        Pilvi3.Image = Pilvikuva2; 
     253        Add(Pilvi3); 
     254        Pilvi3.X = -400; 
     255        Pilvi3.Y = 300; 
     256 
     257    } 
    123258    void MansikkaMaassa(PhysicsObject tormaaja, PhysicsObject Kohde) 
    124259    { 
    125          
    126260        if (Kohde.Tag == "lattia") 
    127     { 
     261        { 
    128262            Explosion rajahdys = new Explosion(100); 
    129263            rajahdys.Position = tormaaja.Position; 
     
    131265            tormaaja.Destroy(); 
    132266            luoMansikka(); 
    133  
    134             if (!Sydän1.IsDestroyed) 
     267            Sydänkato(); 
     268 
     269 
     270 
     271        } 
     272 
     273 
     274 
     275        if (Kohde.Tag == "maila") 
     276        { 
     277            Explosion rajahdys2 = new Explosion(100); 
     278            rajahdys2.Position = tormaaja.Position; 
     279            Add(rajahdys2); 
     280            tormaaja.Destroy(); 
     281            luoMansikka(); 
     282            Sydänkato(); 
     283 
     284            if (Kohde.Tag == "ohjus") 
    135285            { 
    136                 Sydän1.Destroy(); 
    137                 return; 
     286                Explosion rajahdys3 = new Explosion(100); 
     287                rajahdys3.Position = tormaaja.Position; 
     288                Add(rajahdys3); 
     289                tormaaja.Destroy(); 
     290                luoMansikka(); 
     291                Sydänkato(); 
     292 
     293 
     294 
    138295            } 
    139              
    140               
    141     
    142             if (!Sydän2.IsDestroyed) 
    143             { 
    144                 Sydän2.Destroy(); 
    145                 return; 
    146             } 
    147  
    148  
    149             if (!Sydän3.IsDestroyed) 
    150             { 
    151                 Sydän3.Destroy(); 
    152                  
    153             } 
    154              
    155             else if (Sydän3.IsDestroyed) 
    156             { Exit(); } 
    157     }} 
     296        } 
     297    } 
    158298 
    159299    void Asetaohjaimet() 
    160300    { 
    161301        Keyboard.Listen(Key.Left, ButtonState.Down, Asetanopeus, "Liiku Vasemmalle", Maila, nopeusVasemmalle); 
    162         Keyboard.Listen(Key.Right, ButtonState.Down,Asetanopeus, "Liiku Oikealle", Maila, nopeusOikealle); 
    163         Keyboard.Listen(Key.Right,ButtonState.Released, Asetanopeus, "Pysähdys", Maila, Pysähdys); 
     302        Keyboard.Listen(Key.Right, ButtonState.Down, Asetanopeus, "Liiku Oikealle", Maila, nopeusOikealle); 
     303        Keyboard.Listen(Key.Right, ButtonState.Released, Asetanopeus, "Pysähdys", Maila, Pysähdys); 
    164304        Keyboard.Listen(Key.Left, ButtonState.Released, Asetanopeus, "Pysähdys", Maila, Pysähdys); 
    165      
    166     } 
    167  
    168  
    169     
    170  
    171     void Asetanopeus (PhysicsObject Maila, Vector nopeus) 
    172  
    173     {  
    174      
     305        Keyboard.Listen(Key.Space, ButtonState.Pressed, ohjus, "Ammu Ohjus"); 
     306        Keyboard.Listen(Key.Escape, ButtonState.Pressed, Exit, "Poistu"); 
     307    } 
     308 
     309 
     310 
     311 
     312    void Asetanopeus(PhysicsObject Maila, Vector nopeus) 
     313    { 
     314 
    175315        Maila.Velocity = nopeus; 
    176316 
    177      
    178      
    179     } 
    180       
    181     void luoMaila () 
    182  
    183     { 
    184         PhysicsObject Maila = PhysicsObject.CreateStaticObject( 20.0, 100.0 ); 
    185         Maila.Shape = Shape.Rectangle; 
    186         Maila.X = 0; 
    187         Maila.Y = -50; 
    188         Maila.Restitution = 1.0; 
    189         Add (Maila); 
    190  
    191        // return Maila; 
    192  
    193  
    194  
    195     } 
    196  
    197     
    198   
     317 
     318 
     319    } 
     320 
     321 
     322 
     323    void ohjus() 
     324    { 
     325        PhysicsObject ohjus = new PhysicsObject(30, 90); 
     326        ohjus.Image = Ohjuskuva; 
     327        ohjus.Y = Maila.Y + (30); 
     328        ohjus.X = Maila.X; 
     329        ohjus.IgnoresCollisionResponse = true; 
     330        Add(ohjus); 
     331        ohjus.Tag = "ohjus"; 
     332        ohjus.CanRotate = false; 
     333        AddCollisionHandler(ohjus, Ohjusosuma); 
     334        Vector Ylöspäin = new Vector(0, 300); 
     335        ohjus.Hit(Ylöspäin); 
     336        ohjus.MaximumLifetime = new TimeSpan(0, 0, 3); 
     337 
     338 
     339    } 
     340 
     341    void laskuri() 
     342    { 
     343        Timer ajastin = new Timer(); 
     344        ajastin.Interval = RandomGen.NextDouble(0.4, 1); 
     345        ajastin.Timeout += luoMansikka; 
     346        ajastin.Start(); 
     347 
     348 
     349 
     350    } 
     351 
     352    void Sydänkato() 
     353    { 
     354        if (!Sydän1.IsDestroyed) 
     355        { 
     356            Sydän1.Destroy(); 
     357            return; 
     358        } 
     359 
     360 
     361 
     362        if (!Sydän2.IsDestroyed) 
     363        { 
     364            Sydän2.Destroy(); 
     365            return; 
     366        } 
     367 
     368 
     369        if (!Sydän3.IsDestroyed) 
     370        { 
     371            Sydän3.Destroy(); 
     372 
     373        } 
     374 
     375        else if (Sydän3.IsDestroyed) 
     376        { 
     377            if (!Onkopeliloppunut) 
     378            Lopetapeli(); 
     379 
     380 
     381        } 
     382 
     383 
     384 
     385    } 
     386 
     387 
     388 
     389    void Ohjusosuma(PhysicsObject tormaaja, PhysicsObject Kohde) 
     390    { 
     391        if (Kohde.Tag == "Mansikka") 
     392        { 
     393            Explosion rajahdys = new Explosion(100); 
     394            rajahdys.Position = tormaaja.Position; 
     395            rajahdys.Force = 0; 
     396            Add(rajahdys); 
     397            tormaaja.Destroy(); 
     398            Kohde.Destroy(); 
     399            Pisteet.Value += 1; 
     400 
     401 
     402        } 
     403    } 
     404 
     405    IntMeter pistelaskuri(double x, double y) 
     406    { 
     407        IntMeter laskuri = new IntMeter(0); 
     408        laskuri.MaxValue = 1000; 
     409        Label naytto = new Label(); 
     410        naytto.BindTo(laskuri); 
     411        naytto.X = x; 
     412        naytto.Y = y; 
     413        naytto.TextColor = Color.Black; 
     414        naytto.BorderColor = Level.BackgroundColor; 
     415        naytto.Color = Level.BackgroundColor 
     416    ; 
     417        Add(naytto); 
     418 
     419        return laskuri; 
     420    } 
     421 
     422 
     423    void LisaaLaskuri() 
     424    { 
     425        Pisteet = pistelaskuri(550, 400); 
     426 
     427 
     428 
     429 
     430 
     431 
     432    } 
     433 
     434    void TallennaPisteet(Window sender) 
     435    { 
     436 
     437        DataStorage.Save<ScoreList>(topLista, "pisteet.xml"); 
     438    } 
     439 
     440 
     441 
     442 
     443 
     444 
     445    void Lopetapeli() 
     446    { 
     447        Onkopeliloppunut = true; 
     448        if (DataStorage.Exists("pisteet.xml")) 
     449            topLista = DataStorage.Load<ScoreList>(topLista, "pisteet.xml"); 
     450        HighScoreWindow topIkkuna = new HighScoreWindow("Pelin nimi tai jotain", 
     451                             "Parhaat pisteet", 
     452                             "Onneksi olkoon, pääsit listalle pisteillä %p! Syötä nimesi:", 
     453                             topLista, Pisteet); 
     454        topIkkuna.Closed += TallennaPisteet; 
     455        topIkkuna.OKButton.Clicked += new Action(Begin); 
     456         
     457       
     458        Add(topIkkuna); 
     459 
     460     } 
     461 
     462 
     463    void timer2() 
     464 
     465    {   
     466        Timer ajastin = new Timer(); 
     467        ajastin.Interval = RandomGen.NextDouble(0.4, 1); 
     468        ajastin.Timeout += Mansikka2; 
     469        ajastin.Start(); 
     470     
     471     
     472     
     473     
     474    } 
     475 
     476 
     477 
     478    void Mansikka2() 
     479 
     480{ 
     481 
     482    PhysicsObject Mansikka = new PhysicsObject(100, 100); 
     483    Mansikka.Image = MansikanKuva; 
     484    Mansikka.X = RandomGen.NextDouble(-500, 500); 
     485    Mansikka.Y = 600; 
     486    Add(Mansikka); 
     487    Vector alas = new Vector(0, -200); 
     488    Mansikka.Hit(alas); 
     489 
     490 
    199491 
    200492} 
    201      
    202         
    203      
    204      
    205      
    206  
    207      
    208      
    209    
    210      
    211       
    212       
    213       
    214  
    215      
    216      
    217      
    218  
    219     
    220      
    221   
    222  
    223  
    224  
    225  
    226      
    227       
    228          
    229      
    230     
    231  
    232  
    233  
    234  
    235  
    236  
    237  
    238  
     493 
     494 
     495 
     496} 
     497 
     498 
     499 
     500 
     501 
     502 
     503 
     504 
     505 
     506 
  • 2011/31/OnniP/PerusPeli3/PerusPeli3/PerusPeli3.csproj

    r2512 r2560  
    120120    <Content Include="Pillvi.png" /> 
    121121    <Content Include="Pillvi3.png" /> 
     122    <Content Include="Pix.png" /> 
    122123    <Content Include="Transparent Mansikka.png" /> 
    123124  </ItemGroup> 
  • 2011/31/OnniP/PerusPeli3/PerusPeli3Content/PerusPeli3Content.contentproj

    r2512 r2560  
    6565    </Compile> 
    6666  </ItemGroup> 
     67  <ItemGroup> 
     68    <Compile Include="Ohjus.png"> 
     69      <Name>Ohjus</Name> 
     70      <Importer>TextureImporter</Importer> 
     71      <Processor>TextureProcessor</Processor> 
     72    </Compile> 
     73  </ItemGroup> 
     74  <ItemGroup> 
     75    <Compile Include="Pix.png"> 
     76      <Name>Pix</Name> 
     77      <Importer>TextureImporter</Importer> 
     78      <Processor>TextureProcessor</Processor> 
     79    </Compile> 
     80  </ItemGroup> 
    6781  <Import Project="$(MSBuildExtensionsPath)\Microsoft\XNA Game Studio\$(XnaFrameworkVersion)\Microsoft.Xna.GameStudio.ContentPipeline.targets" /> 
    6882  <!--  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.