Changeset 7430


Ignore:
Timestamp:
2016-06-17 11:11:46 (3 years ago)
Author:
latukova
Message:
 
Location:
2016/24/LasseK
Files:
2 added
6 edited

Legend:

Unmodified
Added
Removed
  • 2016/24/LasseK/TankkiPeli/TankkiPeli/TankkiPeli/TankkiPeli.cs

    r7392 r7430  
    77using Jypeli.Effects; 
    88using Jypeli.Widgets; 
    9  
     9using Jypeli.Effects; 
    1010public class TankkiPeli : PhysicsGame 
    1111{ 
     
    2020    //PhysicsObject Tykki; 
    2121 
     22 
    2223    Tankki tankki; 
    2324    Tankki kakkostankki; 
    2425    public override void Begin() 
    2526    { 
     27        ClearAll(); 
    2628        Kentta(); 
    2729        LuoTankki(); 
    2830        AsetaOhjaimet(); 
    29     } 
    30  
     31 
     32     
     33    Camera.ZoomToLevel(); 
     34        Level.Background.Color = Color.LightBlue; 
     35    } 
    3136    void LiikutaTykkiä(Tankki tankki, double Suunta) 
    3237    { 
     
    4651        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli"); 
    4752 
    48         Keyboard.Listen(Key.Left, ButtonState.Down, delegate () { tankki.Tykki.Angle = tankki.FacingDirection == Direction.Right ? Angle.FromDegrees(180) : tankki.Tykki.Angle; LiikutaTankkia(tankki, new Vector(-2500.0, 0)); 
     53        Keyboard.Listen(Key.Left, ButtonState.Down, delegate () { tankki.Tykki.Angle = tankki.FacingDirection == Direction.Right ? Angle.FromDegrees(180) : tankki.Tykki.Angle; LiikutaTankkia(tankki, new Vector(-200000.0, 0)); 
    4954            if (tankki.FacingDirection == Direction.Right) { tankki.MirrorImage(); } tankki.FacingDirection = Direction.Left; }, "Liikuttaa Tankkia Vasempaan"); 
    50         Keyboard.Listen(Key.Right, ButtonState.Down, delegate () { tankki.Tykki.Angle = tankki.FacingDirection == Direction.Left ? Angle.FromDegrees(0) : tankki.Tykki.Angle; LiikutaTankkia(tankki, new Vector(2000.0, 0)); if (tankki.FacingDirection == Direction.Left) { tankki.MirrorImage(); } tankki.FacingDirection = Direction.Right; }, "Liikuttaa Tankkia Oikealle"); 
     55        Keyboard.Listen(Key.Right, ButtonState.Down, delegate () { tankki.Tykki.Angle = tankki.FacingDirection == Direction.Left ? Angle.FromDegrees(0) : tankki.Tykki.Angle; LiikutaTankkia(tankki, new Vector(200000.0, 0)); if (tankki.FacingDirection == Direction.Left) { tankki.MirrorImage(); } tankki.FacingDirection = Direction.Right; }, "Liikuttaa Tankkia Oikealle"); 
    5156 
    5257        Keyboard.Listen(Key.Up, ButtonState.Down, LiikutaTykkiä, "Liikuta Tykkiä Ylös", tankki, 0.1); 
    5358        Keyboard.Listen(Key.Down, ButtonState.Down, LiikutaTykkiä, "Liikuta Tykkiä Alas", tankki, -0.1); 
    5459 
    55         /* 
    56         Keyboard.Listen(Key.A, ButtonState.Down, delegate () { kakkostankki.Tykki.Angle = kakkostankki.FacingDirection == Direction.Right ? Angle.FromDegrees(180) : kakkostankki.Tykki.Angle; LiikutaTankkia(kakkostankki, -300.0); }, "Liikuttaa Tankkia Vasempaan"); 
    57         Keyboard.Listen(Key.D, ButtonState.Down, delegate () { kakkostankki.Tykki.Angle = kakkostankki.FacingDirection == Direction.Left ? Angle.FromDegrees(0) : kakkostankki.Tykki.Angle; LiikutaTankkia(kakkostankki, 300.0); }, "Liikuttaa Tankkia Vasempaan"); 
     60        Keyboard.Listen(Key.A, ButtonState.Down, delegate () {kakkostankki.Tykki.Angle = kakkostankki.FacingDirection == Direction.Left ? Angle.FromDegrees(180) : kakkostankki.Tykki.Angle; LiikutaTankkia(kakkostankki, new Vector(-200000.0, 0)); 
     61            if (kakkostankki.FacingDirection == Direction.Right) { kakkostankki.MirrorImage(); } 
     62            kakkostankki.FacingDirection = Direction.Left; 
     63        }, "Liikuttaa Tankkia Vasempaan"); 
     64        Keyboard.Listen(Key.D, ButtonState.Down, delegate () { kakkostankki.Tykki.Angle = kakkostankki.FacingDirection == Direction.Right ? Angle.FromDegrees(0) : kakkostankki.Tykki.Angle; LiikutaTankkia(kakkostankki, new Vector(200000.0, 0)); if (kakkostankki.FacingDirection == Direction.Left) { kakkostankki.MirrorImage(); } kakkostankki.FacingDirection = Direction.Right; }, "Liikuttaa Tankkia Oikealle"); 
     65 
     66 
     67 
     68        /*Keyboard.Listen(Key.A, ButtonState.Down, delegate () { kakkostankki.Tykki.Angle = kakkostankki.FacingDirection == Direction.Right ? Angle.FromDegrees(180) : kakkostankki.Tykki.Angle; LiikutaTankkia(kakkostankki, (-20000.0)); }, "Liikuttaa Tankkia Vasempaan"); 
     69        Keyboard.Listen(Key.D, ButtonState.Down, delegate () { kakkostankki.Tykki.Angle = kakkostankki.FacingDirection == Direction.Left ? Angle.FromDegrees(0) : kakkostankki.Tykki.Angle; LiikutaTankkia(kakkostankki, (200000.0)); }, "Liikuttaa Tankkia Vasempaan"); 
     70        */ 
     71 
     72 
    5873 
    5974        Keyboard.Listen(Key.W, ButtonState.Down, LiikutaTykkiä, "Liikuta Tykkiä Ylös", kakkostankki, 0.1); 
    6075        Keyboard.Listen(Key.S, ButtonState.Down, LiikutaTykkiä, "Liikuta Tykkiä Alas", kakkostankki, -0.1); 
    61         */ 
     76     
    6277 
    6378        Keyboard.Listen(Key.Space, ButtonState.Down, () => Ammu(tankki, "tankki2"), "Ammu tykillä"); 
     
    7388        { 
    7489            ammus.Image = Ammus1; 
    75             ammus.Size *= 2; 
     90            ammus.Size *= 1.5; 
    7691            AddCollisionHandler(ammus, tankinnimi, delegate (PhysicsObject a, PhysicsObject b) { ((Tankki)b).ElamaLaskuri.Value--; }); 
    7792            ammus.IgnoresCollisionWith(tankki); 
     
    97112        Add(alataso);*/ 
    98113 
    99         Surface alaReuna = Surface.CreateBottom(Level, 600, 625, 100, 2); 
     114        Surface alaReuna = Surface.CreateBottom(Level, 350, 451, 7, 20); 
     115        alaReuna.Y += 200; 
     116 
    100117        alaReuna.Restitution = 0; 
    101118        Add(alaReuna); 
    102  
     119        Camera.ZoomToLevel(); 
    103120 
    104121        Level.CreateLeftBorder(0, true); 
     
    115132        tankki.Tag = "tankki1"; 
    116133        Add(tankki); 
     134        tankki.ElamaLaskuri.LowerLimit += () => TuhoaTankki(tankki); 
    117135        tankki.Ase.ProjectileCollision += (PhysicsObject a, PhysicsObject b) => AmmusOsuu(a, b); 
    118136 
     
    121139        kakkostankki.Tag = "tankki2"; 
    122140        Add(kakkostankki); 
     141        kakkostankki.ElamaLaskuri.LowerLimit += () => TuhoaTankki(kakkostankki); 
    123142        kakkostankki.Ase.ProjectileCollision += (PhysicsObject a, PhysicsObject b) => AmmusOsuu(a, b); 
    124143 
    125144    } 
    126145 
     146    void TuhoaTankki(Tankki tank) 
     147    { 
     148            Explosion rajahdys = new Explosion(250); 
     149        rajahdys.Position = tank.Position; 
     150        Add(rajahdys); 
     151 
     152        Timer.SingleShot(1.0, Begin); 
     153    } 
     154 
    127155    void LiikutaTankkia(Tankki Tankki, Vector nopeus) 
    128156    { 
     
    132160    public void AmmusOsuu(PhysicsObject ammus, PhysicsObject kohde) 
    133161    { 
    134         //ammus.Destroy(); 
     162        ammus.Destroy(); 
    135163    } 
    136164} 
     
    138166class Tankki : PhysicsObject 
    139167{ 
    140     private IntMeter elamaLaskuri = new IntMeter(3, 0, 3); 
     168    private IntMeter elamaLaskuri = new IntMeter(7, 0, 7); 
    141169    public IntMeter ElamaLaskuri { get { return elamaLaskuri; } } 
    142170 
     
    175203        Ase.FireRate = 1; 
    176204        Ase.IsAddedToGame = true; 
    177         Ase.MaxAmmoLifetime = TimeSpan.FromSeconds(4); 
     205         
     206 
     207        //Ase.MaxAmmoLifetime = TimeSpan.FromSeconds(4); 
     208 
     209 
    178210        Ase.CanHitOwner = false; 
    179211        // this.Add(Ase);  
    180212        elamaLaskuri.LowerLimit += delegate { this.Destroy(); this.Tykki.Destroy(); this.Ase.Destroy(); }; 
    181213        Image = kuva; 
    182         Mass = 5; 
    183  
    184     } 
     214        Mass = 400; 
     215 
     216    } 
     217 
     218 
     219 
     220 
    185221} 
Note: See TracChangeset for help on using the changeset viewer.