Changeset 6061 for 2015/24/TaneliL


Ignore:
Timestamp:
2015-06-12 11:40:37 (4 years ago)
Author:
sieerinn
Message:
 
Location:
2015/24/TaneliL/FysiikkaPeli2
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • 2015/24/TaneliL/FysiikkaPeli2/FysiikkaPeli2/FysiikkaPeli2/FysiikkaPeli2.cs

    r5985 r6061  
    99public class FysiikkaPeli2 : PhysicsGame 
    1010{ 
    11     Vector nopeusYlös = new Vector(1000, 0); 
    1211    PhysicsObject Pelaaja; 
    1312 
    1413    PhysicsObject Alareuna; 
    1514    PhysicsObject Ylareuna; 
     15 
     16    Timer Ajastin; 
     17 
     18    IntMeter PisteLaskuri; 
     19    Timer LisataanPisteita; 
     20 
     21    EasyHighScore topLista = new EasyHighScore(); 
     22    Image Jouni = LoadImage("Jouninpää"); 
     23    Image AJ = LoadImage("AJpää"); 
     24    Image TrollFace = LoadImage("Problem"); 
     25    Image Reunat = LoadImage("Laidat"); 
     26    Image Ylalaita = LoadImage("Yläreuna"); 
     27 
     28 
     29    double liikutusNopeus = 70.0; 
     30    const double OLETUS_LIIKUTUS_NOPEUS = 70.0; 
     31 
    1632    public override void Begin() 
    1733    { 
    18  
     34        ClearAll(); 
    1935        LuoMaailma(0, 0); 
     36        LuoEste(); 
     37        LuoPisteLaskuri(); 
     38        LisataaPiste(); 
     39         
    2040        
    2141 
    2242         
    23         Keyboard.Listen(Key.Up, ButtonState.Down, LiikutaPelaajaa, "liikuta Pelaajaa Ylös", new Vector (0, 1000)); 
     43        Keyboard.Listen(Key.Up, ButtonState.Down, LiikutaPelaajaa, "liikuta Pelaajaa Ylös", new Vector (0, 1250)); 
     44        Keyboard.Listen(Key.Down, ButtonState.Down, LiikutaPelaajaa, "liikuta Pelaajaa Alas", new Vector(0, -1250)); 
    2445        PhoneBackButton.Listen(ConfirmExit, "Lopeta peli"); 
    2546        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli"); 
     47        Keyboard.Listen(Key.Space, ButtonState.Pressed, Begin, "Aloita Alusta"); 
    2648    } 
    2749 
    2850    void LuoMaailma(double x, double y) 
    2951    { 
    30         Pelaaja = new PhysicsObject(50, 50); 
     52        Pelaaja = new PhysicsObject(70, 70); 
    3153        Pelaaja.Shape = Shape.Circle; 
    3254        Pelaaja.Color = Color.GreenYellow; 
     55        Pelaaja.Image = Jouni; 
     56        Pelaaja.LinearDamping = 0.90; 
    3357        Pelaaja.X = x; 
    3458        Pelaaja.Y = y; 
    35         Gravity = new Vector(0, -500); 
    3659        Add(Pelaaja); 
     60 
     61        AddCollisionHandler(Pelaaja, "Este", PelaajaOsuu); 
    3762 
    3863        Alareuna = Level.CreateBottomBorder(0,true); 
     
    4065        Ylareuna = Level.CreateTopBorder(0, true); 
    4166        Ylareuna.Width = 2000; 
    42         PhysicsObject Este = PhysicsObject.CreateStaticObject(100,500); 
     67        Alareuna.Tag = Ylareuna.Tag = "Este"; 
     68        Alareuna.Image = Reunat; 
     69        Ylareuna.Image = Ylalaita; 
    4370 
    44         Add(Este); 
    4571 
    4672        //Level.CreateVerticalBorders(0, true, Color.White); 
    4773        Level.Background.Color = Color.Cyan; 
    4874        Camera.Follow(Pelaaja); 
     75        Camera.FollowsY = false; 
     76        Camera.ZoomFactor = 1.1; 
     77 
     78        Ajastin = new Timer(); 
     79        Ajastin.Interval = 7.5; 
     80        Ajastin.Timeout += LuoEste; 
     81        Ajastin.Start(); 
     82 
     83        liikutusNopeus = OLETUS_LIIKUTUS_NOPEUS; 
    4984    } 
    5085 
     
    5388    { 
    5489        base.Update(gameTime); 
    55         Pelaaja.Push(new Vector(70, 0)); 
     90        Pelaaja.Move(new Vector(liikutusNopeus, 0)); 
    5691        Alareuna.X = Pelaaja.X; 
    5792        Ylareuna.X = Pelaaja.X; 
    5893 
     94        liikutusNopeus++; 
     95    } 
     96 
     97    void LuoEste() 
     98    { 
     99        PhysicsObject Este = PhysicsObject.CreateStaticObject(200, 500); 
     100        Este.Color = Color.Gray; 
     101        Este.Y = RandomGen.NextDouble(Alareuna.Y + Este.Height * 0.5, Ylareuna.Y - Este.Height * 0.5); 
     102        Este.X = Pelaaja.X + 1000; 
     103        Este.Image = AJ; 
     104        Add(Este, -1); 
     105        Este.Tag = "Este"; 
     106 
     107        Ajastin.Interval = RandomGen.NextDouble(3, 5); 
     108    } 
     109 
     110 
     111    void LiikutaPelaajaa(Vector vektori) 
     112    { 
     113        Vector liikutus = new Vector(Pelaaja.Velocity.X, vektori.Y); 
     114        Pelaaja.Move(liikutus); 
     115    } 
     116 
     117    void PelaajaOsuu(PhysicsObject Pelaaja, PhysicsObject Kohde) 
     118    { 
     119        Pelaaja.Destroy(); 
     120        LisataanPisteita.Stop(); 
     121        Explosion rajahdys = new Explosion(1000); 
     122        rajahdys.Position = Pelaaja.Position; 
     123        rajahdys.Image = TrollFace; 
     124        rajahdys.UseShockWave = false; 
     125        Add(rajahdys, 1); 
     126        rajahdys.Destroyed += delegate 
     127        { 
     128            topLista.EnterAndShow(PisteLaskuri.Value); 
     129            topLista.HighScoreWindow.Closed += AloitaPeli; 
     130        }; 
     131    } 
     132 
     133    void AloitaAlusta() 
     134    { 
     135        PisteLaskuri.Value = PisteLaskuri.DefaultValue; 
     136    } 
     137 
     138    void LuoPisteLaskuri() 
     139    { 
     140        PisteLaskuri = new IntMeter(0); 
     141        PisteLaskuri.MaxValue = 50000000; 
     142        Label pisteNaytto = new Label(); 
     143        pisteNaytto.X = Screen.Left + 100; 
     144        pisteNaytto.Y = Screen.Top - 100; 
     145        pisteNaytto.TextColor = Color.Black; 
     146        pisteNaytto.Color = Color.White; 
     147        pisteNaytto.Title = "Pisteet"; 
     148        PisteLaskuri.Value = +1; 
     149        pisteNaytto.BindTo(PisteLaskuri); 
     150        Add(pisteNaytto); 
     151 
     152        LisataanPisteita = new Timer(); 
     153        LisataanPisteita.Interval = 0.1    ; 
     154        LisataanPisteita.Timeout += LisataaPiste; 
     155        LisataanPisteita.Start(); 
    59156 
    60157    } 
     158 
     159    void LisataaPiste() 
     160    { 
     161        PisteLaskuri.Value += 1; 
     162    } 
     163 
     164    public void AloitaPeli(Window senter) 
     165    {  
    61166     
    62     void LiikutaPelaajaa(Vector vektori) 
    63     { 
    64         Pelaaja.Push(vektori); 
    65167    } 
    66168} 
  • 2015/24/TaneliL/FysiikkaPeli2/FysiikkaPeli2/FysiikkaPeli2Content/FysiikkaPeli2Content.contentproj

    r5958 r6061  
    4545    <Reference Include="AnimationExtension" /> 
    4646  </ItemGroup> 
     47  <ItemGroup> 
     48    <Compile Include="Jouninpää.png"> 
     49      <Name>Jouninpää</Name> 
     50      <Importer>TextureImporter</Importer> 
     51      <Processor>TextureProcessor</Processor> 
     52    </Compile> 
     53  </ItemGroup> 
     54  <ItemGroup> 
     55    <Compile Include="AJpää.png"> 
     56      <Name>AJpää</Name> 
     57      <Importer>TextureImporter</Importer> 
     58      <Processor>TextureProcessor</Processor> 
     59    </Compile> 
     60  </ItemGroup> 
     61  <ItemGroup> 
     62    <Compile Include="Problem.png"> 
     63      <Name>Problem</Name> 
     64      <Importer>TextureImporter</Importer> 
     65      <Processor>TextureProcessor</Processor> 
     66    </Compile> 
     67  </ItemGroup> 
     68  <ItemGroup> 
     69    <Compile Include="Laidat.png"> 
     70      <Name>Laidat</Name> 
     71      <Importer>TextureImporter</Importer> 
     72      <Processor>TextureProcessor</Processor> 
     73    </Compile> 
     74  </ItemGroup> 
     75  <ItemGroup> 
     76    <Compile Include="Yläreuna.png"> 
     77      <Name>Yläreuna</Name> 
     78      <Importer>TextureImporter</Importer> 
     79      <Processor>TextureProcessor</Processor> 
     80    </Compile> 
     81  </ItemGroup> 
    4782  <Import Project="$(MSBuildExtensionsPath)\Microsoft\XNA Game Studio\$(XnaFrameworkVersion)\Microsoft.Xna.GameStudio.ContentPipeline.targets" /> 
    4883  <!--  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.