Changeset 3270 for 2012/26/TopiL


Ignore:
Timestamp:
2012-06-27 13:34:13 (9 years ago)
Author:
tolappal
Message:

Talletus.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • 2012/26/TopiL/Spike Fall/Spike Fall/Spike Fall/Spike Fall/Spike_Fall.cs

    r3257 r3270  
    77using Jypeli.Widgets; 
    88 
     9/// <summary> 
     10/// Sivusta päin kuvattu auto, jossa on kaksi pyörää. 
     11/// </summary> 
     12class RagDoll : PhysicsObject 
     13{ 
     14    //PhysicsObject vartalo; 
     15    //AxleJoint vartaloLiitos; 
     16    //PhysicsObject vasenJalka; 
     17    //AxleJoint vasenJalkaLiitos; 
     18    //PhysicsObject oikeaJalka; 
     19    //AxleJoint oikeaJalkaLiitos; 
     20    //PhysicsObject vasenKasi; 
     21    //AxleJoint vasenKasiLiitos;     
     22    //PhysicsObject oikeaKasi; 
     23    //AxleJoint oikeaKasiLiitos; 
     24 
     25    public RagDoll(double leveys, double korkeus) 
     26        : base(leveys, korkeus) 
     27    { 
     28        this.Shape = Shape.Circle; 
     29        CollisionIgnoreGroup = 100; 
     30        Mass = 1000; 
     31        AddedToGame += TeeUkko; 
     32    } 
     33 
     34    public void Kiihdyta(double kiihtyvyys) 
     35    { 
     36        //double kulmakiiht = kiihtyvyys * vasenPyora.Width / 2; 
     37        //double hitaus = MomentOfInertia + vasenPyora.MomentOfInertia + oikeaPyora.MomentOfInertia; 
     38        //double vaanto = kulmakiiht * hitaus; 
     39        //double vaantoPerPyora = vaanto / 2; 
     40 
     41        //vasenPyora.ApplyTorque(vaantoPerPyora); 
     42        //oikeaPyora.ApplyTorque(vaantoPerPyora); 
     43    } 
     44 
     45    void TeeUkko() 
     46    { 
     47        PhysicsGame fysiikkaPeli = Game as PhysicsGame; 
     48 
     49        PhysicsObject vartalo = new PhysicsObject(Width/4, Height * 2); 
     50        vartalo.Position = this.Position + new Vector(0, -Height/2 - vartalo.Height/2); 
     51        fysiikkaPeli.Add(vartalo); 
     52        AxleJoint vartaloLiitos = new AxleJoint(this, vartalo, new Vector(vartalo.X, vartalo.Top)); 
     53        vartaloLiitos.Softness = 0.01; 
     54        fysiikkaPeli.Add(vartaloLiitos); 
     55 
     56        PhysicsObject vasenJalka = new PhysicsObject(Width / 4, Height * 1.5); 
     57        vasenJalka.Angle = vartalo.Angle + Angle.FromDegrees(-30); 
     58        vasenJalka.Position = vartalo.Position + new Vector(-vasenJalka.Width, -vartalo.Height / 2 - vasenJalka.Width); 
     59        fysiikkaPeli.Add(vasenJalka); 
     60        AxleJoint vasenJalkaLiitos = new AxleJoint(vartalo, vasenJalka, new Vector(vasenJalka.X, vasenJalka.Top)); 
     61        vasenJalkaLiitos.Softness = 0.01; 
     62        fysiikkaPeli.Add(vasenJalkaLiitos); 
     63 
     64        //vasenKasi = new PhysicsObject( 
     65        //vasenPyora.Position = this.Position + new Vector(-Width / 4, -Height / 2); 
     66 
     67    } 
     68 
     69    public override void Destroy() 
     70    { 
     71        //vasenLiitos.Destroy(); 
     72        //oikeaLiitos.Destroy(); 
     73        //vasenPyora.Destroy(); 
     74        //oikeaPyora.Destroy(); 
     75        base.Destroy(); 
     76    } 
     77} 
     78 
    979public class Spike_Fall : PhysicsGame 
    1080{ 
    1181    public override void Begin() 
    1282    { 
    13         PhysicsObject Hahmonpää = new PhysicsObject(); 
    14         Hahmonpää.Shape = Shape.Circle; 
    15         Add(Hahmonpää); 
     83        //RagDoll ragdoll = new RagDoll(40, 40); // pään koko 100 x 100 
     84        //ragdoll.Angle = Angle.FromDegrees(30); 
     85        //Add(ragdoll); 
     86 
     87        PhysicsObject paa = new PhysicsObject(50, 50, Shape.Circle); 
     88        paa.CollisionIgnoreGroup = 1; 
     89        Add(paa); 
     90 
     91        PhysicsObject vartalo = new PhysicsObject(paa.Width/3 , paa.Height*2.5); 
     92        vartalo.Position = paa.Position + new Vector(0, -paa.Height/ 2 - vartalo.Height/ 2); 
     93        vartalo.Image = Image.FromGradient((int)vartalo.Width, (int)vartalo.Height, Color.Blue, Color.White); 
     94        Add(vartalo); 
     95        AxleJoint vartaloLiitos = new AxleJoint(paa, vartalo, new Vector(vartalo.X, vartalo.Top)); 
     96        vartaloLiitos.Softness = 0.6; 
     97        Add(vartaloLiitos); 
     98 
     99        PhysicsObject vasenKasi = new PhysicsObject(vartalo.Width, vartalo.Height/1.4); 
     100        vasenKasi.Angle = vartalo.Angle + Angle.FromDegrees(-15); 
     101        vasenKasi.Top = vartalo.Y + vartalo.Height/4; 
     102        vasenKasi.Right = vartalo.Left; 
     103        //vasenJalka.Position = vartalo.Position + new Vector(-vasenJalka.Height /1.4, -vartalo.Height / 1.6 - vasenJalka.Height / 2); 
     104        vasenKasi.Image = Image.FromGradient((int)vartalo.Width, (int)vartalo.Height, Color.Blue, Color.White); 
     105        Add(vasenKasi); 
     106        AxleJoint vasenKasiLiitos = new AxleJoint(vartalo, vasenKasi, new Vector(vartalo.Left, vartalo.Y + vartalo.Height / 4)); 
     107        vasenKasiLiitos.Softness = 0.6; 
     108        Add(vasenKasiLiitos); 
     109 
     110        PhysicsObject oikeaKasi = new PhysicsObject(vartalo.Width, vartalo.Height / 1.4); 
     111        oikeaKasi.Angle = vartalo.Angle + Angle.FromDegrees(15); 
     112        oikeaKasi.Top = vartalo.Y + vartalo.Height / 4; 
     113        oikeaKasi.Left = vartalo.Right; 
     114        //vasenJalka.Position = vartalo.Position + new Vector(-vasenJalka.Height /1.4, -vartalo.Height / 1.6 - vasenJalka.Height / 2); 
     115        oikeaKasi.Image = Image.FromGradient((int)vartalo.Width, (int)vartalo.Height, Color.Blue, Color.White); 
     116        Add(oikeaKasi); 
     117        AxleJoint oikeaKasiLiitos = new AxleJoint(vartalo, oikeaKasi, new Vector(vartalo.Right, vartalo.Y + vartalo.Height / 4)); 
     118        oikeaKasiLiitos.Softness = 0.6; 
     119        Add(oikeaKasiLiitos); 
     120 
     121        PhysicsObject vasenJalka = new PhysicsObject(vartalo.Width, vartalo.Height); 
     122        vasenJalka.Angle = vartalo.Angle + Angle.FromDegrees(-15); 
     123        vasenJalka.Top = vartalo.Bottom; 
     124        vasenJalka.Right = vartalo.Left; 
     125        //vasenJalka.Position = vartalo.Position + new Vector(-vasenJalka.Height /1.4, -vartalo.Height / 1.6 - vasenJalka.Height / 2); 
     126        vasenJalka.Image = Image.FromGradient((int)paa.Width, (int)paa.Height, Color.Blue, Color.White); 
     127        Add(vasenJalka); 
     128        AxleJoint vasenJalkaLiitos = new AxleJoint(vartalo, vasenJalka, new Vector(vartalo.Left, vartalo.Bottom)); 
     129        vasenJalkaLiitos.Softness = 0.6; 
     130        Add(vasenJalkaLiitos); 
     131 
     132        PhysicsObject oikeaJalka = new PhysicsObject(vartalo.Width, vartalo.Height); 
     133        oikeaJalka.Angle = vartalo.Angle + Angle.FromDegrees(15); 
     134        oikeaJalka.Top = vartalo.Bottom; 
     135        oikeaJalka.Left= vartalo.Right; 
     136        //vasenJalka.Position = vartalo.Position + new Vector(-vasenJalka.Height /1.4, -vartalo.Height / 1.6 - vasenJalka.Height / 2); 
     137        oikeaJalka.Image = Image.FromGradient((int)vartalo.Width, (int)vartalo.Height, Color.Blue, Color.White); 
     138        Add(oikeaJalka); 
     139        AxleJoint oikeaJalkaLiitos = new AxleJoint(vartalo, oikeaJalka, new Vector(vartalo.Right, vartalo.Bottom)); 
     140        oikeaJalkaLiitos.Softness = 0.6; 
     141        Add(oikeaJalkaLiitos); 
    16142 
    17143 
     144 
     145        Keyboard.Listen(Key.Left, ButtonState.Down, Liikuta, null, paa, new Vector(-150, 0)); 
     146        Keyboard.Listen(Key.Right, ButtonState.Down, Liikuta, null, paa, new Vector(150, 0)); 
     147        Keyboard.Listen(Key.Up, ButtonState.Down, Liikuta, null, paa, new Vector(0, 150)); 
     148        Keyboard.Listen(Key.Down, ButtonState.Down, Liikuta, null, paa, new Vector(0, -150)); 
     149 
     150        PhysicsObject taso = new PhysicsObject(400, 50); 
     151        taso.Angle = Angle.FromDegrees(5); 
     152        Add(taso); 
     153        taso.Position = new Vector(0, Level.Bottom + 50); 
     154        taso.Mass = 1; 
     155 
     156        Gravity = new Vector(0, -1000); 
    18157        Level.CreateBorders(1.0, true); 
    19158        Level.BackgroundColor = Color.Black; 
     159 
     160        SetWindowSize(800, 600); 
    20161 
    21162        Camera.ZoomToLevel(); 
     
    24165    } 
    25166 
     167    void Liikuta(PhysicsObject pallo, Vector suunta) 
     168    { 
     169        pallo.Hit(suunta); 
     170    } 
    26171 
    27172 
Note: See TracChangeset for help on using the changeset viewer.