Changeset 2810 for 2012/23


Ignore:
Timestamp:
2012-06-06 11:28:32 (7 years ago)
Author:
jijoback
Message:
 
Location:
2012/23/JimB/NameInPending/NameinPending/NameinPending
Files:
7 edited

Legend:

Unmodified
Added
Removed
  • 2012/23/JimB/NameInPending/NameinPending/NameinPending/NameinPending/NameinPending.cs

    r2806 r2810  
    77using Jypeli.Widgets; 
    88 
     9class PeliUkko : PhysicsObject 
     10{ 
     11    public IntMeter Elamat; 
     12 
     13    public PeliUkko(double leveys, double korkeus) 
     14        : base(leveys, korkeus) 
     15    { 
     16        Elamat = new IntMeter(50, 0, 100); 
     17    } 
     18} 
     19 
     20 
     21 
    922public class NameinPending : PhysicsGame 
    1023{ 
    1124 
    12     double ampumisnopeus = 500; 
     25    PeliUkko pelaaja1, pelaaja2, pelaaja3, pelaaja4; 
     26    double ampumisnopeus = 450; 
    1327 
    1428    public override void Begin() 
     
    3650        ruudut.Execute(25, 25); 
    3751 
    38         Level.BackgroundColor = new Color(96, 38,0); 
     52        Level.BackgroundColor = Color.Silver; 
    3953        Camera.ZoomToLevel(); 
    4054    } 
     
    4357    { 
    4458 
    45         PhysicsObject pelaaja1 = LuoPelaaja(paikka); 
     59        pelaaja1 = LuoPelaaja(paikka); 
    4660        pelaaja1.Image = LoadImage("Pelaaja1"); 
    4761        pelaaja1.CollisionIgnoreGroup = 1; 
    4862 
    49         Keyboard.Listen(Key.A, ButtonState.Down, Liike,null,pelaaja1, new Vector(-200,0)); 
     63        LuoHPNaytto(Screen.Left + 50, Screen.Top - 50, pelaaja1.Elamat, Color.Blue); 
     64 
     65        Keyboard.Listen(Key.A, ButtonState.Down, Liike, null, pelaaja1, new Vector(-200, 0)); 
    5066        Keyboard.Listen(Key.A, ButtonState.Released, Liike, null, pelaaja1, new Vector(0, 0)); 
    5167        Keyboard.Listen(Key.D, ButtonState.Down, Liike, null, pelaaja1, new Vector(200, 0)); 
     
    5571        Keyboard.Listen(Key.W, ButtonState.Down, Liike, null, pelaaja1, new Vector(0, 200)); 
    5672        Keyboard.Listen(Key.W, ButtonState.Released, Liike, null, pelaaja1, new Vector(0, 0)); 
    57         Keyboard.Listen(Key.Q, ButtonState.Down, Ammu, null, pelaaja1);         
     73        Keyboard.Listen(Key.Q, ButtonState.Down, Ammu, null, pelaaja1); 
    5874    } 
    5975    void LuoPelaaja2(Vector paikka, double leveys, double korkeus) 
    6076    { 
    61          
    62         PhysicsObject pelaaja2 = LuoPelaaja(paikka); 
     77 
     78        pelaaja2 = LuoPelaaja(paikka); 
    6379        pelaaja2.Image = LoadImage("Pelaaja2"); 
    6480        pelaaja2.CollisionIgnoreGroup = 2; 
     81        LuoHPNaytto(Screen.Right - 50, Screen.Top - 50, pelaaja2.Elamat, Color.Yellow); 
     82 
    6583 
    6684        Keyboard.Listen(Key.Left, ButtonState.Down, Liike, null, pelaaja2, new Vector(-200, 0)); 
     
    7290        Keyboard.Listen(Key.Up, ButtonState.Down, Liike, null, pelaaja2, new Vector(0, 200)); 
    7391        Keyboard.Listen(Key.Up, ButtonState.Released, Liike, null, pelaaja2, new Vector(0, 0)); 
    74         Keyboard.Listen(Key.NumPad0, ButtonState.Down, Ammu, null, pelaaja2);  
     92        Keyboard.Listen(Key.NumPad0, ButtonState.Down, Ammu, null, pelaaja2); 
    7593    } 
    7694    void LuoPelaaja3(Vector paikka, double leveys, double korkeus) 
    7795    { 
    7896 
    79         PhysicsObject pelaaja3 = LuoPelaaja(paikka); 
     97        pelaaja3 = LuoPelaaja(paikka); 
    8098        pelaaja3.Image = LoadImage("Pelaaja3"); 
    8199        pelaaja3.CollisionIgnoreGroup = 3; 
     100        LuoHPNaytto(Screen.Right - 50, Screen.Bottom + 50, pelaaja3.Elamat, Color.Red); 
     101 
    82102 
    83103        Keyboard.Listen(Key.F, ButtonState.Down, Liike, null, pelaaja3, new Vector(-200, 0)); 
     
    89109        Keyboard.Listen(Key.T, ButtonState.Down, Liike, null, pelaaja3, new Vector(0, 200)); 
    90110        Keyboard.Listen(Key.T, ButtonState.Released, Liike, null, pelaaja3, new Vector(0, 0)); 
    91         Keyboard.Listen(Key.R, ButtonState.Down, Ammu, null, pelaaja3);  
     111        Keyboard.Listen(Key.R, ButtonState.Down, Ammu, null, pelaaja3); 
    92112    } 
    93113    void LuoPelaaja4(Vector paikka, double leveys, double korkeus) 
    94114    { 
    95115 
    96         PhysicsObject pelaaja4 = LuoPelaaja(paikka); 
     116        pelaaja4 = LuoPelaaja(paikka); 
    97117        pelaaja4.Image = LoadImage("Pelaaja4"); 
    98118        pelaaja4.CollisionIgnoreGroup = 4; 
     119        LuoHPNaytto(Screen.Left + 50, Screen.Bottom + 50, pelaaja4.Elamat, Color.Purple); 
     120 
     121 
     122 
    99123 
    100124        Keyboard.Listen(Key.J, ButtonState.Down, Liike, null, pelaaja4, new Vector(-200, 0)); 
     
    106130        Keyboard.Listen(Key.I, ButtonState.Down, Liike, null, pelaaja4, new Vector(0, 200)); 
    107131        Keyboard.Listen(Key.I, ButtonState.Released, Liike, null, pelaaja4, new Vector(0, 0)); 
    108         Keyboard.Listen(Key.U, ButtonState.Down, Ammu, null, pelaaja4);  
    109     } 
    110     PhysicsObject LuoPelaaja(Vector paikka) 
    111     { 
    112         PhysicsObject Pelaaja = new PhysicsObject(18, 18); 
    113         Pelaaja.Restitution = 0.01; 
    114         Pelaaja.AngularDamping = 1; 
    115         Pelaaja.Position = paikka; 
    116         Pelaaja.Shape = Shape.Circle; 
    117         Add(Pelaaja); 
    118         return Pelaaja; 
    119  
    120     } 
     132        Keyboard.Listen(Key.U, ButtonState.Down, Ammu, null, pelaaja4); 
     133    } 
     134 
     135    PeliUkko LuoPelaaja(Vector paikka) 
     136    { 
     137        PeliUkko pelaaja = new PeliUkko(18, 18); 
     138        pelaaja.Restitution = 0; 
     139        pelaaja.AngularDamping = Double.Epsilon; 
     140        pelaaja.Position = paikka; 
     141        pelaaja.Shape = Shape.Circle; 
     142        Add(pelaaja); 
     143        AddCollisionHandler<PeliUkko, PhysicsObject>(pelaaja, "bullet", Osuma); 
     144 
     145        return pelaaja; 
     146 
     147    } 
     148 
     149    void LuoHPNaytto(double x, double y, IntMeter sidottavaMittari, Color taustavari) 
     150    { 
     151        Label hp = new Label(); 
     152        hp.Color = taustavari; 
     153        hp.BindTo(sidottavaMittari); 
     154        hp.Position = new Vector(x, y); 
     155        Add(hp); 
     156    } 
     157 
     158    void Osuma(PeliUkko tormaaja, PhysicsObject ammus) 
     159    { 
     160        tormaaja.Elamat.Value -= 1; 
     161        if (tormaaja.Elamat.Value <= 0) 
     162        { 
     163            tormaaja.Destroy(); 
     164        } 
     165        ammus.Destroy(); 
     166    } 
     167    bool aseReady = true; 
    121168    void Ammu(PhysicsObject pelaaja) 
    122169    { 
    123         PhysicsObject bullet = new PhysicsObject(LoadImage("bullet")); 
    124         Add(bullet); 
    125         // AddCollisionHandler(bullet, CollisionHandler.ExplodeObject(100, false)); 
    126         AddCollisionHandler(bullet, CollisionHandler.DestroyObject); 
    127         bullet.Position = pelaaja.Position; 
    128         bullet.Angle = pelaaja.Angle; 
    129         bullet.CollisionIgnoreGroup = pelaaja.CollisionIgnoreGroup; 
    130         Vector suunta = Vector.FromLengthAndAngle(ampumisnopeus, pelaaja.Angle + Angle.RightAngle); 
    131         bullet.Hit(suunta); 
    132  
    133     } 
    134     void Liike(PhysicsObject pelaaja, Vector nopeus) 
     170        if (aseReady) 
     171        { 
     172            PhysicsObject bullet = new PhysicsObject(LoadImage("bullet")); 
     173            Add(bullet); 
     174            bullet.Tag = "bullet"; 
     175            bullet.Restitution = 0; 
     176            // AddCollisionHandler(bullet, CollisionHandler.ExplodeObject(100, false)); 
     177            AddCollisionHandler(bullet, "Seinä", CollisionHandler.DestroyObject); 
     178            bullet.Position = pelaaja.Position; 
     179            bullet.Angle = pelaaja.Angle; 
     180            bullet.CollisionIgnoreGroup = pelaaja.CollisionIgnoreGroup; 
     181            Vector suunta = Vector.FromLengthAndAngle(ampumisnopeus, pelaaja.Angle + Angle.RightAngle); 
     182            bullet.Hit(suunta); 
     183            aseReady = false; 
     184            Timer.SingleShot(0.5, delegate { aseReady = true; }); 
     185        } 
     186    } 
     187    bool naattiReady = true; 
     188    void Heita(PhysicsObject pelaaja) 
     189    { 
     190        if (naattiReady) 
     191        { 
     192            PhysicsObject naatti = new PhysicsObject(LoadImage("naatti")); 
     193            Add(naatti); 
     194            naatti.Tag = "naatti"; 
     195            naatti.Restitution = 0.6; 
     196            naatti.Position = pelaaja.Position; 
     197            naatti.Angle = pelaaja.Angle; 
     198            naatti.CollisionIgnoreGroup = pelaaja.CollisionIgnoreGroup; 
     199            Vector suunta = Vector.FromLengthAndAngle(ampumisnopeus, pelaaja.Angle + Angle.RightAngle); 
     200            naatti.Hit(suunta); 
     201            naattiReady = false; 
     202            Timer.SingleShot(10.5, delegate { naattiReady = true; }); 
     203        } 
     204 
     205    } 
     206    void Liike(PeliUkko pelaaja, Vector nopeus) 
    135207    { 
    136208        pelaaja.Velocity = nopeus; 
     
    144216        PhysicsObject palikka = PhysicsObject.CreateStaticObject(leveys, korkeus); 
    145217        palikka.Position = paikka; 
     218        palikka.Tag = "Seinä"; 
     219        palikka.Restitution = 0; 
    146220        palikka.Shape = Shape.Rectangle; 
    147221        palikka.Color = Color.White; 
  • 2012/23/JimB/NameInPending/NameinPending/NameinPending/NameinPending/NameinPending.csproj

    r2806 r2810  
    6363  <ItemGroup> 
    6464    <Reference Include="Jypeli"> 
    65     </Reference> 
    66     <Reference Include="Jypeli4, Version=4.2.1.0, Culture=neutral, processorArchitecture=x86"> 
    67       <SpecificVersion>False</SpecificVersion> 
    68       <HintPath>..\..\..\..\..\AtteH\Tasohyppelypeli1\Tasohyppelypeli1\Tasohyppelypeli1\Jypeli4.dll</HintPath> 
    6965    </Reference> 
    7066    <Reference Include="Microsoft.Xna.Framework, Version=4.0.0.0, Culture=neutral, PublicKeyToken=842cf8be1de50553, processorArchitecture=x86"> 
  • 2012/23/JimB/NameInPending/NameinPending/NameinPending/NameinPendingContent/NameinPendingContent.contentproj

    r2796 r2810  
    8686    </Compile> 
    8787  </ItemGroup> 
     88  <ItemGroup> 
     89    <Compile Include="naatti.png"> 
     90      <Name>naatti</Name> 
     91      <Importer>TextureImporter</Importer> 
     92      <Processor>TextureProcessor</Processor> 
     93    </Compile> 
     94    <Compile Include="naattishard.png"> 
     95      <Name>naattishard</Name> 
     96      <Importer>TextureImporter</Importer> 
     97      <Processor>TextureProcessor</Processor> 
     98    </Compile> 
     99  </ItemGroup> 
    88100  <Import Project="$(MSBuildExtensionsPath)\Microsoft\XNA Game Studio\$(XnaFrameworkVersion)\Microsoft.Xna.GameStudio.ContentPipeline.targets" /> 
    89101  <!--  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.