Changeset 1373


Ignore:
Timestamp:
2010-07-28 14:53:12 (9 years ago)
Author:
samipunn
Message:

ajastin toimii.

Location:
2010/30/samipunn/Misle Launch
Files:
1 added
2 edited

Legend:

Unmodified
Added
Removed
  • 2010/30/samipunn/Misle Launch/Content/Content.contentproj

    r1328 r1373  
    1 <Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="3.5"> 
     1<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="3.5"> 
    22  <PropertyGroup> 
    33    <ProjectGuid>6cf1079b-8cda-47f5-8644-11e4c0a5505a</ProjectGuid> 
     
    3434    <Reference Include="Microsoft.Xna.Framework.Content.Pipeline.XImporter, Version=3.1.0.0, Culture=neutral, PublicKeyToken=6d5c3888ef60e27d" /> 
    3535  </ItemGroup> 
     36  <ItemGroup> 
     37    <Compile Include="kentta.png"> 
     38      <Name>kentta</Name> 
     39      <Importer>TextureImporter</Importer> 
     40      <Processor>TextureProcessor</Processor> 
     41    </Compile> 
     42  </ItemGroup> 
    3643</Project> 
  • 2010/30/samipunn/Misle Launch/Peli.cs

    r1361 r1373  
    66public class Peli : PhysicsGame 
    77{ 
    8  
    9  
    10     PhysicsObject ohjus; 
     8    double ohjusOdotus = 10.0; 
     9 
     10    Image maastonKuva = LoadImage("kentta"); 
     11 
     12    Timer Laskuri1; 
     13    Timer Laskuri2; 
     14    PhysicsObject laukaisualusta2; 
     15    PhysicsObject laukaisualusta1; 
     16    PhysicsObject ohjus1; 
    1117    PhysicsObject ohjus2; 
    1218    double kaantyyOikealle = 5; 
     
    1420    protected override void Begin() 
    1521    { 
     22        Laskuri1 = LuoAikaLaskuri(-150, 0); 
     23        Laskuri2 = LuoAikaLaskuri(150, 0); 
     24         
     25 
     26        laukaisualusta1 = PhysicsObject.CreateStaticObject (60, 20); 
     27        laukaisualusta1.Shape = Shapes.Rectangle; 
     28        laukaisualusta1.X = -400; 
     29        laukaisualusta1.Y = -377; 
     30        laukaisualusta1.Color = Color.Black; 
     31        Add(laukaisualusta1); 
     32 
     33        laukaisualusta2 = PhysicsObject.CreateStaticObject(60, 20); 
     34        laukaisualusta2.Shape = Shapes.Rectangle; 
     35        laukaisualusta2.X = 400; 
     36        laukaisualusta2.Y = -373; 
     37        laukaisualusta2.Color = Color.Black; 
     38        Add(laukaisualusta2); 
     39        
     40 
     41        Shape shape = Shapes.FromImage(1200, 400, maastonKuva); 
     42        PhysicsObject maasto = PhysicsObject.CreateStaticObject(1200, 400, shape ); 
     43        maasto.Y = Level.Bottom + maasto.Height / 2.5; 
     44        Add(maasto); 
     45 
    1646        LuoReunat(); 
    1747        Camera.ZoomToLevel(); 
    18  
    19         ohjus = new PhysicsObject(10, 40); 
     48        Camera.StayInLevel = true; 
     49 
     50        ohjus1 = LuoOhjus(-400, -340); 
     51        ohjus2 = LuoOhjus(400, -340); 
     52         
     53 
     54         
     55        AsetaOhjaimet(); 
     56 
     57        Painovoima(); 
     58        Ilmanvastus(); 
     59    } 
     60 
     61    private PhysicsObject LuoOhjus(double x, double y) 
     62    { 
     63        PhysicsObject ohjus = new PhysicsObject(10, 40); 
    2064        ohjus.Shape = Shapes.Rectangle; 
    21         ohjus.X = -100; 
    22         ohjus.Y = -0; 
     65        ohjus.X = x; 
     66        ohjus.Y = y; 
    2367        AddCollisionHandler(ohjus, Tormays); 
    2468        Add(ohjus); 
    25          
    26  
    27         ohjus2 = new PhysicsObject(10, 40); 
    28         ohjus2.Shape = Shapes.Rectangle; 
    29         ohjus2.X = 100; 
    30         ohjus2.Y = 0; 
    31         AddCollisionHandler(ohjus2, Tormays2);  
    32         Add(ohjus2); 
    33         AsetaOhjaimet(); 
    34  
    35         Painovoima(); 
    36         Ilmanvastus(); 
    37     } 
     69        return ohjus; 
     70    } 
     71    private void nollaaOhjus(PhysicsObject ohjus, double x, double y) 
     72    { 
     73        ohjus.X = x; 
     74        ohjus.Y = y; 
     75        ohjus.Stop(); 
     76        ohjus.Angle = new Angle(); 
     77        Add(ohjus); 
     78    } 
     79 
     80 
    3881    void AsetaOhjaimet() 
    3982    { 
    40         Keyboard.Listen(Key.Z, ButtonState.Down, OhjusKaantyy, "Kaanna Ohjusta Vasemmalle", ohjus, kaantyyVasemmalle); 
    41         Keyboard.Listen(Key.Z, ButtonState.Released, OhjusKaantyy, null, ohjus,0.0); 
    42         Keyboard.Listen(Key.A, ButtonState.Down, OhjusKaantyy, "Kaanna Ohjusta Oikealle", ohjus, kaantyyOikealle); 
    43         Keyboard.Listen(Key.A, ButtonState.Released, OhjusKaantyy, null, ohjus,0.0); 
     83        Keyboard.Listen(Key.Z, ButtonState.Down, OhjusKaantyy, "Kaanna Ohjusta Vasemmalle", ohjus1, kaantyyVasemmalle); 
     84        Keyboard.Listen(Key.Z, ButtonState.Released, OhjusKaantyy, null, ohjus1,0.0); 
     85        Keyboard.Listen(Key.A, ButtonState.Down, OhjusKaantyy, "Kaanna Ohjusta Oikealle", ohjus1, kaantyyOikealle); 
     86        Keyboard.Listen(Key.A, ButtonState.Released, OhjusKaantyy, null, ohjus1,0.0); 
    4487 
    4588        Keyboard.Listen(Key.Up, ButtonState.Down, Ohjus2Kaantyy, "Kaanna Ohjusta2 Vasemmalle", ohjus2, kaantyyVasemmalle); 
     
    67110    void Paivitys() 
    68111    { 
    69     ohjus.Push(Vector.FromLengthAndAngle(1500, ohjus.Angle + Angle.RightAngle)); 
    70     ohjus2.Push(Vector.FromLengthAndAngle(1500, ohjus2.Angle + Angle.RightAngle)); 
    71  
     112        ohjus1.Push(Vector.FromLengthAndAngle(1500, ohjus1.Angle + Angle.RightAngle)); 
     113        ohjus2.Push(Vector.FromLengthAndAngle(1500, ohjus2.Angle + Angle.RightAngle)); 
    72114    } 
    73115 
     
    75117    { 
    76118        Gravity = new Vector(0.0, -800.0); 
    77  
    78119    } 
    79120 
    80121    void Ilmanvastus() 
    81122    { 
    82        ohjus.LinearDamping = 0.9; 
     123       ohjus1.LinearDamping = 0.9; 
    83124       ohjus2.LinearDamping = 0.9; 
    84125    } 
    85126    protected override void Update(Time time) 
    86127    { 
    87     Paivitys(); 
    88     base.Update(time); 
     128        Paivitys(); 
     129        base.Update(time); 
    89130    } 
    90131 
     
    97138    void Tormays(PhysicsObject ohjus, PhysicsObject kohde) 
    98139    { 
    99         ohjus.Destroy(); 
     140        Remove(ohjus); 
    100141        Explosion rajahdys = new Explosion(60); 
    101142        rajahdys.Position = ohjus.Position; 
     
    103144        rajahdys.Force = 90;         
    104145        Add(rajahdys); 
    105          
    106  
    107     } 
    108  
    109     void Tormays2(PhysicsObject ohjus, PhysicsObject kohde) 
    110     { 
    111         ohjus2.Destroy();  
    112         Explosion rajahdys = new Explosion(60); 
    113         rajahdys.Position = ohjus2.Position; 
    114         rajahdys.Speed = 300.0; 
    115         rajahdys.Force = 90; 
    116         Add(rajahdys); 
     146 
     147        if (ohjus == ohjus1)     
     148        { 
     149            KaynnistaLaskuri(Laskuri1, ohjusOdotus); 
    117150        } 
    118  
    119     DoubleMeter alaspainLaskuri; 
    120  
    121 void LuoAikaLaskuri() 
    122 { 
    123     alaspainLaskuri = new DoubleMeter(30); 
    124      
    125     Timer aikaLaskuri = new Timer(); 
    126     aikaLaskuri.Interval = 0.1; 
    127     aikaLaskuri.Trigger += LaskeAlaspain; 
    128     Add(aikaLaskuri); 
    129     aikaLaskuri.Start(); 
    130  
    131     Label aikaNaytto = new Label(); 
    132     aikaNaytto.TextColor = Color.White; 
    133     aikaNaytto.DecimalPlaces = 1; 
    134     aikaNaytto.BindTo(alaspainLaskuri); 
    135     Add(aikaNaytto); 
     151        if (ohjus == ohjus2) 
     152        { 
     153            KaynnistaLaskuri(Laskuri2, ohjusOdotus); 
     154        } 
     155    } 
     156 
     157    Timer LuoAikaLaskuri(double x, double y) 
     158    { 
     159        DoubleMeter alaspainLaskuri = new DoubleMeter(ohjusOdotus); 
     160 
     161        Timer aikaLaskuri = new Timer(); 
     162        aikaLaskuri.Interval = 0.1; 
     163        aikaLaskuri.Trigger += LaskeAlaspain; 
     164        aikaLaskuri.Tag = alaspainLaskuri; 
     165        Add(aikaLaskuri); 
     166 
     167        Label aikaNaytto = new Label(); 
     168        aikaNaytto.TextColor = Color.White; 
     169        aikaNaytto.DecimalPlaces = 1; 
     170        aikaNaytto.BindTo(alaspainLaskuri); 
     171        aikaNaytto.X = x; 
     172        aikaNaytto.Y = y; 
     173        Add(aikaNaytto); 
     174 
     175        return aikaLaskuri; 
     176    } 
     177 
     178    void KaynnistaLaskuri(Timer timer, double aikaaJaljella) 
     179    { 
     180        DoubleMeter alaspainLaskuri = (DoubleMeter)(timer.Tag); 
     181        alaspainLaskuri.Value = aikaaJaljella; 
     182 
     183        timer.Start(); 
     184    } 
     185 
     186    void LaskeAlaspain(Timer timer) 
     187    { 
     188        DoubleMeter alaspainLaskuri = (DoubleMeter)(timer.Tag); 
     189        alaspainLaskuri.Value -= 0.1; 
     190 
     191        if (alaspainLaskuri.Value <= 0) 
     192        { 
     193             
     194            timer.Stop(); 
     195 
     196            if (timer == Laskuri1) 
     197            { 
     198                 nollaaOhjus(ohjus1, -400, -340); 
     199            } 
     200 
     201            if (timer == Laskuri2) 
     202            { 
     203                nollaaOhjus(ohjus2, 400, -340);  
     204            } 
     205             
     206             
     207        } 
     208    } 
     209 
     210 
     211    
     212 
     213    
     214 
     215 
     216 
    136217} 
    137218 
    138 void LaskeAlaspain(Timer timer) 
    139 { 
    140     alaspainLaskuri.Value -= 0.1; 
    141  
    142     if (alaspainLaskuri.Value <= 0) 
    143     { 
    144         MessageDisplay.Add("Aika loppui..."); 
    145         timer.Stop(); 
    146         
    147         // täydennä mitä tapahtuu, kun aika loppuu 
    148     } 
    149 } 
    150  
    151  
    152 } 
    153  
Note: See TracChangeset for help on using the changeset viewer.