Changeset 4123 for 2013


Ignore:
Timestamp:
2013-06-13 15:04:39 (7 years ago)
Author:
eefadjuk
Message:

Talletus.

Location:
2013/24/EeroF
Files:
7 added
4 edited

Legend:

Unmodified
Added
Removed
  • 2013/24/EeroF/FysiikkaPeli1/FysiikkaPeli1/FysiikkaPeli1/FysiikkaPeli1.cs

    r4101 r4123  
    1212{    
    1313    IntMeter pisteLaskuri; 
    14     DoubleMeter pelaajienmaara; 
    1514    PhysicsObject Mikko; 
    1615    PhysicsObject Mikkokaveri; 
     
    2120    Image SaMiKu = LoadImage("Sahkomies"); 
    2221    Image mikkokaveri = LoadImage("MikkoKaveri2"); 
     22    Image Alku = LoadImage("Alku"); 
    2323    SoundEffect Ai = LoadSoundEffect("Ai"); 
    2424    SoundEffect Nam = LoadSoundEffect("Nam"); 
     
    2727    SoundEffect HamisKuoli = LoadSoundEffect("HamisKuoli"); 
    2828    SoundEffect Havio = LoadSoundEffect("Haviov2"); 
     29    SoundEffect Kuoli = LoadSoundEffect("Mikkokuoli"); 
     30    SoundEffect Kuoli2 = LoadSoundEffect("Mikkokaverikuoli"); 
    2931    Image Tahti = LoadImage("Tahti"); 
    3032    DoubleMeter elamaLaskuri; 
     
    3335    AssaultRifle pelaajan2Ase; 
    3436    EasyHighScore topLista = new EasyHighScore(); 
     37    int pelaajia; 
     38    double nopeusVakioAmmukselle = 1; 
    3539    public override void Begin() 
    3640    { 
    37  
    38  
     41        MultiSelectWindow valikko = new MultiSelectWindow("Tervetuloa peliin", 
     42            "Yksinpeli", "Kaksinpeli", "Lopeta"); 
     43        valikko.ItemSelected += PainettiinValikonNappia; 
     44        Add(valikko); 
     45        Camera.ZoomToLevel(); 
     46        Level.Background.Image = Alku; 
     47        Level.Background.ScaleToLevelByHeight(); 
     48 
     49    } 
     50 
     51    void PainettiinValikonNappia(int valinta) 
     52    { 
     53        switch (valinta) 
     54        { 
     55            case 0: 
     56                pelaajia = 1; 
     57                AloitaPeli(); 
     58                break; 
     59            case 1: 
     60                pelaajia = 2; 
     61                AloitaPeli(); 
     62                break; 
     63            default: 
     64                Exit(); 
     65                break; 
     66        } 
     67    } 
     68 
     69        void AloitaPeli() 
     70        { 
     71             
    3972        LuoPelaaja(); 
    4073        LuoKentta(); 
    41         AsetaOhjaimet(); 
     74         
    4275        LuoPistelaskuri(); 
    4376        LuoElamaLaskuri(); 
    4477        Level.Background.Image = taustaKuva; 
    4578        Level.Background.TileToLevel(); 
    46         Camera.Follow(Mikko, Mikkokaveri); 
     79        Camera.Follow(Mikko); 
    4780        AddCollisionHandler(Mikko, "Omena", CollisionHandler.DestroyTarget); 
    4881        AddCollisionHandler(Mikko, "Parannus", CollisionHandler.DestroyTarget); 
     
    5285        AddCollisionHandler(Mikko, "Omena", LisaaElamaa); 
    5386        AddCollisionHandler(Mikko, "Hamis", VahennaElamaa); 
    54  
     87        if (pelaajia == 2) 
     88        { 
     89            LuoKaveri(); 
     90 
     91            Camera.Follow(Mikko, Mikkokaveri); 
     92 
     93            AddCollisionHandler(Mikkokaveri, "Omena", CollisionHandler.DestroyTarget); 
     94            AddCollisionHandler(Mikkokaveri, "Parannus", CollisionHandler.DestroyTarget); 
     95            AddCollisionHandler(Mikkokaveri, "Parannus", Lisaa5Pistetta); 
     96            AddCollisionHandler(Mikkokaveri, "Parannus", ParannaAsetta); 
     97            AddCollisionHandler(Mikkokaveri, "Omena", LisaaPiste); 
     98            AddCollisionHandler(Mikkokaveri, "Omena", LisaaElamaa); 
     99            AddCollisionHandler(Mikkokaveri, "Hamis", VahennaElamaa); 
     100 
     101        } 
     102 
     103        AsetaOhjaimet(); 
    55104    } 
    56105 
     
    92141    { 
    93142        PhoneBackButton.Listen(ConfirmExit, "Lopeta peli"); 
    94         Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli"); 
     143        Keyboard.Listen(Key.Escape, ButtonState.Pressed, Lopetus, "Lopeta peli"); 
    95144        Keyboard.Listen(Key.Up, ButtonState.Down, PelaajaKavelee, "Pelaaja liikkuu", Mikko, 250.0); 
    96145        Keyboard.Listen(Key.Down, ButtonState.Down, PelaajaKavelee, "Pelaaja liikkuu taakse", Mikko, -250.0); 
     
    99148        Keyboard.Listen(Key.Left, ButtonState.Released, PysaytaPelaaja, null, Mikko); 
    100149        Keyboard.Listen(Key.Right, ButtonState.Released, PysaytaPelaaja, null, Mikko); 
    101         Keyboard.Listen(Key.D, ButtonState.Released, PysaytaPelaaja, null, Mikko); 
    102         Keyboard.Listen(Key.A, ButtonState.Released, PysaytaPelaaja, null, Mikko); 
     150        Keyboard.Listen(Key.P, ButtonState.Released, PysaytaPelaaja, null, Mikko); 
     151        Keyboard.Listen(Key.O, ButtonState.Released, PysaytaPelaaja, null, Mikko); 
    103152        Keyboard.Listen(Key.Right, ButtonState.Down, KaantyyOikealle, "Pelaaja kääntyy", Mikko); 
    104153        Keyboard.Listen(Key.Left, ButtonState.Down, KaantyyVasemmalle, "Pelaaja kääntyy", Mikko); 
    105         Keyboard.Listen(Key.A, ButtonState.Down, KaantyyVasemmalle2, "Pelaaja kääntyy vähän", Mikko); 
    106         Keyboard.Listen(Key.D, ButtonState.Down, KaantyyOikealle2, "Pelaaja kääntyy vähän", Mikko); 
    107         Keyboard.Listen(Key.Space, ButtonState.Down, Ampuu, "Ampuu", pelaajan1Ase); 
     154        Keyboard.Listen(Key.O, ButtonState.Down, KaantyyVasemmalle2, "Pelaaja kääntyy vähän", Mikko); 
     155        Keyboard.Listen(Key.P, ButtonState.Down, KaantyyOikealle2, "Pelaaja kääntyy vähän", Mikko); 
     156        Keyboard.Listen(Key.RightControl, ButtonState.Down, Ampuu, "Ampuu", pelaajan1Ase); 
    108157        Keyboard.Listen(Key.H, ButtonState.Pressed, ShowControlHelp, "Apu"); 
    109158 
    110         ControllerOne.Listen(Button.RightTrigger, ButtonState.Pressed, Ampuu, "Ampuu", pelaajan2Ase); 
    111         ControllerOne.ListenAnalog(AnalogControl.RightStick, 0.1, KuunteleeOikeaaTattia, "Kääntää pelaajaa", Mikkokaveri); 
    112         ControllerOne.Listen(Button.DPadUp, ButtonState.Down, PelaajaKavelee, "LiikuttaaPelaajaa", Mikkokaveri, 250.0); 
    113         ControllerOne.Listen(Button.DPadDown, ButtonState.Down, PelaajaKavelee, "LiikuttaaPelaajaa", Mikkokaveri, -250.0); 
    114         ControllerOne.Listen(Button.DPadUp, ButtonState.Released, PysaytaPelaaja, "LiikuttaaPelaajaa", Mikkokaveri); 
    115         ControllerOne.Listen(Button.DPadDown, ButtonState.Released, PysaytaPelaaja, "LiikuttaaPelaajaa", Mikkokaveri); 
    116     } 
    117  
     159        if (pelaajia == 2) 
     160        { 
     161            Keyboard.Listen(Key.W, ButtonState.Down, PelaajaKavelee, "Pelaaja liikkuu", Mikko, 250.0); 
     162            Keyboard.Listen(Key.S, ButtonState.Down, PelaajaKavelee, "Pelaaja liikkuu taakse", Mikko, -250.0); 
     163            Keyboard.Listen(Key.W, ButtonState.Released, PysaytaPelaaja, null, Mikkokaveri); 
     164            Keyboard.Listen(Key.S, ButtonState.Released, PysaytaPelaaja, null, Mikkokaveri); 
     165            Keyboard.Listen(Key.A, ButtonState.Released, PysaytaPelaaja, null, Mikkokaveri); 
     166            Keyboard.Listen(Key.D, ButtonState.Released, PysaytaPelaaja, null, Mikkokaveri); 
     167            Keyboard.Listen(Key.D, ButtonState.Released, PysaytaPelaaja, null, Mikkokaveri); 
     168            Keyboard.Listen(Key.A, ButtonState.Released, PysaytaPelaaja, null, Mikkokaveri); 
     169            Keyboard.Listen(Key.D, ButtonState.Down, KaantyyOikealle, "Pelaaja kääntyy", Mikkokaveri); 
     170            Keyboard.Listen(Key.A, ButtonState.Down, KaantyyVasemmalle, "Pelaaja kääntyy", Mikkokaveri); 
     171            Keyboard.Listen(Key.Q, ButtonState.Down, KaantyyVasemmalle2, "Pelaaja kääntyy vähän", Mikkokaveri); 
     172            Keyboard.Listen(Key.E, ButtonState.Down, KaantyyOikealle2, "Pelaaja kääntyy vähän", Mikkokaveri); 
     173            Keyboard.Listen(Key.LeftShift, ButtonState.Down, Ampuu, "Ampuu", pelaajan2Ase); 
     174 
     175            ControllerOne.Listen(Button.RightTrigger, ButtonState.Down, Ampuu, "Ampuu", pelaajan2Ase); 
     176            ControllerOne.ListenAnalog(AnalogControl.RightStick, 0.1, KuunteleeOikeaaTattia, "Kääntää pelaajaa", Mikkokaveri); 
     177            ControllerOne.Listen(Button.DPadUp, ButtonState.Down, PelaajaKavelee, "LiikuttaaPelaajaa", Mikkokaveri, 250.0); 
     178            ControllerOne.Listen(Button.DPadDown, ButtonState.Down, PelaajaKavelee, "LiikuttaaPelaajaa", Mikkokaveri, -250.0); 
     179            ControllerOne.Listen(Button.DPadUp, ButtonState.Released, PysaytaPelaaja, "LiikuttaaPelaajaa", Mikkokaveri); 
     180            ControllerOne.Listen(Button.DPadDown, ButtonState.Released, PysaytaPelaaja, "LiikuttaaPelaajaa", Mikkokaveri); 
     181        } 
     182    } 
    118183    void KuunteleeOikeaaTattia(AnalogState tila, PhysicsObject pelaaja) 
    119184    { 
     
    121186        pelaaja.AngularVelocity = 0; 
    122187    } 
    123  
    124188    void PelaajaKavelee(PhysicsObject Mikko, double nopeus) 
    125189    { 
     
    146210    void Ampuu(AssaultRifle ase) 
    147211    { 
     212         
    148213        PhysicsObject ammus = ase.Shoot(); 
    149214 
     
    152217            ammus.MaximumLifetime = TimeSpan.FromSeconds(2.0); 
    153218            ammus.Mass = 100; 
     219            ammus.Velocity *= nopeusVakioAmmukselle; 
    154220        } 
    155221    } 
     
    162228        Mikko.AngularVelocity = 1.0; 
    163229    } 
    164  
    165  
    166  
    167230    void AmmusOsui(PhysicsObject ammus, PhysicsObject kohde) 
    168231    { 
     
    173236            Vihu hamis = kohde as Vihu; 
    174237            hamis.ElamaLaskuri.Value -= 1; 
     238            hamis.Hit(Vector.FromLengthAndAngle(2500, ammus.Angle)); 
    175239        } 
    176240    } 
     
    180244        { HamisLahella.Play(); } 
    181245    } 
    182  
    183246    void LuoKentta() 
    184247    { 
     
    212275 
    213276        } 
     277 
    214278        for (int i = 0; i < 10; i++) 
    215279        { 
     
    218282        Level.CreateBorders(); 
    219283        Timer ajastin = new Timer(); 
    220         ajastin.Interval = 15; 
     284        ajastin.Interval = 7.5; 
    221285        ajastin.Timeout += LisaaVihuja; 
    222286        ajastin.Start(); 
     
    226290    void LisaaVihuja() 
    227291    { 
    228         for (int i = 0; i < 1; i++) 
     292        for (int i = 0; i < 2; i++) 
    229293        { 
    230294            LuoHamis(); 
    231295        } 
    232296    } 
    233  
    234  
    235  
    236297    void LuoOmena() 
    237298    { 
     
    246307        Omena.X = luku; 
    247308        Omena.Y = luku2; 
    248         Omena.Mass = 100000000000; 
     309        Omena.MakeStatic(); 
    249310        Add(Omena); 
    250311 
     
    252313 
    253314    } 
    254  
    255  
    256315    void LuoSaMi(double x, double y) 
    257316    { 
     
    270329 
    271330    } 
    272  
    273331    void LuoElamaLaskuri() 
    274332    { 
    275         elamaLaskuri = new DoubleMeter(10); 
    276         elamaLaskuri.MaxValue = 20; 
    277         elamaLaskuri.LowerLimit += ElamaLoppui; 
     333        elamaLaskuri = new DoubleMeter(10, 0, 20); 
     334        elamaLaskuri.LowerLimit += delegate { ElamaLoppui(Mikko); }; 
    278335 
    279336        LuoElamaPalkki(Screen.Left + 150, Screen.Top - 20, elamaLaskuri); 
    280337 
    281         elamalaskuri2 = new DoubleMeter(10); 
    282         elamalaskuri2.MaxValue = 20; 
    283         elamalaskuri2.LowerLimit += delegate { ElamaLoppui(Mikkokaveri); }; 
    284  
    285         LuoElamaPalkki(Screen.Right - 150, Screen.Top - 20, elamaLaskuri); 
    286     } 
    287  
     338        if (pelaajia == 2) 
     339        { 
     340            elamalaskuri2 = new DoubleMeter(10, 0, 20); 
     341            elamalaskuri2.LowerLimit += delegate { ElamaLoppui(Mikkokaveri); }; 
     342 
     343            LuoElamaPalkki(Screen.Right - 150, Screen.Top - 20, elamalaskuri2); 
     344        } 
     345    } 
    288346    void LuoElamaPalkki(double x, double y, DoubleMeter seurattava) 
    289347    { 
     
    309367    } 
    310368 
    311     void ElamaLoppui(PhysicsObject kuollut) 
    312     { 
    313  
     369    void ElamaLoppui(PhysicsObject kuollut)  
     370    { 
     371        kuollut.Destroy(); 
     372        if (kuollut.Image.Equals(mikkokuva)) Kuoli.Play(); 
     373        else Kuoli2.Play(); 
     374         
    314375    } 
    315376 
    316377    void TUHO() 
    317378    { 
    318         Havio.Play(); 
    319         Mikko.Destroy(); 
    320         topLista.EnterAndShow(pisteLaskuri.Value); 
    321         //   topLista.HighScoreWindow.Closed += AloitaPeli; 
     379        Timer ajastin = new Timer(); 
     380        ajastin.Interval = 1; 
     381        ajastin.Timeout += delegate 
     382        { 
     383 
     384            Havio.Play(); 
     385            topLista.EnterAndShow(pisteLaskuri.Value); 
     386        }; 
     387        ajastin.Start(1); 
     388             
     389             
     390            //   topLista.HighScoreWindow.Closed += AloitaPeli; 
     391        
    322392    } 
    323393    void LisaaElamaa(PhysicsObject tormaaja, PhysicsObject kohde) 
    324394    { 
    325         elamaLaskuri.Value++; 
     395        if (tormaaja.Image.Equals(mikkokuva)) elamaLaskuri.Value++; 
     396        else elamalaskuri2.Value++; 
     397        DoNextUpdate (delegate 
     398        { 
     399            tormaaja.AngularVelocity = 0; 
     400            tormaaja.AngularAcceleration = 0; 
     401        }); 
     402         
    326403    } 
    327404    void VahennaElamaa(PhysicsObject tormaaja, PhysicsObject kohde) 
    328405    { 
    329         elamaLaskuri.Value--; 
     406        if (tormaaja.Image.Equals(mikkokuva)) elamaLaskuri.Value--; 
     407        else elamalaskuri2.Value--; 
    330408 
    331409        Ai.Play(); 
     
    337415        Hamis.Tag = "Hamis"; 
    338416        Hamis.ElamaLaskuri.LowerLimit += Vihukuoli; 
    339  
     417        Hamis.CanRotate = false; 
    340418        FollowerBrain aivot = new FollowerBrain("pelaaja"); 
    341419        Hamis.Brain = aivot; 
     
    346424 
    347425        Hamis.Image = hamiskuva; 
    348         Hamis.Mass = 0.00000000000000000001; 
    349426 
    350427        int luku = RandomGen.NextInt(-5000, 5000); 
     
    360437        int luku = RandomGen.NextInt(-5000, 5000); 
    361438        int luku2 = RandomGen.NextInt(-5000, 5000); 
    362         PhysicsObject Parannus = new PhysicsObject(20, 20); 
     439        PhysicsObject Parannus = new PhysicsObject(50, 50); 
    363440        Parannus.Image = Tahti; 
    364441        Parannus.Tag = "Parannus"; 
     442        Parannus.MakeStatic(); 
    365443        //Parannus.Shape = Shape.Star; 
    366444        //Parannus.Color = Color.Yellow; 
     
    372450    void LuoPelaaja() 
    373451    { 
    374         Mikko = new PhysicsObject(70, 52.5); 
     452        Mikko = new PhysicsObject(70, 49); 
    375453        Mikko.Image = mikkokuva; 
    376454 
    377455        Mikko.Tag = "pelaaja"; 
     456        if (pelaajia == 2) 
     457            Mikko.Destroyed += delegate { if (Mikko.IsDestroyed && Mikkokaveri.IsDestroyed) TUHO(); }; 
     458        else Mikko.Destroyed += delegate { TUHO(); }; 
    378459        Add(Mikko); 
    379460        pelaajan1Ase = new AssaultRifle(30, 10); 
     
    382463        pelaajan1Ase.FireRate = 2; 
    383464 
    384         pelaajan1Ase.Power.DefaultValue = 300; 
     465 
     466 
     467      //  pelaajan1Ase.Power.DefaultValue = 100; 
    385468        Mikko.Add(pelaajan1Ase); 
    386469        pelaajan1Ase.Y = -10; 
    387470        pelaajan1Ase.IsVisible = false; 
    388         LuoKaveri(); 
     471        //LuoKaveri(); 
    389472    } 
    390473    void LuoKaveri() 
    391474    { 
    392         Mikkokaveri = new PhysicsObject(70, 52.5); 
     475        Mikkokaveri = new PhysicsObject(70, 49); 
    393476        Mikkokaveri.Image = mikkokaveri; 
    394477        Mikkokaveri.X = -60; 
    395478        Mikkokaveri.Tag = "pelaaja"; 
     479        Mikkokaveri.Destroyed += delegate { if (Mikko.IsDestroyed && Mikkokaveri.IsDestroyed) TUHO(); }; 
    396480 
    397481        pelaajan2Ase = new AssaultRifle(30, 10); 
     
    401485 
    402486 
    403         pelaajan2Ase.Power.DefaultValue = 300; 
     487      //  pelaajan2Ase.Power.DefaultValue = 100; 
    404488        Mikkokaveri.Add(pelaajan2Ase); 
    405489        pelaajan2Ase.Y = -10; 
     
    413497    void ParannaAsetta(PhysicsObject tormaaja, PhysicsObject kohde) 
    414498    { 
    415         int luku = RandomGen.NextInt(1, 3); 
    416         pelaajan1Ase.FireRate += luku; 
    417         pelaajan1Ase.Power.Value += 10; 
    418         pelaajan1Ase.Power.DefaultValue += 10; 
    419  
    420     } 
    421  
     499        if (tormaaja.Image.Equals(mikkokuva)) 
     500        { 
     501            int luku = RandomGen.NextInt(1, 3); 
     502            pelaajan1Ase.FireRate += luku; 
     503            nopeusVakioAmmukselle += 0.1; 
     504        } 
     505        else 
     506        { 
     507            int luku = RandomGen.NextInt(1, 3); 
     508            pelaajan2Ase.FireRate += luku; 
     509            nopeusVakioAmmukselle += 0.1; 
     510        } 
     511        DoNextUpdate(delegate 
     512        { 
     513            tormaaja.AngularVelocity = 0; 
     514            tormaaja.AngularAcceleration = 0; 
     515        }); 
     516    } 
     517    void Lopetus() 
     518    { 
     519        MultiSelectWindow valikko = new MultiSelectWindow("Haluatko lopettaa?", 
     520           "Kyllä", "Ei"); 
     521        valikko.ItemSelected += PainettiinValikonNappia2; 
     522        Add(valikko); 
     523        IsPaused = true; 
     524      
     525    } 
     526 
     527    void PainettiinValikonNappia2(int valinta) 
     528    { 
     529        switch (valinta) 
     530        { 
     531            case 0: 
     532 
     533                Exit(); 
     534                break; 
     535            case 1: 
     536                IsPaused = false; 
     537     
     538                break; 
     539            
     540        } 
     541    } 
    422542 
    423543    void Randomgen() 
     
    442562    } 
    443563} 
     564class Vihu2 : PhysicsObject 
     565{ 
     566    private IntMeter elamaLaskuri = new IntMeter(1, 0, 1); 
     567    public IntMeter ElamaLaskuri { get { return elamaLaskuri; } } 
     568 
     569    public Vihu2(double leveys, double korkeus) 
     570        : base(leveys, korkeus) 
     571    { 
     572        elamaLaskuri.LowerLimit += delegate { this.Destroy(); }; 
     573 
     574    } 
     575} 
  • 2013/24/EeroF/FysiikkaPeli1/FysiikkaPeli1/FysiikkaPeli1Content/FysiikkaPeli1Content.contentproj

    r4101 r4123  
    7474  </ItemGroup> 
    7575  <ItemGroup> 
    76     <Compile Include="Ai.wav"> 
    77       <Name>Ai</Name> 
    78       <Importer>WavImporter</Importer> 
    79       <Processor>SoundEffectProcessor</Processor> 
    80     </Compile> 
    81   </ItemGroup> 
    82   <ItemGroup> 
    8376    <Compile Include="Havio.wav"> 
    8477      <Name>Havio</Name> 
     
    150143    </Compile> 
    151144  </ItemGroup> 
     145  <ItemGroup> 
     146    <Compile Include="Ai.wav"> 
     147      <Name>Ai</Name> 
     148      <Importer>WavImporter</Importer> 
     149      <Processor>SoundEffectProcessor</Processor> 
     150    </Compile> 
     151  </ItemGroup> 
     152  <ItemGroup> 
     153    <Compile Include="MikkoKaveriKuoli.wav"> 
     154      <Name>MikkoKaveriKuoli</Name> 
     155      <Importer>WavImporter</Importer> 
     156      <Processor>SoundEffectProcessor</Processor> 
     157    </Compile> 
     158  </ItemGroup> 
     159  <ItemGroup> 
     160    <Compile Include="MikkoKuoli.wav"> 
     161      <Name>MikkoKuoli</Name> 
     162      <Importer>WavImporter</Importer> 
     163      <Processor>SoundEffectProcessor</Processor> 
     164    </Compile> 
     165  </ItemGroup> 
     166  <ItemGroup> 
     167    <Compile Include="Alku.png"> 
     168      <Name>Alku</Name> 
     169      <Importer>TextureImporter</Importer> 
     170      <Processor>TextureProcessor</Processor> 
     171    </Compile> 
     172  </ItemGroup> 
    152173  <Import Project="$(MSBuildExtensionsPath)\Microsoft\XNA Game Studio\$(XnaFrameworkVersion)\Microsoft.Xna.GameStudio.ContentPipeline.targets" /> 
    153174  <!--  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.