Changeset 4082 for 2013/24/EeroF


Ignore:
Timestamp:
2013-06-11 15:03:32 (6 years ago)
Author:
eefadjuk
Message:

Talletus.

Location:
2013/24/EeroF
Files:
9 added
2 edited

Legend:

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

    r4061 r4082  
    77using Jypeli.Widgets; 
    88 
     9 
     10 
    911public class FysiikkaPeli1 : PhysicsGame 
    1012{ 
    1113    IntMeter pisteLaskuri; 
    12     PhysicsObject Pelaaja; 
    13     PhysicsObject Omena; 
    14     public override void Begin() 
    15     { 
     14    PhysicsObject Mikko; 
     15    Image mikkokuva = LoadImage("Mikko3"); 
     16    Image taustaKuva = LoadImage("ruoho4"); 
     17    Image omenakuva = LoadImage("omena"); 
     18    Image hamiskuva = LoadImage("Hamis"); 
     19    DoubleMeter elamaLaskuri; 
     20    AssaultRifle pelaajan1Ase; 
     21    public override void Begin()      
     22    { 
     23         
     24      
     25        LuoPelaaja(); 
    1626        LuoKentta(); 
    17         Pelaaja = new PhysicsObject(50, 100); 
    18         Pelaaja.Shape = Shape.Triangle; 
    19         Pelaaja.Color = Color.Lime; 
    20         Add(Pelaaja); 
    2127        AsetaOhjaimet(); 
    22         Omena = new PhysicsObject(15, 15); 
    23         Omena.Shape = Shape.Circle; 
    24         Omena.Color = Color.Red; 
    25         Omena.X = 20; 
    26         Omena.Y = 100; 
    27         Add(Omena); 
    28         AddCollisionHandler(Omena, Pelaaja, CollisionHandler.DestroyObject); 
    2928        LuoPistelaskuri(); 
    30  
    31          
     29        LuoElamaLaskuri(); 
     30     Level.Background.Image = taustaKuva; 
     31     Level.Background.TileToLevel(); 
     32        Camera.Follow(Mikko); 
     33        AddCollisionHandler(Mikko, "Omena", CollisionHandler.DestroyTarget); 
     34        AddCollisionHandler(Mikko, "Parannus", CollisionHandler.DestroyTarget); 
     35        AddCollisionHandler(Mikko, "Parannus", Lisaa5Pistetta); 
     36        AddCollisionHandler(Mikko, "Parannus", ParannaAsetta); 
     37        AddCollisionHandler(Mikko, "Omena", LisaaPisteita); 
     38        AddCollisionHandler(Mikko, "Omena", LisaaElamaa); 
     39        AddCollisionHandler(Mikko, "Hamis", VahennaElamaa); 
     40 
     41    } 
     42 
     43    void LisaaPisteita(PhysicsObject tormaaja, PhysicsObject kohde) 
     44    { 
     45        pisteLaskuri.Value++; 
     46    } 
     47 
     48    void Lisaa5Pistetta(PhysicsObject tormaaja, PhysicsObject kohde) 
     49    { 
     50        pisteLaskuri.Value++; 
     51        pisteLaskuri.Value++; 
     52        pisteLaskuri.Value++; 
     53        pisteLaskuri.Value++; 
     54        pisteLaskuri.Value++; 
    3255    } 
    3356void LuoPistelaskuri() 
     
    4568    Add(pisteNaytto); 
    4669} 
    47  
    4870     
    4971 
     
    5173    {   PhoneBackButton.Listen(ConfirmExit, "Lopeta peli"); 
    5274        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit,"Lopeta peli" ); 
    53         Keyboard.Listen(Key.Up, ButtonState.Down, PelaajaKavelee,"Pelaaja liikkuu", Pelaaja); 
    54         Keyboard.Listen(Key.Up, ButtonState.Released, PysaytaPelaaja, null, Pelaaja); 
    55         Keyboard.Listen(Key.Left, ButtonState.Released, PysaytaPelaaja, null, Pelaaja); 
    56         Keyboard.Listen(Key.Right, ButtonState.Released, PysaytaPelaaja, null, Pelaaja); 
    57         Keyboard.Listen(Key.Right, ButtonState.Down, KaantyyOikealle, "Pelaaja kääntyy", Pelaaja); 
    58         Keyboard.Listen(Key.Left, ButtonState.Down, KaantyyVasemmalle, "Pelaaja kääntyy", Pelaaja); 
    59         Keyboard.Listen(Key.Space, ButtonState.Down, Ampuu, "Ampuu", Pelaaja); 
    60     } 
    61     void PelaajaKavelee( PhysicsObject Pelaaja ) 
    62     { 
    63        // Vector nopeus = new Vector(0, 200); 
    64        // Pelaaja.Velocity = nopeus; 
    65         Vector pelaajanSuunta = Vector.FromLengthAndAngle(250.0, Pelaaja.Angle + Angle.RightAngle); 
    66         Pelaaja.Velocity = pelaajanSuunta; 
    67  
    68     } 
    69     void PysaytaPelaaja(PhysicsObject Pelaaja) 
     75        Keyboard.Listen(Key.Up, ButtonState.Down, PelaajaKavelee,"Pelaaja liikkuu", Mikko); 
     76        Keyboard.Listen(Key.Up, ButtonState.Released, PysaytaPelaaja, null, Mikko); 
     77        Keyboard.Listen(Key.Left, ButtonState.Released, PysaytaPelaaja, null, Mikko); 
     78        Keyboard.Listen(Key.Right, ButtonState.Released, PysaytaPelaaja, null, Mikko); 
     79        Keyboard.Listen(Key.Right, ButtonState.Down, KaantyyOikealle, "Pelaaja kääntyy", Mikko); 
     80        Keyboard.Listen(Key.Left, ButtonState.Down, KaantyyVasemmalle, "Pelaaja kääntyy", Mikko); 
     81        Keyboard.Listen(Key.Space, ButtonState.Down, Ampuu, "Ampuu", Mikko); 
     82    } 
     83    void PelaajaKavelee(PhysicsObject Mikko) 
     84    { 
     85 
     86        Vector pelaajanSuunta = Vector.FromLengthAndAngle(250.0, Mikko.Angle); 
     87        Mikko.Velocity = pelaajanSuunta; 
     88 
     89    } 
     90    void PysaytaPelaaja(PhysicsObject Mikko) 
    7091    { 
    7192        Vector nopeus = Vector.Zero; 
    72         Pelaaja.Velocity = nopeus; 
    73         Pelaaja.AngularVelocity = 0.0; 
    74  
    75     } 
    76     void KaantyyOikealle( PhysicsObject Pelaaja) 
    77     { 
    78         Pelaaja.AngularVelocity = 7.5; 
    79     } 
    80     void KaantyyVasemmalle(PhysicsObject Pelaaja) 
    81     { 
    82         Pelaaja.AngularVelocity = -7.5; 
    83     } 
    84     void Ampuu (PhysicsObject Pelaaja) 
    85     { 
    86  
    87  
    88  
    89  
    90     } 
     93        Mikko.Velocity = nopeus; 
     94        Mikko.AngularVelocity = 0.0; 
     95 
     96    } 
     97    void KaantyyOikealle(PhysicsObject Mikko) 
     98    { 
     99        Mikko.AngularVelocity = 7.5; 
     100    } 
     101    void KaantyyVasemmalle(PhysicsObject Mikko) 
     102    { 
     103        Mikko.AngularVelocity = -7.5; 
     104    } 
     105    void Ampuu(PhysicsObject Mikko) 
     106    { 
     107        PhysicsObject ammus = pelaajan1Ase.Shoot(); 
     108 
     109        if (ammus != null) 
     110        { 
     111            ammus.MaximumLifetime = TimeSpan.FromSeconds(2.0); 
     112            ammus.Mass = 100; 
     113        } 
     114    } 
     115 
     116    void AmmusOsui(PhysicsObject ammus, PhysicsObject kohde) 
     117    { 
     118        ammus.Destroy(); 
     119         
     120        if (kohde is Vihu) 
     121        { 
     122            Vihu hamis = kohde as Vihu; 
     123            hamis.ElamaLaskuri.Value -= 1; 
     124        } 
     125    } 
     126 
     127 
    91128    void LuoKentta() 
    92129    { 
     130        Level.Width = 10000; 
     131        Level.Height = 10000; 
     132 
     133 
     134        for (int i = 0; i < 100; i++) 
     135        { 
     136            LuoOmena(); 
     137        } 
     138 
     139        for (int i = 0; i < 10; i++) 
     140        { 
     141 
     142            LuoHamis(); 
     143 
     144 
     145        } 
     146        for (int i = 0; i < 5; i++) 
     147        { 
     148            LuoParannus(); 
     149        } 
     150 
     151 
     152 
     153    } 
     154    void LuoOmena() 
     155    { 
     156 
     157        int luku = RandomGen.NextInt(-5000, 5000); 
     158      int luku2 = RandomGen.NextInt( -5000, 5000 ); 
     159       PhysicsObject  Omena = new PhysicsObject (15, 15); 
     160      Omena.Image = omenakuva; 
     161       Omena.Tag = "Omena"; 
     162       Omena.Shape = Shape.Circle; 
     163       Omena.Color = Color.Red; 
     164       Omena.X = luku; 
     165       Omena.Y = luku2; 
     166       Omena.Mass = 100000000000; 
     167       Add(Omena); 
     168        
     169        
     170        
     171    } 
     172    void LuoElamaLaskuri() 
     173    { 
     174        elamaLaskuri = new DoubleMeter(10); 
     175        elamaLaskuri.MaxValue = 100; 
     176        elamaLaskuri.LowerLimit += ElamaLoppui; 
     177 
     178        ProgressBar elamaPalkki = new ProgressBar(150, 20); 
     179        elamaPalkki.X = Screen.Left + 150; 
     180        elamaPalkki.Y = Screen.Top - 20; 
     181        elamaPalkki.BindTo(elamaLaskuri); 
     182        elamaPalkki.Color = Color.Transparent; 
     183        elamaPalkki.BarColor = Color.Red; 
     184        elamaPalkki.BorderColor = Color.Black; 
     185        Add(elamaPalkki); 
     186    } 
     187    void LuoElamaLaskurivihkulle( Vihu vihu ) 
     188    { 
     189        ProgressBar elamaPalkki = new ProgressBar(150, 20); 
     190        elamaPalkki.Y = 40; 
     191        elamaPalkki.BindTo(vihu.ElamaLaskuri); 
     192        elamaPalkki.Color = Color.Transparent; 
     193        elamaPalkki.BarColor = Color.Blue; 
     194        elamaPalkki.BorderColor = Color.Black; 
     195        vihu.Add(elamaPalkki); 
     196    } 
     197    void ElamaLoppui() 
     198    { 
     199        MessageDisplay.Add("Elämät loppuivat, voi voi."); 
     200        Mikko.Destroy(); 
     201    } 
     202    void LisaaElamaa(PhysicsObject tormaaja, PhysicsObject kohde) 
     203    { 
     204        elamaLaskuri.Value++; 
     205    } 
     206    void VahennaElamaa(PhysicsObject tormaaja, PhysicsObject kohde) 
     207    { 
     208        elamaLaskuri.Value--; 
     209    } 
     210    void LuoHamis() 
     211    { 
     212        Vihu Hamis = new Vihu(30, 30); 
     213        Hamis.Color = Color.Black; 
     214        Hamis.Tag = "Hamis"; 
     215 
     216        FollowerBrain aivot = new FollowerBrain(Mikko); 
     217        Hamis.Brain = aivot; 
     218        aivot.Speed = 100; 
     219        aivot.Active = true; 
     220 
     221        Hamis.Image=hamiskuva; 
     222        Hamis.Mass = 0.0000001; 
     223      
     224        int luku = RandomGen.NextInt(-5000, 5000); 
     225        int luku2 = RandomGen.NextInt(-5000, 5000); 
     226        Hamis.X = luku; 
     227        Hamis.Y = luku2; 
     228        Add (Hamis); 
     229 
     230        LuoElamaLaskurivihkulle(Hamis); 
     231    } 
     232    void LuoParannus() 
     233    { 
     234        int luku = RandomGen.NextInt(-5000, 5000); 
     235        int luku2 = RandomGen.NextInt(-5000, 5000); 
     236        PhysicsObject Parannus = new PhysicsObject(15, 15); 
     237       // Parannus.Image = ; 
     238        Parannus.Tag = "Parannus"; 
     239        Parannus.Shape = Shape.Star; 
     240        Parannus.Color = Color.Yellow; 
     241        Parannus.X = luku; 
     242        Parannus.Y = luku2; 
     243        Add(Parannus); 
     244    } 
     245 
     246    void LuoPelaaja() 
     247    { 
     248        Mikko = new PhysicsObject(70, 52.5); 
     249        Mikko.Image = mikkokuva; 
     250        Add(Mikko); 
     251        pelaajan1Ase = new AssaultRifle(30, 10); 
     252      //  pelaajan1Ase. 
     253        pelaajan1Ase.ProjectileCollision = AmmusOsui; 
     254        pelaajan1Ase.FireRate = 2; 
     255 
     256        pelaajan1Ase.Power.DefaultValue = 300; 
     257        Mikko.Add(pelaajan1Ase); 
     258        pelaajan1Ase.Y = -10; 
     259        pelaajan1Ase.IsVisible = false; 
     260    } 
     261    void ParannaAsetta(PhysicsObject tormaaja, PhysicsObject kohde) 
     262    { 
     263        pelaajan1Ase.FireRate += 1; 
     264        pelaajan1Ase.Power.Value += 10; 
     265        pelaajan1Ase.Power.DefaultValue += 10; 
     266    } 
     267 
     268 
     269    void Randomgen() 
     270    { 
     271        //  int luku = RandomGen.NextInt( 100 ); (pienempi kuin 100) 
     272        //int luku = RandomGen.NextInt( 50, 1000 ); (väliltä 50-999) 
     273    } 
     274 
     275 
     276} 
     277class Vihu : PhysicsObject 
     278{ 
     279    private IntMeter elamaLaskuri = new IntMeter(5, 0, 5); 
     280    public IntMeter ElamaLaskuri { get { return elamaLaskuri; } } 
     281 
     282    public Vihu(double leveys, double korkeus) 
     283        : base(leveys, korkeus) 
     284    { 
     285        elamaLaskuri.LowerLimit += delegate { this.Destroy(); }; 
    93286     
    94      
    95      
    96     } 
    97  
     287    } 
    98288} 
  • 2013/24/EeroF/FysiikkaPeli1/FysiikkaPeli1/FysiikkaPeli1Content/FysiikkaPeli1Content.contentproj

    r4061 r4082  
    4545    <Reference Include="AnimationExtension" /> 
    4646  </ItemGroup> 
     47  <ItemGroup> 
     48    <Compile Include="Mikko3.png"> 
     49      <Name>Mikko3</Name> 
     50      <Importer>TextureImporter</Importer> 
     51      <Processor>TextureProcessor</Processor> 
     52    </Compile> 
     53  </ItemGroup> 
     54  <ItemGroup> 
     55    <Compile Include="Ruoho4.jpg"> 
     56      <Name>Ruoho4</Name> 
     57      <Importer>TextureImporter</Importer> 
     58      <Processor>TextureProcessor</Processor> 
     59    </Compile> 
     60  </ItemGroup> 
     61  <ItemGroup> 
     62    <Compile Include="Omena.png"> 
     63      <Name>Omena</Name> 
     64      <Importer>TextureImporter</Importer> 
     65      <Processor>TextureProcessor</Processor> 
     66    </Compile> 
     67  </ItemGroup> 
     68  <ItemGroup> 
     69    <Compile Include="Hamis.png"> 
     70      <Name>Hamis</Name> 
     71      <Importer>TextureImporter</Importer> 
     72      <Processor>TextureProcessor</Processor> 
     73    </Compile> 
     74  </ItemGroup> 
    4775  <Import Project="$(MSBuildExtensionsPath)\Microsoft\XNA Game Studio\$(XnaFrameworkVersion)\Microsoft.Xna.GameStudio.ContentPipeline.targets" /> 
    4876  <!--  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.