31 using System.Collections.Generic;
41 public partial class PhysicsObject : GameObject, IPhysicsObjectInternal
46 internal List<Force> ActiveForces =
new List<Force>();
63 get {
return Body.IgnoresGravity; }
64 set {
Body.IgnoresGravity = value; }
73 get {
return Body.IgnoresPhysicsLogics; }
74 set {
Body.IgnoresPhysicsLogics = value; }
96 : this( width, height, shape, CreatePhysicsShape( shape, new
Vector( width, height ) ) )
112 : this( width, height, shape, CreatePhysicsShape( shape, new
Vector( width, height ), shapeParameters ) )
116 [Obsolete(
"Use CollisionShapeParameters or the PhysicsTemplates class." )]
118 :
this( width, height, shape, CreatePhysicsShape( shape,
new Vector( width, height ) ) )
122 [Obsolete(
"Use constructor with CollisionShapeParameters" )]
123 internal PhysicsObject(
double width,
double height,
Shape shape,
double maxDistanceBetweenVertices,
double gridSpacing )
133 : this( 1, 1, raySegment )
141 internal PhysicsObject(
double width,
double height,
Shape shape, IShape physicsShape )
142 : base( width, height, shape )
144 Coefficients c =
new Coefficients( DefaultCoefficients.Restitution, DefaultCoefficients.StaticFriction, DefaultCoefficients.DynamicFriction );
145 Body =
new Body(
new PhysicsState( ALVector2D.Zero ), physicsShape, DefaultMass, c,
new Lifespan() );
147 Body.Collided += this.OnCollided;
152 #region DelayedDestroyable 166 if ( Destroying != null )
179 Body.Lifetime.IsExpired =
true;
192 for (
int i = ActiveForces.Count - 1; i >= 0; i-- )
196 ActiveForces.RemoveAt( i );
static void DoNextUpdate(Action action)
Suorittaa aliohjelman seuraavalla päivityksellä.
double Magnitude
Vektorin pituus.
override void Destroy()
Tuhoaa olion. Tuhottu olio poistuu pelistä.
PhysicsObject(double width, double height, Shape shape)
Luo uuden fysiikkaolion.
Angle Angle
Kulma radiaaneina.
Action Destroying
Tapahtuu, kun olion tuhoaminen alkaa.
virtual void Push(Vector force)
Työntää oliota.
PhysicsObject(double width, double height)
Luo uuden fysiikkaolion.
Vector Velocity
Olion nopeus.
bool IgnoresGravity
Jättääkö olio painovoiman huomioimatta.
bool IsDestroyed
Onko olio tuhottu.
Törmäyskuvion laatuun vaikuttavat parametrit.
TimeSpan SinceLastUpdate
Aika joka on kulunut viime päivityksestä.
PhysicsObject(Image image)
Luo uuden fysiikkaolion. Kappaleen koko ja ulkonäkö ladataan parametrina annetusta kuvasta...
Sisältää tiedon ajasta, joka on kulunut pelin alusta ja viime päivityksestä.
override void Update(Time time)
Peliolion päivitys. Tätä kutsutaan, kun IsUpdated-ominaisuuden arvoksi on asetettu true ja olio on li...
Rakenne, joka pitää fysiikkaoliot kiinteän matkan päässä toisistaan.
Peliluokka reaaliaikaisille peleille.
virtual void ReallyDestroy()
double AngularVelocity
Olion kulmanopeus.
PhysicsObject(double width, double height, Shape shape, CollisionShapeParameters shapeParameters)
PhysicsObject(RaySegment raySegment)
Luo fysiikkaolion, jonka muotona on säde.
Body Body
Fysiikkamoottorin käyttämä tietorakenne.
double MaxAngularVelocity
Suurin kulmanopeus, jonka olio voi saavuttaa.
bool IgnoresExplosions
Jättääkö olio räjähdyksen paineaallon huomiotta.
double Width
Olion leveys (X-suunnassa, leveimmässä kohdassa).
Kappaleen kuvion laatu törmäyksentunnistuksessa.
PhysicsStructure ParentStructure
Rakenneolio, johon tämä olio kuuluu.
double MaxVelocity
Suurin nopeus, jonka olio voi saavuttaa.
bool IsDestroying
Onko olio tuhoutumassa.
bool IgnoresPhysicsLogics
Jättääkö olio kaikki fysiikkalogiikat (ks. AddPhysicsLogic) huomiotta. Vaikuttaa esim. painovoimaan, mutta ei törmäyksiin.
double Height
Olion korkeus (Y-suunnassa, korkeimmassa kohdassa).