Changeset 1464 for 2010/30/mikrkana


Ignore:
Timestamp:
2010-07-30 13:02:35 (9 years ago)
Author:
mikrkana
Message:
 
Location:
2010/30/mikrkana/HelicopterHavoc
Files:
1 added
2 edited

Legend:

Unmodified
Added
Removed
  • 2010/30/mikrkana/HelicopterHavoc/Content/Content.contentproj

    r1420 r1464  
    4848    </Compile> 
    4949  </ItemGroup> 
     50  <ItemGroup> 
     51    <Compile Include="siviili.png"> 
     52      <Name>siviili</Name> 
     53      <Importer>TextureImporter</Importer> 
     54      <Processor>TextureProcessor</Processor> 
     55    </Compile> 
     56  </ItemGroup> 
    5057</Project> 
  • 2010/30/mikrkana/HelicopterHavoc/Peli.cs

    r1420 r1464  
    1313    Image olionkuvaPeilattu; 
    1414    Image tankinkuva = LoadImage("tankki"); 
    15     //ClusterGrenade clusterkranaatti; 
    16     //Grenade kranaatti; 
    17  
     15    Image tankinkuvaPeilattu; 
     16    ObjectIgnorer ignorer; 
     17    
    1818    DoubleMeter voimaMittari; 
    1919 
     20    Cannon tykki; 
     21 
     22    Image siviilinkuva = LoadImage("siviili"); 
     23 
     24     
    2025    AssaultRifle pyssy; 
    2126    Image pyssyKuva; 
    2227    Image pyssyKuvaPeilattu; 
    2328 
     29    
    2430    protected override void Begin() 
    2531    { 
     32        ignorer = new ObjectIgnorer(); 
    2633        olionkuvaPeilattu = Image.Mirror(olionkuva); 
     34 
     35        tankinkuvaPeilattu = Image.Mirror(tankinkuva); 
    2736 
    2837        LuoKenttä(); 
    2938        LisääHelikopteri(); 
    3039        LisääOhjaimet(); 
    31         LuoViholliset(); 
    32     } 
     40     
     41         for (int tankki = 0; tankki < 10; tankki++) 
     42     
     43     LuoViholliset(); 
     44     LisääSiviilit(); 
     45 
     46    } 
     47     
    3348 
    3449    void LuoKenttä() 
     
    3651        Level.Width = 8000.0; 
    3752        Level.Height = 1000.0; 
    38         Level.CreateBorders(0.0, false); 
     53        Level.CreateBorders(0.0, true); 
    3954        Gravity = new Vector(0.0, -500.0); 
    4055        Level.CreateGround(0, 400, 20); 
    4156        Camera.StayInLevel = true; 
    4257 
    43         //ObjectIgnorer ignorer = new ObjectIgnorer(); 
    44         //helikopteri.CollisionIgnorer = ignorer; 
    45         //ClusterGrenade.CollisionIgnorer = ignorer; 
    46         //Grenade.CollisionIgnorer = ignorer; 
     58         
     59         
     60        
    4761 
    4862    } 
     
    5569        helikopteri.LinearDamping = 0.8; 
    5670        helikopteri.CanRotate = false; 
    57         //AddCollisionHandler(helikopteri, KasitteleHelikopterinTormays);  
     71        AddCollisionHandler(helikopteri, KasitteleHelikopterinTormays);  
    5872        Camera.Follow(helikopteri); 
    5973        Add(helikopteri); 
     74        helikopteri.CollisionIgnorer = ignorer; 
    6075 
    6176        pyssy = new AssaultRifle(100, 20);         
     
    6681        pyssy.IsVisible = false; 
    6782        pyssy.Ammo.Value = 1000; 
     83        pyssy.BulletCollision = LuotiOsuu; 
     84 
    6885 
    6986        voimaMittari = new DoubleMeter(4000); 
     
    84101 
    85102    } 
     103 
     104    void LuotiOsuu(PhysicsObject luoti, PhysicsObject toinen) 
     105    { 
     106        luoti.Destroy(); 
     107        Explosion rajahdys = new Explosion(40); 
     108        rajahdys.Position = luoti.Position; 
     109        Add(rajahdys); 
     110    } 
     111 
     112    void LisääSiviilit() 
     113    { 
     114        PhysicsObject siviili = new PhysicsObject(256.0,256.0); 
     115        siviili.Image = siviilinkuva; 
     116        siviili.X = RandomGen.NextDouble(-3000.0, 3000.0);  
     117        siviili.Y = RandomGen. NextDouble(600.0, 700.0); 
     118        siviili.Tag = "siviili"; 
     119 
     120        Add( siviili ); 
     121    } 
     122 
    86123 
    87124    void LisääOhjaimet() 
     
    106143        if (ammus != null) 
    107144        { 
     145            ammus.CollisionIgnorer = ignorer; 
    108146            ammus.Size = new Vector(20, 4); 
    109             ammus.MaximumLifetime = new TimeSpan(0, 0, 2); 
     147            ammus.MaximumLifetime = new TimeSpan(0, 0, 4); 
     148            AddCollisionHandler(ammus, ammusOsuu); 
     149        } 
     150    } 
     151 
     152    void ammusOsuu( PhysicsObject ammus, PhysicsObject kohde) 
     153    { 
     154        if (kohde.Tag.ToString() == "tankki" || kohde.Tag.ToString() == "siviili") 
     155        { 
     156            Explosion rajahdys = new Explosion(800); 
     157            rajahdys.Position = kohde.Position; 
     158            rajahdys.Speed = 600.0; 
     159            rajahdys.Force = 20000; 
     160            kohde.Destroy(); 
     161            Add(rajahdys); 
    110162        } 
    111163    } 
     
    117169    void LuoViholliset() 
    118170    { 
    119         PhysicsObject tankki = new PhysicsObject(256, 256); 
     171        PhysicsObject tankki = new PhysicsObject(300, 256); 
    120172        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); 
     173        tankki.Tag = "tankki"; 
     174        tankki.X = RandomGen.NextDouble(-3000.0, 3000.0); 
     175        tankki.Y = RandomGen.NextDouble(600.0, 700.0); 
     176        //AddCollisionHandler(tankki, KasitteleTankinTormaus); 
     177        tankki.CanRotate = false; 
     178        tykki = new Cannon(50, 10); 
     179        tankki.Add( tykki ); 
     180        tykki.X = 130; 
     181        tykki.Y = 85; 
     182        tykki.Power.Value += 2000; 
     183        tykki.CannonBallCollision = KuulaOsuu; 
     184 
     185 
     186        Timer ajastin = new Timer(); 
     187        ajastin.Tag = tankki; 
     188        ajastin.Interval = 0.01; 
     189        ajastin.Trigger += TankinPaivitys; 
     190        ajastin.Start(); 
     191 
     192 
     193 
    123194        Add(tankki); 
    124195    } 
    125      
    126  
     196 
     197    void KuulaOsuu(PhysicsObject kuula, PhysicsObject toinen) 
     198    { 
     199        kuula.Destroy(); 
     200        Explosion rajahdys = new Explosion(100); 
     201        rajahdys.Position = kuula.Position; 
     202        Add(rajahdys); 
     203    } 
     204 
     205 
     206  void KasitteleTankinTormaus(PhysicsObject tankki, PhysicsObject luoti) 
     207    { 
     208        Explosion rajahdys = new Explosion(800); 
     209        rajahdys.Position = tankki.Position; 
     210        rajahdys.Speed = 600.0; 
     211        rajahdys.Force = 20000; 
     212        tankki.Destroy(); 
     213        Add(rajahdys); 
     214    } 
     215 
     216    void TankinPaivitys(Timer ajastin) 
     217    { 
     218        PhysicsObject tankki = ((PhysicsObject)ajastin.Tag); 
     219        if (tankki.X > helikopteri.X) 
     220            tankki.Image = tankinkuvaPeilattu; 
     221             
     222        if (tankki.X < helikopteri.X) 
     223            tankki.Image = tankinkuva; 
     224             
     225        if (Vector.Distance(tankki.Position, helikopteri.Position) < 1000) 
     226        { 
     227            PhysicsObject ammus = tykki.Shoot(); 
     228 
     229            if (ammus != null) 
     230            { 
     231                ammus.Velocity = (helikopteri.Position - tankki.Position) * 2; 
     232                ammus.Size *= 3; 
     233            } 
     234 
     235        } 
     236 
     237 
     238    } 
    127239 
    128240    protected override void Update(Time time) 
    129241    { 
     242         
    130243        if (helikopteri.Velocity.X <= 0) 
    131244        { 
     
    150263    { 
    151264        ClusterGrenade kranaatti = new ClusterGrenade(12.0, 3); 
    152         kranaatti.X = helikopteri.X + 10; 
    153         kranaatti.Y = helikopteri.Y + 10; 
     265        kranaatti.X = helikopteri.X + 100; 
     266        kranaatti.Y = helikopteri.Y + 100; 
    154267        kranaatti.NumberOfClusters = 4; 
    155         //AddCollisionHandler(ClusterGrenade, KasitteleClusterkranaatinTormays ); 
    156         kranaatti.FuseTime = TimeSpan.FromSeconds(3.0); 
     268        kranaatti.FuseTime = TimeSpan.FromSeconds(2.0); 
    157269        Vector heittoVoima = Vector.FromLengthAndAngle(8000, Angle.Degrees(45)); 
    158270        kranaatti.Hit(heittoVoima); 
     
    163275    { 
    164276        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 ); 
     277        kranaatti.X = helikopteri.X + 100; 
     278        kranaatti.Y = helikopteri.Y + 100; 
     279        kranaatti.FuseTime = TimeSpan.FromSeconds(2  ); 
    169280        Vector heittoVoima = Vector.FromLengthAndAngle(8000, Angle.Degrees(45)); 
    170281        kranaatti.Hit(heittoVoima); 
     
    193304 
    194305 
    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     //} 
     306    void KasitteleHelikopterinTormays(PhysicsObject helikopteri, PhysicsObject kohde) 
     307    { 
     308        Explosion rajahdys = new Explosion(800); 
     309        rajahdys.Position = helikopteri.Position; 
     310        rajahdys.Speed = 600.0; 
     311        rajahdys.Force = 5000; 
     312        helikopteri.Destroy(); 
     313        Add(rajahdys); 
     314    } 
     315 
    214316 
    215317 
Note: See TracChangeset for help on using the changeset viewer.