Jypeli 10
The simple game programming library
PhysicsObject.cs
Siirry tämän tiedoston dokumentaatioon.
1using System;
2
3namespace Jypeli
4{
9 [Save]
10 public partial class PhysicsObject : GameObject, IPhysicsObjectInternal
11 {
16 public bool IgnoresGravity
17 {
18 get { return Body.IgnoresGravity; }
19 set { Body.IgnoresGravity = value; }
20 }
21
27 {
28 get { return Body.IgnoresPhysicsLogics; }
29 set { Body.IgnoresPhysicsLogics = value; }
30 }
31
35 public PhysicsStructure ParentStructure { get; internal set; }
36
40 public bool IgnoresExplosions { get; set; }
41
50 public PhysicsObject( double width, double height, Shape shape, double x = 0.0, double y = 0.0)
51 : base( width, height, shape)
52 {
53 Initialize( width, height, shape );
54 Position = new Vector(x, y);
55 }
56
62 public PhysicsObject( double width, double height )
63 : this( width, height, Shape.Rectangle )
64 {
65 }
66
74 public PhysicsObject(double width, double height, double x, double y)
75 : this(width, height, Shape.Rectangle, x, y)
76 {
77 }
78
83 public PhysicsObject( Animation animation )
84 : base( animation )
85 {
86 Initialize( animation.Width, animation.Height, Shape.Rectangle );
87 }
88
93 public PhysicsObject(RaySegment raySegment)
94 : this(1, 1, raySegment)
95 {
96 }
97
98 private void Initialize( double width, double height, Shape shape )
99 {
100 Body = PhysicsGameBase.Instance.Engine.CreateBody( this, width, height, shape );
101 Body.Collided += this.OnCollided;
102 }
103
110 public static PhysicsObject CreateStaticObject( double width, double height, Shape shape )
111 {
112 var obj = new PhysicsObject( width, height, shape );
113 obj.MakeStatic();
114 return obj;
115 }
116
122 public static PhysicsObject CreateStaticObject( double width, double height )
123 {
124 var obj = new PhysicsObject( width, height );
125 obj.MakeStatic();
126 return obj;
127 }
128
133 public static PhysicsObject CreateStaticObject( Animation animation )
134 {
135 var obj = new PhysicsObject( animation );
136 obj.MakeStatic();
137 return obj;
138 }
139
143 public void MakeStatic()
144 {
145 Body.MakeStatic();
146 }
147
152 public bool IsDestroying
153 {
154 get { throw new NotImplementedException(); }
155 }
156
163 [Obsolete("Ei käytössä")]
164 public event Action Destroying;
165
167 public override void Update( Time time )
168 {
171 if ( Math.Abs( AngularVelocity ) > MaxAngularVelocity )
173
174 if(!IsDestroyed)
175 Body.Update(time);
176
177 base.Update( time );
178 }
179 }
180}
Sarja kuvia, jotka vaihtuvat halutulla nopeudella. Yksi animaatio koostuu yhdestä tai useammasta kuva...
Definition: Animation.cs:62
double? Height
Animaation korkeus. Nolla, jos animaatiossa ei ole yhtään ruutua.
Definition: Animation.cs:161
double? Width
Animaation leveys. Nolla, jos animaatiossa ei ole yhtään ruutua.
Definition: Animation.cs:153
bool IsDestroyed
Onko olio tuhottu.
Kantaluokka fysiikkapeleille.
static new PhysicsGameBase Instance
Käynnissä olevan fysiikkapelin pääolio.
Kappale joka noudattaa fysiikan lakeja, johon voi törmätä. Vaatii että käytössä on fysiikkapeli.
Definition: Collisions.cs:7
bool IgnoresExplosions
Jättääkö räjähdysten paineaallon huomioimatta
double AngularVelocity
Kulmanopeus.
Definition: Movement.cs:35
static PhysicsObject CreateStaticObject(double width, double height, Shape shape)
Alustaa fysiikkaolion käyttöön ja tekee siitä staattisen (liikkumattoman).
bool IsDestroying
Onko olio tuhoutumassa.
bool IgnoresGravity
Jättääkö painovoiman huomiotta.
Action Destroying
Tapahtuisi, kun olio on tuhoutumassa. EI KÄYTÖSSÄ!
IPhysicsBody Body
Fysiikkamoottorin käsittelemä fysiikkakappale.
Definition: Dimensions.cs:12
static PhysicsObject CreateStaticObject(Animation animation)
Alustaa fysiikkaolion käyttöön.
double MaxVelocity
Suurin nopeus, jonka olio voi saavuttaa.
Definition: Movement.cs:55
override Vector?? Position
Definition: Dimensions.cs:30
bool IgnoresPhysicsLogics
Jättääkö fysiikkakentät (esim. painovoiman) huomiotta.
PhysicsObject(double width, double height, double x, double y)
Luo uuden fysiikkaolion.
void OnCollided(IPhysicsBody thisBody, IPhysicsBody otherBody)
Fysiikkamoottori kutsuu kun törmäys tapahtuu
Definition: Collisions.cs:111
Vector Velocity
Nopeus.
Definition: Movement.cs:15
PhysicsObject(Animation animation)
Alustaa fysiikkaolion käyttöön.
PhysicsObject(RaySegment raySegment)
Luo fysiikkaolion, jonka muotona on säde.
PhysicsObject(double width, double height, Shape shape, double x=0.0, double y=0.0)
Alustaa fysiikkaolion käyttöön.
PhysicsObject(double width, double height)
Alustaa fysiikkaolion käyttöön.
void MakeStatic()
Tekee oliosta staattisen eli liikkumattoman.
override void Update(Time time)
Peliolion päivitys. Tätä kutsutaan, kun IsUpdated-ominaisuuden arvoksi on asetettu true ja olio on li...
static PhysicsObject CreateStaticObject(double width, double height)
Alustaa fysiikkaolion käyttöön ja tekee siitä staattisen (liikkumattoman).
PhysicsStructure ParentStructure
Rakenneolio, johon tämä olio kuuluu.
void Initialize(double width, double height, Shape shape)
double MaxAngularVelocity
Suurin kulmanopeus, jonka olio voi saavuttaa.
Definition: Movement.cs:65
Rakenne, joka pitää fysiikkaoliot kiinteän matkan päässä toisistaan.
Suorakulmio.
Definition: Shapes.cs:322
Kuvio.
Definition: Shapes.cs:47
static readonly Rectangle Rectangle
Suorakulmio.
Definition: Shapes.cs:73
Sisältää tiedon ajasta, joka on kulunut pelin alusta ja viime päivityksestä.
Definition: Time.cs:14
2D-vektori.
Definition: Vector.cs:67
Angle Angle
Kulma radiaaneina.
Definition: Vector.cs:372
double Magnitude
Vektorin pituus.
Definition: Vector.cs:345
static Vector FromLengthAndAngle(double length, double angle)
Luo vektorin pituuden ja kulman perusteella.
Definition: Vector.cs:114