Changeset 920 for 2010/24


Ignore:
Timestamp:
2010-06-16 16:03:14 (9 years ago)
Author:
tekrjant
Message:

Talo joka ei pysy pystyssä.

Location:
2010/24/tekrjant/Laskuvarjo
Files:
1 added
2 edited

Legend:

Unmodified
Added
Removed
  • 2010/24/tekrjant/Laskuvarjo/Content/Content.contentproj

    r910 r920  
    9292    </Compile> 
    9393  </ItemGroup> 
     94  <ItemGroup> 
     95    <Compile Include="seina.png"> 
     96      <Name>seina</Name> 
     97      <Importer>TextureImporter</Importer> 
     98      <Processor>TextureProcessor</Processor> 
     99    </Compile> 
     100  </ItemGroup> 
    94101</Project> 
  • 2010/24/tekrjant/Laskuvarjo/Peli.cs

    r910 r920  
    1212    Image kuusenKuva; 
    1313    Image vuorenKuva; 
     14    Image seinanKuva; 
    1415 
    1516    PhysicsObject maasto; 
     
    2223        LataaKuvat(); 
    2324 
    24         Gravity = new Vector( 0, -500 ); 
     25        Gravity = new Vector(0, -500); 
    2526 
    2627        Level.Width = 3000; 
     
    3435 
    3536        LuoMaasto(); 
     37        LuoTalot(); 
    3638        LisaaPilvet(); 
    3739 
    38         pelaaja = new PlatformCharacter( 20, 30 ); 
     40        pelaaja = new PlatformCharacter(20, 30); 
    3941        pelaaja.CanMoveOnAir = false; 
    4042        pelaaja.Mass = 80; 
    41         pelaaja.Image = LoadImage( "hahmo" ); 
     43        pelaaja.Image = LoadImage("hahmo"); 
    4244        pelaaja.Color = Color.Black; 
    4345        pelaaja.LinearDamping = 0.99; 
    4446        pelaaja.X = 0; 
    45         pelaaja.Y = Level.Top - 6000; 
    46         Add( pelaaja ); 
    47  
    48         AddCollisionHandler( pelaaja, PelaajaOsuu ); 
    49  
    50         laskuvarjo = new GameObject( 50, 50 ); 
     47        pelaaja.Y = Level.Top - 100; 
     48        Add(pelaaja); 
     49 
     50        AddCollisionHandler(pelaaja, PelaajaOsuu); 
     51 
     52        laskuvarjo = new GameObject(50, 50); 
    5153        laskuvarjo.IsVisible = false; 
    5254        laskuvarjo.X = 0; 
    5355        laskuvarjo.Y = 20; 
    54         laskuvarjo.Animation = new Animation( laskuvarjonKuvat ); 
     56        laskuvarjo.Animation = new Animation(laskuvarjonKuvat); 
    5557        laskuvarjo.Animation.StopOnLastFrame = true; 
    56         pelaaja.Add( laskuvarjo ); 
    57  
    58         Camera.Follow( pelaaja ); 
     58        pelaaja.Add(laskuvarjo); 
     59 
     60        Camera.Follow(pelaaja); 
    5961 
    6062        Timer korkeusAjastin = new Timer(); 
    6163        korkeusAjastin.Interval = 1; 
    6264        korkeusAjastin.Trigger += NaytaKorkeus; 
    63         Add( korkeusAjastin ); 
     65        Add(korkeusAjastin); 
    6466        korkeusAjastin.Start(); 
    6567 
     
    7173        kuusenKuva = LoadImage("kuusi"); 
    7274        vuorenKuva = LoadImage("vuori"); 
     75        seinanKuva = LoadImage("seina"); 
    7376        laskuvarjonKuvat = LoadImages( 
    7477            "laskuvarjo1", 
     
    8285    } 
    8386 
    84     void NaytaKorkeus( Timer sender ) 
     87    void NaytaKorkeus(Timer sender) 
    8588    { 
    8689        double korkeus = pelaaja.Y - Level.Bottom; 
    87         MessageDisplay.Add( "Korkeus: " + korkeus.ToString( "F0" ) ); 
    88  
    89         if ( korkeus < 100 ) 
     90        MessageDisplay.Add("Korkeus: " + korkeus.ToString("F0")); 
     91 
     92        if (korkeus < 100) 
    9093        { 
    9194            sender.Stop(); 
     
    9396    } 
    9497 
    95     void PelaajaOsuu( PhysicsObject pelaaja, PhysicsObject toinen ) 
    96     { 
    97         if ( toinen == maasto ) 
     98    void PelaajaOsuu(PhysicsObject pelaaja, PhysicsObject toinen) 
     99    { 
     100        if (toinen == maasto) 
    98101        { 
    99102            SuljeLaskuvarjo(); 
    100103 
    101             MessageDisplay.Add( "nopeus: " + pelaaja.Velocity.Y ); 
    102  
    103             if ( Math.Abs(pelaaja.Velocity.Y) > 200 ) 
     104            MessageDisplay.Add("nopeus: " + pelaaja.Velocity.Y); 
     105 
     106            if (Math.Abs(pelaaja.Velocity.Y) > 200) 
    104107            { 
    105108                // auts... 
     
    120123                    } 
    121124                } 
    122                  //   Vector maiskeenlento = new Vector(); 
    123                      
    124                      
     125                //   Vector maiskeenlento = new Vector(); 
     126 
     127 
    125128 
    126129 
    127130                pelaaja.Image = null; 
    128131                pelaaja.Color = Color.Black; 
    129                 pelaaja.Size = new Vector( 20, 5 ); 
     132                pelaaja.Size = new Vector(20, 5); 
    130133            } 
    131134        } 
     
    134137    void LisaaPilvet() 
    135138    { 
    136         for ( int i = 0; i < 100; i++ ) 
    137         { 
    138             double leveys = RandomGen.NextDouble( 100, 600 ); 
    139             double korkeus = RandomGen.NextDouble( 100, 500 ); 
    140             GameObject pilvi = new GameObject( leveys, korkeus, Shapes.Circle ); 
    141             pilvi.X = RandomGen.NextDouble( Level.Left, Level.Right ); 
    142             pilvi.Y = RandomGen.NextDouble( Level.Bottom + 1000, Level.Top ); 
     139        for (int i = 0; i < 100; i++) 
     140        { 
     141            double leveys = RandomGen.NextDouble(100, 600); 
     142            double korkeus = RandomGen.NextDouble(100, 500); 
     143            GameObject pilvi = new GameObject(leveys, korkeus, Shapes.Circle); 
     144            pilvi.X = RandomGen.NextDouble(Level.Left, Level.Right); 
     145            pilvi.Y = RandomGen.NextDouble(Level.Bottom + 1000, Level.Top); 
    143146            pilvi.Color = Color.White; 
    144             Add( pilvi ); 
     147            Add(pilvi); 
    145148        } 
    146149    } 
     
    155158 
    156159        maasto = PhysicsObject.CreateStaticObject(Level.Width, 1000, Shapes.Rectangle); 
     160        maasto.KineticFriction = 0.2; 
    157161        maasto.X = 0; 
    158162        maasto.Y = Level.Bottom - maasto.Height / 2; 
    159163        maasto.Color = Color.Green; 
    160         Add( maasto ); 
     164        Add(maasto); 
    161165 
    162166        for (int i = 0; i < 40; i++) 
     
    172176    } 
    173177 
     178    void LuoTalot() 
     179    { 
     180        LuoTalo(200, 100, 0); 
     181    } 
     182 
     183    void LuoTalo(double leveys, double korkeus, double x) 
     184    { 
     185        double left = x - leveys / 2; 
     186        double right = x + leveys / 2; 
     187        double kattoParrunPaksuus = 20; 
     188 
     189        // seinän tekstuuri... 
     190        GameObject seina = new GameObject(leveys, korkeus); 
     191        seina.Image = seinanKuva; 
     192        seina.X = x; 
     193        seina.Y = Level.Bottom + korkeus / 2; 
     194        seina.TextureWrapSize = new Vector(leveys / 64, korkeus / 64); 
     195        Add(seina); 
     196 
     197        PhysicsObject vasenSeina = new PhysicsObject(20, korkeus - kattoParrunPaksuus / 2); 
     198        vasenSeina.Mass = 1000; 
     199        vasenSeina.KineticFriction = 0.0; 
     200        vasenSeina.Restitution = 0.0; 
     201        vasenSeina.Color = Color.Brown; 
     202        vasenSeina.X = left + vasenSeina.Width / 2; 
     203        vasenSeina.Y = Level.Bottom + vasenSeina.Height / 2; 
     204        Add(vasenSeina); 
     205 
     206        PhysicsObject oikeaSeina = new PhysicsObject(20, korkeus - kattoParrunPaksuus / 2); 
     207        oikeaSeina.Mass = 1000; 
     208        oikeaSeina.KineticFriction = 0.0; 
     209        oikeaSeina.Restitution = 0.0; 
     210        oikeaSeina.Color = Color.Brown; 
     211        oikeaSeina.X = right - oikeaSeina.Width / 2; 
     212        oikeaSeina.Y = Level.Bottom + oikeaSeina.Height / 2; 
     213        Add(oikeaSeina); 
     214 
     215        PhysicsObject keskiParru = new PhysicsObject(20, korkeus - kattoParrunPaksuus / 2); 
     216        keskiParru.Mass = 100; 
     217        keskiParru.KineticFriction = 0.0; 
     218        keskiParru.Restitution = 0.0; 
     219        keskiParru.Color = Color.Brown; 
     220        keskiParru.X = x; 
     221        keskiParru.Y = Level.Bottom + keskiParru.Height / 2; 
     222        Add(keskiParru); 
     223 
     224        PhysicsObject kattoParru1 = new PhysicsObject(leveys / 2, kattoParrunPaksuus); 
     225        kattoParru1.Mass = 300; 
     226        kattoParru1.KineticFriction = 0.0; 
     227        kattoParru1.Restitution = 0.0; 
     228        kattoParru1.Color = Color.Brown; 
     229        kattoParru1.X = x - leveys / 4; 
     230        kattoParru1.Y = Level.Bottom + korkeus; 
     231        Add(kattoParru1); 
     232 
     233        PhysicsObject kattoParru2 = new PhysicsObject(leveys / 2, kattoParrunPaksuus); 
     234        kattoParru2.Mass = 300; 
     235        kattoParru1.KineticFriction = 0.0; 
     236        kattoParru1.Restitution = 0.0; 
     237        kattoParru2.Color = Color.Brown; 
     238        kattoParru2.X = x + leveys / 4; 
     239        kattoParru2.Y = Level.Bottom + korkeus + 10; 
     240        Add(kattoParru2); 
     241    } 
     242 
    174243    void SuljeLaskuvarjo() 
    175244    { 
     
    181250    void AsetaOhjaimet() 
    182251    { 
    183         Keyboard.Listen( Key.Escape, ButtonState.Pressed, Exit, null ); 
     252        Keyboard.Listen(Key.Escape, ButtonState.Pressed, Exit, null); 
    184253 
    185254        // huijaus 
    186255        Keyboard.Listen(Key.F2, ButtonState.Pressed, PelaajaMaahan, null); 
    187256 
    188         Keyboard.Listen( Key.Space, ButtonState.Pressed, AukaiseLaskuvarjo, "Aukaise laskuvarjo" ); 
    189         Keyboard.Listen( Key.Left, ButtonState.Down, pelaaja.Walk, null, -KavelyNopeus ); 
    190         Keyboard.Listen( Key.Right, ButtonState.Down, pelaaja.Walk, null, KavelyNopeus ); 
     257        Keyboard.Listen(Key.Space, ButtonState.Pressed, AukaiseLaskuvarjo, "Aukaise laskuvarjo"); 
     258        Keyboard.Listen(Key.Left, ButtonState.Down, pelaaja.Walk, null, -KavelyNopeus); 
     259        Keyboard.Listen(Key.Right, ButtonState.Down, pelaaja.Walk, null, KavelyNopeus); 
    191260        Keyboard.Listen(Key.Left, ButtonState.Released, pelaaja.StopHorizontal, null); 
    192261        Keyboard.Listen(Key.Right, ButtonState.Released, pelaaja.StopHorizontal, null); 
     
    201270    void PelaajaMaahan() 
    202271    { 
     272        pelaaja.X = -200; 
    203273        pelaaja.Y = Level.Bottom + pelaaja.Height; 
    204274        pelaaja.StopVertical(); 
     
    207277    void AukaiseLaskuvarjo() 
    208278    { 
    209         if ( !laskuvarjo.IsVisible ) 
     279        if (!laskuvarjo.IsVisible) 
    210280        { 
    211281            laskuvarjo.IsVisible = true; 
    212             laskuvarjo.Animation.Start( 1 ); 
    213         } 
    214     } 
    215  
    216     protected override void Update( Time time ) 
    217     { 
    218         if ( laskuvarjo.IsVisible ) 
    219         { 
    220             Vector nostoVoima = new Vector( 0, 32000 ); 
    221             pelaaja.Push( nostoVoima ); 
    222  
    223             Angle asteitaSekunnissa = Angle.Degrees( 5 ); 
     282            laskuvarjo.Animation.Start(1); 
     283        } 
     284    } 
     285 
     286    protected override void Update(Time time) 
     287    { 
     288        if (laskuvarjo.IsVisible) 
     289        { 
     290            Vector nostoVoima = new Vector(0, 32000); 
     291            pelaaja.Push(nostoVoima); 
     292 
     293            Angle asteitaSekunnissa = Angle.Degrees(5); 
    224294            pelaaja.Angle += keinumisSuunta * asteitaSekunnissa * time.SinceLastUpdate.TotalSeconds; 
    225295 
    226             if ( pelaaja.Angle.Degree > 10 ) 
     296            if (pelaaja.Angle.Degree > 10) 
    227297            { 
    228298                keinumisSuunta = -1.0; 
    229299            } 
    230             else if ( pelaaja.Angle.Degree < -5 ) 
     300            else if (pelaaja.Angle.Degree < -5) 
    231301            { 
    232302                keinumisSuunta = 1.0; 
     
    234304        } 
    235305 
    236         base.Update( time ); 
     306        base.Update(time); 
    237307    } 
    238308} 
Note: See TracChangeset for help on using the changeset viewer.