Ignore:
Timestamp:
2010-07-29 14:57:54 (9 years ago)
Author:
mikrkana
Message:

Melkein valmis HelicopterHavoc?(viholliset kesken)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • 2010/30/mikrkana/HelicopterHavoc/Peli.cs

    r1390 r1420  
    33using Jypeli.Widgets; 
    44using Jypeli.Assets; 
     5using Physics2DDotNet.Ignorers; 
    56 
    67public class HelicopterHavoc : PhysicsGame 
     
    1112    Image olionkuva = LoadImage("helikopteri"); 
    1213    Image olionkuvaPeilattu; 
    13  
     14    Image tankinkuva = LoadImage("tankki"); 
     15    //ClusterGrenade clusterkranaatti; 
     16    //Grenade kranaatti; 
     17 
     18    DoubleMeter voimaMittari; 
    1419 
    1520    AssaultRifle pyssy; 
    16  
     21    Image pyssyKuva; 
     22    Image pyssyKuvaPeilattu; 
    1723 
    1824    protected override void Begin() 
     
    2329        LisääHelikopteri(); 
    2430        LisääOhjaimet(); 
     31        LuoViholliset(); 
    2532    } 
    2633 
    2734    void LuoKenttä() 
    2835    { 
    29         Level.CreateBorders(1.0, true); 
     36        Level.Width = 8000.0; 
     37        Level.Height = 1000.0; 
     38        Level.CreateBorders(0.0, false); 
    3039        Gravity = new Vector(0.0, -500.0); 
     40        Level.CreateGround(0, 400, 20); 
     41        Camera.StayInLevel = true; 
     42 
     43        //ObjectIgnorer ignorer = new ObjectIgnorer(); 
     44        //helikopteri.CollisionIgnorer = ignorer; 
     45        //ClusterGrenade.CollisionIgnorer = ignorer; 
     46        //Grenade.CollisionIgnorer = ignorer; 
    3147 
    3248    } 
     
    3955        helikopteri.LinearDamping = 0.8; 
    4056        helikopteri.CanRotate = false; 
     57        //AddCollisionHandler(helikopteri, KasitteleHelikopterinTormays);  
     58        Camera.Follow(helikopteri); 
    4159        Add(helikopteri); 
    4260 
    43         pyssy = new AssaultRifle(100, 20); 
     61        pyssy = new AssaultRifle(100, 20);         
     62        pyssyKuva = pyssy.Image; 
     63        pyssyKuvaPeilattu = Image.Mirror(pyssy.Image); 
    4464        helikopteri.Add(pyssy); 
    45         pyssy.Position = new Vector(helikopteri.X + 120, helikopteri.Y-50); 
     65        pyssy.Position = new Vector(helikopteri.X  -10, helikopteri.Y-40); 
    4666        pyssy.IsVisible = false; 
    47          
    48  
     67        pyssy.Ammo.Value = 1000; 
     68 
     69        voimaMittari = new DoubleMeter(4000); 
     70        voimaMittari.MaxValue = 4000; 
     71        BarGauge voimaPalkki = new BarGauge(20, 150); 
     72        voimaPalkki.BindTo(voimaMittari); 
     73        Add(voimaPalkki); 
     74 
     75        voimaPalkki.X = (0.8 * Screen.RightSafe); 
     76        voimaPalkki.Y = (0.8 * Screen.TopSafe); 
     77        voimaPalkki.BarColor = Color.Green; 
     78        voimaPalkki.BorderColor = Color.White; 
     79        voimaPalkki.Angle = Angle.Degrees(180); 
     80 
     81        // Kun voima loppuu, kutsutaan VoimaLoppui-aliohjelmaa 
     82        voimaMittari.LowerLimit += VoimaLoppui; 
    4983 
    5084 
     
    6094        Keyboard.Listen(Key.E, ButtonState.Down, KallistaHelikopteria, null, -2.0); 
    6195        Keyboard.Listen(Key.Space, ButtonState.Down, Ammu, "Ammu"); 
     96        Keyboard.Listen(Key.V, ButtonState.Pressed, HeitaClusterKranaatti, "HeitaClusterKranaatti"); 
     97        Keyboard.Listen(Key.B, ButtonState.Pressed, HeitaKranaatti, "HeitaKranaatti"); 
     98        Keyboard.Listen(Key.W, ButtonState.Down, VahennaVoimia, "Vähennä pelaajan voimia"); 
     99        Keyboard.Listen(Key.A, ButtonState.Down, VahennaVoimia, "Vähennä pelaajan voimia"); 
     100        Keyboard.Listen(Key.S, ButtonState.Down, VahennaVoimia, "Vähennä pelaajan voimia"); 
    62101    } 
    63102 
     
    68107        { 
    69108            ammus.Size = new Vector(20, 4); 
     109            ammus.MaximumLifetime = new TimeSpan(0, 0, 2); 
    70110        } 
    71111    } 
     
    75115        helikopteri.Push(vektori); 
    76116    } 
    77  
    78  
    79  
    80  
     117    void LuoViholliset() 
     118    { 
     119        PhysicsObject tankki = new PhysicsObject(256, 256); 
     120        tankki.Image = tankinkuva; 
     121        tankki.X = 2100.0; //RandomGen.NextDouble(4000.0, 4000.0); 
     122        tankki.Y = 800.0; //RandomGen.NextDouble(800.0, 900.0); 
     123        Add(tankki); 
     124    } 
     125     
    81126 
    82127 
    83128    protected override void Update(Time time) 
    84129    { 
    85         if (helikopteri.Velocity.X < 0) 
     130        if (helikopteri.Velocity.X <= 0) 
    86131        { 
    87132            helikopteri.Image = olionkuvaPeilattu; 
     133            pyssy.Angle = Angle.Radians(Math.PI); 
    88134        } 
    89135        if (helikopteri.Velocity.X > 0) 
    90136        { 
    91137            helikopteri.Image = olionkuva; 
     138            pyssy.Angle = Angle.Radians(0); 
    92139        } 
    93140        base.Update(time); 
     
    100147    } 
    101148 
     149    void HeitaClusterKranaatti() 
     150    { 
     151        ClusterGrenade kranaatti = new ClusterGrenade(12.0, 3); 
     152        kranaatti.X = helikopteri.X + 10; 
     153        kranaatti.Y = helikopteri.Y + 10; 
     154        kranaatti.NumberOfClusters = 4; 
     155        //AddCollisionHandler(ClusterGrenade, KasitteleClusterkranaatinTormays ); 
     156        kranaatti.FuseTime = TimeSpan.FromSeconds(3.0); 
     157        Vector heittoVoima = Vector.FromLengthAndAngle(8000, Angle.Degrees(45)); 
     158        kranaatti.Hit(heittoVoima); 
     159        Add(kranaatti);  
     160    } 
     161 
     162    void HeitaKranaatti() 
     163    { 
     164        Grenade kranaatti = new Grenade(12.0); 
     165        kranaatti.X = helikopteri.X + 10; 
     166        kranaatti.Y = helikopteri.Y + 10; 
     167        //AddCollisionHandler(Grenade, KasitteleKranaatinTormays); 
     168        kranaatti.FuseTime = TimeSpan.FromSeconds(3 ); 
     169        Vector heittoVoima = Vector.FromLengthAndAngle(8000, Angle.Degrees(45)); 
     170        kranaatti.Hit(heittoVoima); 
     171          
     172        Add(kranaatti); 
     173    } 
     174 
     175    void VahennaVoimia() 
     176    { 
     177        voimaMittari.Value--; 
     178    } 
     179 
     180    void VoimaLoppui(double mittarinArvo) 
     181    { 
     182        Explosion rajahdys = new Explosion(800); 
     183        rajahdys.Position = helikopteri.Position; 
     184        rajahdys.Speed = 600.0; 
     185        rajahdys.Force = 20000; 
     186        Add(rajahdys); 
     187        helikopteri.Destroy(); 
     188 
     189   
     190    } 
     191 
     192 
     193 
     194 
     195    //void KasitteleHelikopterinTormays(PhysicsObject helikopteri, PhysicsObject kohde) 
     196    //{ 
     197        //Explosion rajahdys = new Explosion(800); 
     198        // rajahdys.Position = helikopteri.Position; 
     199        //rajahdys.Speed = 600.0; 
     200        //rajahdys.Force = 20000; 
     201        //Add(rajahdys); 
     202 
     203  //  } 
     204 
     205    //void KasitteleClusterkranaatinTormaus() 
     206    //{ 
     207 
     208    //} 
     209 
     210    //void KasitteleKranaatinTormaus() 
     211    //{ 
     212 
     213    //} 
     214 
     215 
     216 
     217 
     218 
     219 
     220 
    102221} 
Note: See TracChangeset for help on using the changeset viewer.