Changeset 4576 for 2013/30


Ignore:
Timestamp:
2013-07-23 14:36:43 (10 years ago)
Author:
rikvalko
Message:

Talletus.

Location:
2013/30/RikoV/PerusPeli3/PerusPeli3
Files:
1 added
2 edited

Legend:

Unmodified
Added
Removed
  • 2013/30/RikoV/PerusPeli3/PerusPeli3/PerusPeli3/PerusPeli3.cs

    r4573 r4576  
    99public class PerusPeli3 : PhysicsGame 
    1010{ 
    11     AssaultRifle pelaajanAse; 
    1211    Image pelaajanKuva = LoadImage("poliisi1"); 
    13     PhysicsObject pelaaja; 
     12    Image vihollisenkuva = LoadImage("poliisi2"); 
     13    Pelaaja pelaaja; 
    1414 
    1515    public override void Begin() 
     16    { 
     17        alkuvalikko(); 
     18    } 
     19 
     20    void aloitapeli() 
    1621    { 
    1722        Mouse.IsCursorVisible = true; 
     
    3237    } 
    3338 
     39    void alkuvalikko() 
     40    { 
     41        MultiSelectWindow alkuValikko = new MultiSelectWindow("Alkuvalikko", "Aloita peli", "Parhaat pisteet", "Lopeta"); 
     42        Add(alkuValikko); 
     43 
     44        alkuValikko.AddItemHandler(0, aloitapeli); 
     45        //alkuValikko.AddItemHandler(1, ParhaatPisteet); 
     46        alkuValikko.AddItemHandler(2, Exit); 
     47    } 
     48 
    3449    void KuunteleLiiketta(AnalogState hiirenTila) 
    3550    { 
     
    4863        ruudut.SetTileMethod(Color.Black, LuoTaso); 
    4964        ruudut.SetTileMethod("4CFF00", LuoPelaaja); 
     65        ruudut.SetTileMethod("FF0000", luovihollinen); 
    5066        ruudut.Execute(60, 60); 
     67 
     68        LuoElamaLaskuri(); 
     69    } 
     70 
     71    void LuoElamaLaskuri() 
     72    { 
     73        ProgressBar elamaPalkki = new ProgressBar(150, 20); 
     74        elamaPalkki.X = Screen.Left + 150; 
     75        elamaPalkki.Y = Screen.Top - 20; 
     76        elamaPalkki.BindTo(pelaaja.ElamaLaskuri); 
     77        Add(elamaPalkki); 
     78    } 
     79 
     80    void ElamaLoppui() 
     81    { 
     82        MessageDisplay.Add("Elämät loppuivat, voi voi."); 
     83    } 
     84 
     85    void luovihollinen(Vector paikka, double levelys, double korkeus) 
     86    { 
     87        Vihollinen vihollinen = new Vihollinen(levelys, korkeus); 
     88        vihollinen.Shape = Shape.Circle; 
     89        vihollinen.Position = paikka; 
     90        vihollinen.Image = vihollisenkuva; 
     91        vihollinen.LinearDamping = 0.8; 
     92        Add(vihollinen); 
     93 
     94        FollowerBrain seuraajanAivot = new FollowerBrain("pelaaja"); 
     95        seuraajanAivot.Speed = 300;      
     96        seuraajanAivot.DistanceFar = 600; 
     97        seuraajanAivot.DistanceClose = 200; 
     98        seuraajanAivot.StopWhenTargetClose = true; 
     99 
     100        vihollinen.Brain = seuraajanAivot; 
    51101    } 
    52102 
    53103    void LuoPelaaja(Vector paikka, double levelys, double korkeus) 
    54104    { 
    55         pelaaja = new PhysicsObject(levelys, korkeus); 
     105        pelaaja = new Pelaaja(levelys, korkeus); 
    56106        pelaaja.Shape = Shape.Circle; 
    57107        pelaaja.Position = paikka; 
     
    59109        pelaaja.LinearDamping = 0.8; 
    60110        Add(pelaaja); 
    61         pelaajanAse = new AssaultRifle(30, 10); 
     111        pelaaja.Ase.ProjectileCollision = AmmusOsui; 
     112    } 
    62113 
    63         //Ammusten määrä aluksi: 
    64         pelaajanAse.Ammo.Value = 1000; 
    65  
    66         //Mitä tapahtuu kun ammus osuu johonkin? 
    67         pelaajanAse.ProjectileCollision = AmmusOsui; 
    68  
    69         pelaaja.Add(pelaajanAse); 
    70     } 
    71114    void AmmusOsui(PhysicsObject ammus, PhysicsObject kohde) 
    72115    { 
     
    89132        if (ammus != null) 
    90133        { 
    91             ammus.Size *= 3; 
     134            //ammus.Size *= 3; 
    92135            //ammus.Image = ... 
    93136            //ammus.MaximumLifetime = TimeSpan.FromSeconds(2.0); 
    94137        } 
    95     } 
    96138 
    97139 
     140 
     141    } 
    98142} 
     143 
     144class Pelaaja : PhysicsObject 
     145{ 
     146    private IntMeter elamaLaskuri = new IntMeter(30, 0, 30); 
     147    public IntMeter ElamaLaskuri { get { return elamaLaskuri; } } 
     148 
     149    public AssaultRifle Ase; 
     150 
     151    public Pelaaja(double leveys, double korkeus) 
     152        : base(leveys, korkeus) 
     153    { 
     154        elamaLaskuri.LowerLimit += delegate { this.Destroy(); }; 
     155        Tag = "pelaaja"; 
     156 
     157        Ase = new AssaultRifle(30, 10); 
     158        Ase.Ammo.Value = 1000; 
     159        Add(Ase); 
     160    } 
     161} 
     162 
     163class Vihollinen : PhysicsObject 
     164{ 
     165    private IntMeter elamaLaskuri = new IntMeter(30, 0, 30); 
     166    public IntMeter ElamaLaskuri { get { return elamaLaskuri; } } 
     167 
     168 
     169 
     170    public Vihollinen(double leveys, double korkeus) 
     171        : base(leveys, korkeus) 
     172    { 
     173        elamaLaskuri.LowerLimit += delegate { this.Destroy(); }; 
     174    } 
     175} 
  • 2013/30/RikoV/PerusPeli3/PerusPeli3/PerusPeli3Content/PerusPeli3Content.contentproj

    r4573 r4576  
    7676    </Compile> 
    7777  </ItemGroup> 
     78  <ItemGroup> 
     79    <Compile Include="poliisi2.png"> 
     80      <Name>poliisi2</Name> 
     81      <Importer>TextureImporter</Importer> 
     82      <Processor>TextureProcessor</Processor> 
     83    </Compile> 
     84  </ItemGroup> 
    7885  <Import Project="$(MSBuildExtensionsPath)\Microsoft\XNA Game Studio\$(XnaFrameworkVersion)\Microsoft.Xna.GameStudio.ContentPipeline.targets" /> 
    7986  <!--  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.