32 using System.Collections.Generic;
38 public partial class PhysicsObject
40 private int _ignoreGroup = 0;
47 get {
return Body.CollisionIgnorer; }
48 set {
Body.CollisionIgnorer = value; }
58 get {
return _ignoreGroup; }
63 else AddCollisionIgnoreGroup();
73 get {
return Body.IgnoresCollisionResponse; }
74 set {
Body.IgnoresCollisionResponse = value; }
80 public event CollisionHandler<IPhysicsObject, IPhysicsObject>
Collided;
82 private void OnCollided(
object sender, CollisionEventArgs args )
84 if ( this.
IsDestroyed || args.Other == null )
return;
86 if ( other.IsDestroyed )
return;
88 if ( Collided != null )
90 if ( other.ParentStructure != null )
Collided(
this, other.ParentStructure );
96 private void AddCollisionIgnoreGroup()
98 if ( _ignoreGroup == 0 )
100 Body.CollisionIgnorer = null;
105 if ( !
PhysicsGame.IgnoreGroups.ContainsKey( _ignoreGroup ) )
PhysicsGame.IgnoreGroups.Add( _ignoreGroup,
new ObjectIgnorer() );
bool IsAddedToGame
Onko olio lisätty peliin.
bool IgnoresCollisionResponse
virtual void OnCollision(IGameObject target)
Kutsutaan, kun tapahtuu törmäys. Perivässä luokassa methodin kuuluu kutsua vastaavaa kantaluokan meth...
virtual int CollisionIgnoreGroup
Törmäysryhmä. Oliot jotka ovat samassa törmäysryhmässä menevät toistensa läpi. Jos ryhmä on nolla tai...
void MakeOneWay()
Tekee oliosta läpimentävän alhaalta ylöspäin (tasohyppelytaso). Huom. ei toimi yhdessä CollisionIgnor...
PhysicsObject(double width, double height)
Luo uuden fysiikkaolion.
Yhteinen rajapinta kaikille fysiikkaolioille.
bool IgnoresCollisionResponse
Jättääkö olio törmäyksen huomioimatta. Jos tosi, törmäyksestä tulee tapahtuma, mutta itse törmäystä e...
bool IsDestroyed
Onko olio tuhottu.
double DistanceGridSpacing
Törmäyskuvion laatuun vaikuttavat parametrit.
Aivoluokka peliolioille. Voidaan käyttää tekoälyn ja tilannekohtaisten toimintamallien luomiseen peli...
virtual Ignorer CollisionIgnorer
Olio, jolla voi välttää oliota osumasta tiettyihin muihin olioihin.
CollisionHandler< IPhysicsObject, IPhysicsObject > Collided
Tapahtuu kun olio törmää toiseen.
void MakeOneWay(Vector direction)
Tekee oliosta läpimentävän vektorin suuntaan. Huom. ei toimi yhdessä CollisionIgnoreGroupien kanssa! ...
bool IgnoresCollisionWith(IPhysicsObject target)
Action AddedToGame
Tapahtuu, kun olio lisätään peliin.
Body Body
Fysiikkamoottorin käyttämä tietorakenne.
Peli, jossa on fysiikan laskenta mukana. Peliin lisätyt
double Height
Olion korkeus (Y-suunnassa, korkeimmassa kohdassa).