Ignore:
Timestamp:
2010-08-06 13:00:20 (13 years ago)
Author:
paaaanro
Message:

Ei valmis...

File:
1 edited

Legend:

Unmodified
Added
Removed
  • 2010/31/kirsipienmaki@gmail.com/FysiikkaPeli3/Peli.cs

    r1622 r1664  
    33using Jypeli.Widgets; 
    44using Jypeli.Assets; 
     5using Physics2DDotNet.Ignorers; 
    56 
    67public class Peli : PhysicsGame 
    78{ 
     9    Image taloKuva = LoadImage("Talo"); 
    810    Image matoKuva = LoadImage("Tappajamato1"); 
    911    Image taustaKuva = LoadImage("Kuutamo"); 
    1012    PhysicsObject tappajaMato; 
    11     PhysicsObject seinä; 
    12     PhysicsObject seinä2; 
     13    Image vihu1kuva = LoadImage("Vihu1"); 
     14 
     15    Vector downforce = new Vector(0, 9999); 
     16    ObjectIgnorer ignorer = new ObjectIgnorer(); 
     17 
    1318    protected override void Begin() 
    1419    { 
    15         PhysicsObject maasto = Level.CreateGround(450, 400, 10, Color.Black); 
    16         maasto.IgnoresCollisionResponse = true; 
     20        PhysicsObject maasto = Level.CreateGround(450, 440, 10, Color.Black); 
     21        maasto.IgnoresCollisionResponse = false; 
    1722        Level.Background.Image = taustaKuva; 
    1823        Level.Background.FitToLevel(); 
    1924        LuoTappajaMato(); 
    2025        ohjaus(); 
    21         Camera.Follow( tappajaMato ); 
    22         Camera.Zoom(1.9); 
     26        Camera.Follow(tappajaMato); 
     27        Camera.ZoomToLevel(); 
    2328        Level.CreateBorders(); 
    24         luoseinä(); 
    25         Gravity = new Vector( 0.0, -800.0 ); 
    26         luoseinä2(); 
    27  
     29        Gravity = new Vector(0.0, -800.0); 
     30        luotalot(); 
     31        maasto.CollisionIgnorer = ignorer; 
     32        tappajaMato.CollisionIgnorer = ignorer; 
     33        luovihu1(); 
    2834    } 
    29  
    30  
     35    void luotalot() 
     36    { 
     37        PhysicsObject Talo = new PhysicsObject(90, 220); 
     38        Talo.Shape = Shapes.Rectangle; 
     39        Talo.Mass = 10.0; 
     40        Talo.Image = taloKuva; 
     41        Talo.Y = 150; 
     42        Talo.X = RandomGen.NextDouble(Level.Left, Level.Right); 
     43        Add(Talo); 
     44    } 
    3145    void LuoTappajaMato() 
    3246    { 
    33         tappajaMato = new PhysicsObject(90,40); 
     47        tappajaMato = new PhysicsObject(90, 40); 
    3448        tappajaMato.Shape = Shapes.Rectangle; 
    3549        tappajaMato.Mass = 10.0; 
     
    3751        tappajaMato.Y = -200; 
    3852        tappajaMato.IgnoresGravity = true; 
    39         tappajaMato.IgnoresCollisionResponse =true; 
    4053        Add(tappajaMato); 
    4154        tappajaMato.LinearDamping = 0.9; 
     
    4356        AddCollisionHandler(tappajaMato, matoTormasi); 
    4457        Timer ajastin = new Timer(); 
    45         ajastin.Interval = 1.5; 
    46         ajastin.Trigger += tarikistamadonpaikka; 
     58        ajastin.Interval = 0.1; 
     59        ajastin.Trigger += tarkistamadonpaikka; 
    4760        ajastin.Start(); 
    4861    } 
    4962 
    50      
     63 
    5164 
    5265    void matoTormasi(PhysicsObject mato, PhysicsObject kohde) 
    5366    { 
    54         if (kohde == seinä) 
    55         { 
    56             tappajaMato.IgnoresGravity = false; 
    57             Vector impulssi = Vector.FromLengthAndAngle(9989.0, tappajaMato.Angle); 
    58             tappajaMato.Hit(impulssi); 
    59             MessageDisplay.Add("Mato osui seinään"); 
    60         } 
    6167    } 
    6268 
     
    6571        Keyboard.Listen(Key.Escape, ButtonState.Pressed, Exit, "Poistu"); 
    6672 
    67         Keyboard.Listen(Key.Left, ButtonState.Down, Kaannamatoa, null, tappajaMato, 0.9); 
    68         Keyboard.Listen(Key.Right, ButtonState.Down, Kaannamatoa, null, tappajaMato, -0.9); 
    69         Keyboard.Listen(Key.Up, ButtonState.Down, Liikutamatoa, null, tappajaMato,  100.0); 
     73        Keyboard.Listen(Key.Left, ButtonState.Down, Kaannamatoa, null, tappajaMato, 0.3); 
     74        Keyboard.Listen(Key.Right, ButtonState.Down, Kaannamatoa, null, tappajaMato, -0.3); 
     75        Keyboard.Listen(Key.Up, ButtonState.Down, Liikutamatoa, null, tappajaMato, 100.0); 
    7076    } 
    7177 
    72      
     78 
    7379    void Kaannamatoa(PhysicsObject tappajaMato, double kaantoNopeus) 
    7480    { 
    75        tappajaMato.AngularVelocity += kaantoNopeus;   
     81        tappajaMato.AngularVelocity += kaantoNopeus; 
    7682    } 
    7783 
     
    8187        tappajaMato.Hit(impulssi); 
    8288    } 
    83     void luoseinä() 
     89    void tarkistamadonpaikka(Timer sender) 
    8490    { 
    85         seinä = new PhysicsObject(Level.Width, 02); 
    86         seinä.Shape = Shapes.Rectangle; 
    87         Add(seinä); 
     91 
     92        if (tappajaMato.Y > Level.Center.Y && tappajaMato.Y < 50 && tappajaMato.Velocity.Y > 0) 
     93        { 
     94            tappajaMato.IgnoresGravity = false; 
     95            tappajaMato.Hit(downforce); 
     96        } 
     97        if (tappajaMato.Y < Level.Center.Y) 
     98        { 
     99            tappajaMato.IgnoresGravity = true; 
     100        } 
    88101    } 
    89     void luoseinä2() 
     102    void luovihu1() 
    90103    { 
    91         seinä2 = new PhysicsObject(Level.Width, 02); 
    92         seinä2.Shape = Shapes.Rectangle; 
    93         Add(seinä2); 
    94         seinä2.Y = -390; 
    95     } 
    96     void tarikistamadonpaikka(Timer sender) 
    97     { 
    98       
     104        PhysicsObject Vihu1 = new PhysicsObject(20, 13); 
     105        Vihu1.Shape = Shapes.Rectangle; 
     106        Vihu1.Mass = 10.0; 
     107        Vihu1.Image = vihu1kuva; 
     108        Vihu1.Y = 147; 
     109        Vihu1.X = RandomGen.NextDouble(Level.Left, Level.Right); 
     110        Add(Vihu1); 
     111        for (int i = 0; i < 30; i++) 
     112        { 
     113            Add(Vihu1); 
     114        } 
    99115    } 
    100116} 
Note: See TracChangeset for help on using the changeset viewer.