 |
Jypeli
9
The simple game programming library
|
Siirry tämän tiedoston dokumentaatioon.
2 using System.Collections.Generic;
9 public partial class Game : GameObjectContainer
24 return Layers.FindAll( l => l.IgnoresZoom && l.RelativeTransition ==
Vector.
Zero );
26 return Layers.FindAll( l => l.IgnoresZoom && l.RelativeTransition ==
Vector.
Zero ).AsReadOnly();
37 get {
return Layers.FindAll( l => !l.IgnoresZoom || l.RelativeTransition !=
Vector.
Zero ); }
39 get {
return Layers.FindAll( l => !l.IgnoresZoom || l.RelativeTransition !=
Vector.
Zero ).AsReadOnly(); }
48 get {
return Layers.FirstIndex; }
56 get {
return Layers.LastIndex; }
64 get {
return Layers.Count; }
84 for (
int i = 0; i < 7; i++ )
98 if ( iObj ==
null )
return;
109 if ( iObj ==
null )
return;
152 throw new NotSupportedException(
"Object cannot be added twice" );
155 throw new NotSupportedException(
"Object cannot be added to multiple layers" );
169 if ( o ==
null )
throw new NullReferenceException(
"Tried to add a null object to game" );
175 List<IGameObject> result =
new List<IGameObject>();
227 foreach (var layer
in Layers)
242 foreach (var layer
in Layers)
250 layer.ApplyChanges();
265 #region GetObject methods
266 public List<GameObject>
GetObjects( Predicate<GameObject> condition )
274 List<GameObject> objs =
new List<GameObject>();
278 foreach ( var obj
in Layers[i].Objects )
282 if ( gobj !=
null && condition( gobj ) )
308 return GetObjects( o => tags.Contains<
string>( o.Tag as
string ) );
320 foreach ( var obj
in Layers[i].Objects )
324 if ( gobj !=
null && condition( gobj ) )
341 return GetObjects( obj => obj.IsInside( position ) );
354 Predicate<GameObject> isInsideRadius = delegate(
GameObject obj )
356 if ( IsJypeliWidget<GameObject>( obj ) )
return false;
358 Vector positionUp =
new Vector( position.
X, position.
Y + radius );
359 Vector positionDown =
new Vector( position.
X, position.
Y - radius );
360 Vector positionLeft =
new Vector( position.
X - radius, position.
Y );
361 Vector positionRight =
new Vector( position.
X + radius, position.
Y );
363 if ( obj.
IsInside( position ) )
return true;
364 if ( obj.
IsInside( positionUp ) )
return true;
365 if ( obj.
IsInside( positionDown ) )
return true;
366 if ( obj.
IsInside( positionLeft ) )
return true;
367 if ( obj.
IsInside( positionRight ) )
return true;
384 return GetFirstObject( obj => obj.IsInside( position ) && !IsJypeliWidget<GameObject>( obj ) );
398 return objs.Count > 0 ? objs[0] :
null;
412 return GetObjectsAt( position ).FindAll( obj => obj.Tag == tag );
426 return GetObjectsAt( position ).Find( obj => obj.Tag == tag );
456 return GetObjectsAt( position, radius ).Find( obj => obj.Tag == tag );
468 return GetObjects(palikka => !(palikka is
Widget) && palikka.IsBetween(pos1, pos2));
List< GameObject > GetObjectsAt(Vector position)
Palauttaa listan peliolioista, jotka ovat annetussa paikassa. Jos paikassa ei ole mitään pelioliota,...
List< GameObject > GetObjectsBetween(Vector pos1, Vector pos2)
Palauttaa listan peliolioista, jotka ovat kahden annetun pisteen välissä. Lista ei sisällä widgettejä...
IList< Layer > DynamicLayers
Kerrokset, joilla olevat pelioliot liikkuvat kameran mukana.
IList< Layer > StaticLayers
Kerrokset, joilla olevat pelioliot eivät liiku kameran mukana.
int ObjectCount
Kuinka monta pelioliota pelissä on
static IList< IGameObject > GetObjectsAboutToBeAdded()
static readonly Vector Zero
Nollavektori.
List< GameObject > GetObjectsAt(Vector position, object tag, double radius)
Palauttaa listan peliolioista, jotka ovat annetussa paikassa tietyllä säteellä. Jos paikassa ei ole m...
void Add(IGameObject o)
Lisää olion peliin. Tavalliset oliot tulevat automaattisesti kerrokselle 0 ja ruutuoliot päällimmäise...
int MaxLayer
Suurin mahdollinen kerros.
List< GameObject > GetAllObjects()
List< GameObject > GetObjectsAt(Vector position, object tag)
Palauttaa listan peliolioista, jotka ovat annetussa paikassa tietyllä säteellä. Jos paikassa ei ole m...
static Layer CreateStaticLayer()
Luo staattisen kerroksen (ei liiku kameran mukana)
Yhteinen rajapinta kaikille peliolioille.
GameObject GetObjectAt(Vector position, object tag, double radius)
Palauttaa peliolion, joka on annetussa paikassa tietyllä säteellä. Vain annetulla tagilla varustetut ...
bool IsInside(Vector point)
Onko piste p tämän olion sisäpuolella.
virtual void OnObjectAdded(IGameObject obj)
Widget GetFirstWidget(Predicate< Widget > condition)
Palauttaa ensimmäisen ruutuolion joka toteuttaa ehdon (null jos mikään ei toteuta).
void ResetLayers()
Nollaa oliokerrokset. Huom. tuhoaa kaikki pelioliot!
static Game Instance
Käynnissä olevan pelin pääolio.
GameObject GetObjectAt(Vector position, double radius)
Palauttaa peliolion, joka on annetussa paikassa tietyllä säteellä. Jos paikassa ei ole mitään pelioli...
void Add(Layer l)
Lisää oliokerroksen peliin.
virtual void OnObjectRemoved(IGameObject obj)
GameObject GetFirstObject(Predicate< GameObject > condition)
Palauttaa ensimmäisen peliolion joka toteuttaa ehdon (null jos mikään ei toteuta).
virtual void Add(IGameObject o, int layer)
Lisää peliolion peliin, tiettyyn kerrokseen.
void Add(Light light)
Lisää valon peliin. Nykyisellään valoja voi olla ainoastaan yksi kappale. Toistaiseksi ei tuettu Wind...
void Remove(IGameObject o)
Kerros. Vastaa olioiden piirtämisestä.
void Remove(IGameObject o)
Poistaa olion pelistä. Jos haluat tuhota olion, kutsu mielummin olion Destroy-metodia.
void RemoveAllLayers()
Poistaa kaikki oliokerrokset. Huom. tuhoaa kaikki pelioliot!
void Add(IGameObject childObject)
Lisää annetun peliolion tämän olion lapseksi. Lapsiolio liikkuu tämän olion mukana,...
List< GameObject > GetObjects(Predicate< GameObject > condition)
Palauttaa listan kaikista peliolioista jotka toteuttavat ehdon. Lista on järjestetty päällimmäisestä ...
static void OnRemoveObject(IGameObject obj)
GameObject GetObjectAt(Vector position)
Palauttaa peliolion, joka on annetussa paikassa. Jos paikassa ei ole mitään pelioliota,...
List< GameObject > GetObjectsWithTag(params string[] tags)
Palauttaa listan kaikista peliolioista joilla on tietty tagi. Lista on järjestetty päällimmäisestä al...
void OnLayerAdded(Layer l)
void DeactivateObject(ControlContexted obj)
void ActivateObject(ControlContexted obj)
void GetObjectsAboutToBeAdded(List< IGameObject > result)
void ClearGameObjects()
Tuhoaa ja poistaa pelistä kaikki pelioliot (ml. fysiikkaoliot).
void addMessageDisplay(bool force=false)
void Remove(Layer l)
Poistaa oliokerroksen pelistä.
Synkroninen lista, eli lista joka päivittyy vasta kun sen Update-metodia kutsutaan....
Pelialueella liikkuva olio. Käytä fysiikkapeleissä PhysicsObject-olioita.
int MinLayer
Pienin mahdollinen kerros.
GameObject GetObjectAt(Vector position, object tag)
Palauttaa peliolion, joka on annetussa paikassa. Vain annetulla tagilla varustetut oliot huomioidaan....
int LayerCount
Kerrosten määrä.
List< GameObject > GetObjectsAt(Vector position, double radius)
Palauttaa listan peliolioista, jotka ovat annetussa paikassa tietyllä säteellä. Jos paikassa ei ole m...
SynchronousList< Layer > Layers
Kerrokset, joilla pelioliot viihtyvät.
Widget GetWidgetAt(Vector position)
Palauttaa ruutuolion, joka on annetussa paikassa. Jos paikassa ei ole mitään oliota,...
Jypelin sisäiset metodit ja propertyt joihin käyttäjän ei tarvitse päästä käsiksi kuuluvat tähän luok...
static void OnAddObject(IGameObject obj)
void OnLayerRemoved(Layer l)
SynchronousList< IGameObject > Objects