Changeset 5870 for 2015


Ignore:
Timestamp:
2015-06-04 15:59:05 (5 years ago)
Author:
jotapoti
Message:

peli melkein valmis

Location:
2015/23/OskuL
Files:
5 added
6 edited

Legend:

Unmodified
Added
Removed
  • 2015/23/OskuL/FysiikkaPeli2/FysiikkaPeli2/FysiikkaPeli2/space race.cs

    r5867 r5870  
    99public class FysiikkaPeli2 : PhysicsGame 
    1010{ 
     11    Image tynnyriKuva = LoadImage("hazarx2"); 
    1112    Image rajahdysKuva = LoadImage(""); 
    1213    SoundEffect rajahdysAani = LoadSoundEffect(""); 
    1314    PhysicsObject pelaaja1, pelaaja2; 
     15    PhysicsObject asteroidi; 
     16    PhysicsObject maali; 
     17 
     18    IntMeter pisteLaskuri1, pisteLaskuri2; 
    1419    DoubleMeter elamaLaskuri; 
    1520    DoubleMeter elamaLaskuri2; 
    1621    public override void Begin() 
    1722    { 
    18  
     23        LuoPistelaskuri1(); 
     24        LuoPistelaskuri2(); 
    1925        LuoKentta(); 
    2026        LuoOhjaimet(); 
     
    2430        Camera.FollowYMargin = 100; 
    2531        //Camera.StayInLevel = true; 
    26         elamaLaskuri = LuoElamaLaskuri(Screen.Left + 150, Screen.Top - 20); 
    27         elamaLaskuri2 = LuoElamaLaskuri(Screen.Left + 150, Screen.Top - 100); 
    28  
     32        elamaLaskuri = LuoElamaLaskuri(Screen.Left + 500, Screen.Top - 70, pelaaja1); 
     33        elamaLaskuri2 = LuoElamaLaskuri(Screen.Right - 500, Screen.Top - 70, pelaaja2); 
     34        
    2935 
    3036        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli"); 
     
    3339    { 
    3440        ColorTileMap ruudut = ColorTileMap.FromLevelAsset("SPACERACE"); 
    35  
    3641        ruudut.SetTileMethod(Color.Cyan, LuoPelaaja1); 
     42        ruudut.SetTileMethod(Color.White, LuoPistetynnyri); 
    3743        ruudut.SetTileMethod(Color.Gold, LuoPelaaja2); 
    3844        ruudut.SetTileMethod(Color.Black, LuoAsteroidi); 
     45        ruudut.SetTileMethod(Color.FromHexCode("0026FF"), LuoMaali); 
    3946        ruudut.SetTileMethod(Color.Red, LuoReuna); 
    40         Level.Background.CreateStars(); 
     47        //Level.Background.CreateStars(); 
    4148 
    4249 
    4350        ruudut.Execute(20, 20); 
     51 
     52        Level.Background.Color = Color.Black; 
     53        Level.Size = new Vector(3000.0, 1800.0); 
     54 
     55        Level.Background.Image = LoadImage("earth"); 
     56        Level.Background.ScaleToLevel(); 
    4457 
    4558        //GameObject tausta = new GameObject(LoadImage("Earth")); 
     
    5972    } 
    6073 
    61     DoubleMeter LuoElamaLaskuri(Double x, Double y) 
     74    DoubleMeter LuoElamaLaskuri(Double x, Double y, PhysicsObject pelaaja) 
    6275    { 
    6376        DoubleMeter elamaLaskuri = new DoubleMeter(10); 
    6477        elamaLaskuri.MaxValue = 10; 
    65         elamaLaskuri.LowerLimit += ElamaLoppui; 
     78 
     79        if (pelaaja.Tag.Equals("eka")) 
     80        { 
     81            elamaLaskuri.LowerLimit += ElamaLoppui1; 
     82        } 
     83 
     84        if (pelaaja.Tag.Equals("toka")) 
     85        { 
     86            elamaLaskuri.LowerLimit += ElamaLoppui2; 
     87        } 
    6688 
    6789        ProgressBar elamaPalkki = new ProgressBar(150, 20); 
     
    7799    } 
    78100 
    79     void ElamaLoppui() 
     101 
     102    void LuoPistelaskuri1() 
     103    { 
     104        pisteLaskuri1 = new IntMeter(0); 
     105 
     106        Label pisteNaytto = new Label(); 
     107        pisteNaytto.X = Screen.Left + 500; 
     108        pisteNaytto.Y = Screen.Top - 100; 
     109        pisteNaytto.TextColor = Color.Black; 
     110        pisteNaytto.Color = Color.White; 
     111        pisteNaytto.Title = "Pisteet"; 
     112        pisteNaytto.BindTo(pisteLaskuri1); 
     113        IntMeter keratytEsineet = new IntMeter(0); 
     114        pisteLaskuri1.MaxValue = 5; 
     115        pisteLaskuri1.UpperLimit += delegate { KaikkiKeratty(pelaaja1); }; 
     116        Add(pisteNaytto); 
     117    } 
     118 
     119    void LuoPistelaskuri2() 
     120    { 
     121        pisteLaskuri2 = new IntMeter(0); 
     122 
     123        Label pisteNaytto = new Label(); 
     124        pisteNaytto.X = Screen.Right - 500; 
     125        pisteNaytto.Y = Screen.Top - 100; 
     126        pisteNaytto.TextColor = Color.Black; 
     127        pisteNaytto.Color = Color.White; 
     128        pisteNaytto.Title = "Pisteet"; 
     129        pisteNaytto.BindTo(pisteLaskuri2); 
     130        IntMeter keratytEsineet = new IntMeter(0); 
     131        pisteLaskuri2.MaxValue = 5; 
     132        pisteLaskuri2.UpperLimit += delegate { KaikkiKeratty(pelaaja2); }; 
     133        Add(pisteNaytto); 
     134    } 
     135 
     136    void KaikkiKeratty(PhysicsObject pelaaja) 
     137    { 
     138        // "moi pelaaja " + pelaaja.Tag + "!!!" 
     139         
     140        // moi pelaaja eka!!! 
     141 
     142        MessageDisplay.Add("Maali auki " + pelaaja.Tag + "lle pelaajalle"); 
     143        AktivoiMaali(pelaaja); 
     144    } 
     145 
     146    void  ElamaLoppui1() 
    80147    { 
    81148        MessageDisplay.Add("Hävisit, paremmin ensikerralla"); 
     
    86153        Keyboard.Disable(Key.Down); 
    87154    } 
     155 
     156    void ElamaLoppui2() 
     157    { 
     158        MessageDisplay.Add("Hävisit, paremmin ensikerralla"); 
     159        pelaaja2.Destroy(); 
     160        Keyboard.Disable(Key.W); 
     161        Keyboard.Disable(Key.A); 
     162        Keyboard.Disable(Key.S); 
     163        Keyboard.Disable(Key.D); 
     164    } 
    88165    private void LuoOhjaimet() 
    89166    { 
     
    142219    private void LuoAsteroidi(Vector paikka, double leveys, double korkeus) 
    143220    { 
    144         PhysicsObject asteroidi = new PhysicsObject(LoadImage("ASTEROIDI")); 
     221        asteroidi = new PhysicsObject(30, 30); 
     222        Image c = LoadImage("asteroid"); 
     223        asteroidi.Image = c; 
    145224        asteroidi.Position = paikka; 
    146         asteroidi.Tag = "ASTEROIDI"; 
     225        asteroidi.Tag = "asteroid"; 
    147226        Add(asteroidi); 
    148227    } 
    149228    private void LuoPelaaja1(Vector paikka, double leveys, double korkeus) 
    150229    { 
    151         pelaaja1 = new PhysicsObject(LoadImage("alus")); 
     230        pelaaja1 = new PhysicsObject(30, 30); 
     231        Image c = LoadImage("ship"); 
     232        pelaaja1.Image = c; 
    152233        pelaaja1.Position = paikka; 
    153234        pelaaja1.Tag = "eka"; 
     
    155236        Add(pelaaja1); 
    156237        pelaaja1.LinearDamping = 0.98; 
    157         AddCollisionHandler(pelaaja1, "ASTEROIDI", PelaajaOsuu); 
     238        AddCollisionHandler(pelaaja1, "asteroid", PelaajaOsuu); 
     239        AddCollisionHandler(pelaaja1, "piste", PelaajaOsuuPisteeseen); 
    158240    } 
    159241    private void LuoPelaaja2(Vector paikka, double leveys, double korkeus) 
    160242    { 
    161         pelaaja2 = new PhysicsObject(LoadImage("alus")); 
     243        pelaaja2 = new PhysicsObject(30, 30); 
     244        Image c = LoadImage("ship"); 
     245        pelaaja2.Image = c; 
     246 
    162247        pelaaja2.Position = paikka; 
    163248        pelaaja2.Tag = "toka"; 
     
    165250        Add(pelaaja2); 
    166251        pelaaja2.LinearDamping = 0.98; 
    167         AddCollisionHandler(pelaaja2, "ASTEROIDI", PelaajaOsuu); 
     252        AddCollisionHandler(pelaaja2, "asteroid", PelaajaOsuu); 
     253        AddCollisionHandler(pelaaja2, "piste", PelaajaOsuuPisteeseen); 
    168254    } 
    169255    private void LuoReuna(Vector paikka, double leveys, double korkeus) 
     
    174260        reuna.Color = Color.Transparent; 
    175261    } 
     262    private void LuoMaali(Vector paikka, double leveys, double korkeus) 
     263    { 
     264        maali = PhysicsObject.CreateStaticObject(20, 20); 
     265        maali.Position = paikka; 
     266 
     267        Add(maali); 
     268        maali.Color = Color.HotPink; 
     269    } 
     270    private void AktivoiMaali(PhysicsObject pelaaja) 
     271    { 
     272        AddCollisionHandler(maali, pelaaja.Tag, PeliLoppuu); 
     273        maali.Color = Color.Turquoise; 
     274    } 
     275 
     276    private void PeliLoppuu(PhysicsObject maali, PhysicsObject voittaja) 
     277    { 
     278        IsPaused = true; 
     279        Label voittoTeksti = new Label(voittaja.Tag + " voitti pelin."); 
     280        voittoTeksti.Color = Color.White; 
     281        voittoTeksti.Position = new Vector(0.0, 0.0); 
     282         
     283        Add(voittoTeksti); 
     284    } 
    176285    private void AloitaPeli() 
    177286    { 
    178287 
     288    } 
     289 
     290    void LuoPistetynnyri(Vector paikka, double leveys, double korkeus) 
     291    { 
     292        PhysicsObject tynnyri = new PhysicsObject(leveys, korkeus); 
     293        tynnyri.Position = paikka; 
     294        tynnyri.Image = tynnyriKuva; 
     295        tynnyri.Tag = "piste"; 
     296        Add(tynnyri); 
     297 
     298        
     299    } 
     300 
     301    void PelaajaOsuuPisteeseen(PhysicsObject pelaaja, PhysicsObject kohde) 
     302    { 
     303        kohde.Destroy(); 
     304        if (pelaaja.Tag.Equals("eka")) 
     305        { 
     306            pisteLaskuri1.Value += 1;  
     307        } 
     308        else if (pelaaja.Tag.Equals("toka")) 
     309        { 
     310            pisteLaskuri2.Value += 1; 
     311        } 
    179312    } 
    180313 
     
    203336        rajahdys.Position = kohde.Position; 
    204337        rajahdys.Speed = 500.0; 
    205         rajahdys.Force = 100; 
     338        rajahdys.Force = 10; 
    206339        //rajahdys.Image = rajahdysKuva; 
    207340        //rajahdys.Sound = rajahdysAani; 
  • 2015/23/OskuL/FysiikkaPeli2/FysiikkaPeli2/FysiikkaPeli2Content/FysiikkaPeli2Content.contentproj

    r5867 r5870  
    7878    </Compile> 
    7979  </ItemGroup> 
     80  <ItemGroup> 
     81    <Compile Include="asteroid.png"> 
     82      <Name>asteroid</Name> 
     83      <Importer>TextureImporter</Importer> 
     84      <Processor>TextureProcessor</Processor> 
     85    </Compile> 
     86    <Compile Include="hazarx2.png"> 
     87      <Name>hazarx2</Name> 
     88      <Importer>TextureImporter</Importer> 
     89      <Processor>TextureProcessor</Processor> 
     90    </Compile> 
     91    <Compile Include="ship.png"> 
     92      <Name>ship</Name> 
     93      <Importer>TextureImporter</Importer> 
     94      <Processor>TextureProcessor</Processor> 
     95    </Compile> 
     96  </ItemGroup> 
    8097  <Import Project="$(MSBuildExtensionsPath)\Microsoft\XNA Game Studio\$(XnaFrameworkVersion)\Microsoft.Xna.GameStudio.ContentPipeline.targets" /> 
    8198  <!--  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.