Jypeli  9
The simple game programming library
Events.cs
Siirry tämän tiedoston dokumentaatioon.
1 using System;
2 
3 namespace Jypeli
4 {
5  public partial class Game
6  {
11  {
12  Func<bool> condition;
13  Action handler;
14 
20  internal CustomEventHandler( Func<bool> condition, Action handler )
21  {
22  this.condition = condition;
23  this.handler = handler;
24  }
25 
29  public bool IsDestroyed { get; private set; }
30 
34  public bool IsUpdated { get { return true; } }
35 
39  public event Action Destroyed;
40 
44  public void Destroy()
45  {
46  IsDestroyed = true;
47  if ( Destroyed != null )
48  Destroyed();
49  }
50 
55  public void Update( Time time )
56  {
57  if ( condition() )
58  handler();
59  }
60  }
61 
63 
69  public CustomEventHandler AddCustomHandler( Func<bool> condition, Action handler)
70  {
71  if ( handlers == null )
73 
74  var handlerObj = new CustomEventHandler( condition, handler );
75  handlers.Add( handlerObj );
76  return handlerObj;
77  }
78 
87  public CustomEventHandler AddCustomHandler<T>( T obj, Predicate<T> condition, Action<T> handler )
88  {
89  return this.AddCustomHandler( () => condition( obj ), () => handler( obj ) );
90  }
91 
102  public CustomEventHandler AddCustomHandler<T1, T2>( T1 obj1, T2 obj2, Func<T1, T2, bool> condition, Action<T1, T2> handler )
103  {
104  return this.AddCustomHandler( () => condition( obj1, obj2 ), () => handler( obj1, obj2 ) );
105  }
106 
119  public CustomEventHandler AddCustomHandler<T1, T2, T3>( T1 obj1, T2 obj2, T3 obj3, Func<T1, T2, T3, bool> condition, Action<T1, T2, T3> handler )
120  {
121  return this.AddCustomHandler( () => condition( obj1, obj2, obj3 ), () => handler( obj1, obj2, obj3 ) );
122  }
123 
127  protected void UpdateHandlers( Time time )
128  {
129  if (handlers == null)
130  return;
131 
132  handlers.Update( time );
133  }
134  }
135 }
Jypeli.Game.CustomEventHandler.CustomEventHandler
CustomEventHandler(Func< bool > condition, Action handler)
Luo uuden tapahtumankäsittelijän.
Definition: Events.cs:20
Jypeli.Game.CustomEventHandler.IsDestroyed
bool IsDestroyed
Onko käsittelijä tuhottu.
Definition: Events.cs:29
Jypeli.Game.CustomEventHandler.IsUpdated
bool IsUpdated
Päivitetäänkö.
Definition: Events.cs:34
Jypeli
Definition: Automobile.cs:5
Jypeli.Game.CustomEventHandler.Destroy
void Destroy()
Tuhoaa tapahtumankäsittelijän.
Definition: Events.cs:44
Jypeli.Game.AddCustomHandler< T >
CustomEventHandler AddCustomHandler< T >(T obj, Predicate< T > condition, Action< T > handler)
Lisää vapaamuotoisen tapahtumankäsittelijän.
Definition: Events.cs:87
Jypeli.Game.UpdateHandlers
void UpdateHandlers(Time time)
Kutsuu tapahtumankäsittelijöitä.
Definition: Events.cs:127
Jypeli.Game.CustomEventHandler
Vapaamuotoinen tapahtumankäsittelijä.
Definition: Events.cs:11
Jypeli.Updatable
Rajapinta päivittyville olioille.
Definition: Updatable.cs:7
Jypeli.Game.CustomEventHandler.Update
void Update(Time time)
Päivittää tapahtumankäsittelijää (Jypeli kutsuu)
Definition: Events.cs:55
Jypeli.Game.CustomEventHandler.Destroyed
Action Destroyed
Tapahtuu, kun tapahtumankäsittelijä tuhotaan.
Definition: Events.cs:39
Jypeli.Game.handlers
SynchronousList< CustomEventHandler > handlers
Definition: Events.cs:62
Jypeli.Time
Sisältää tiedon ajasta, joka on kulunut pelin alusta ja viime päivityksestä.
Definition: Time.cs:14
Jypeli.Game.AddCustomHandler
CustomEventHandler AddCustomHandler(Func< bool > condition, Action handler)
Lisää vapaamuotoisen tapahtumankäsittelijän.
Definition: Events.cs:69
Jypeli.Destroyable
Rajapinta olioille, jotka ovat tuhottavissa.
Definition: Destroyable.cs:9
Jypeli.Game.AddCustomHandler< T1, T2, T3 >
CustomEventHandler AddCustomHandler< T1, T2, T3 >(T1 obj1, T2 obj2, T3 obj3, Func< T1, T2, T3, bool > condition, Action< T1, T2, T3 > handler)
Lisää vapaamuotoisen tapahtumankäsittelijän.
Definition: Events.cs:119
Jypeli.Game.AddCustomHandler< T1, T2 >
CustomEventHandler AddCustomHandler< T1, T2 >(T1 obj1, T2 obj2, Func< T1, T2, bool > condition, Action< T1, T2 > handler)
Lisää vapaamuotoisen tapahtumankäsittelijän.
Definition: Events.cs:102
System
Definition: CFFauxAttributes.cs:29
Jypeli.SynchronousList
Synkroninen lista, eli lista joka päivittyy vasta kun sen Update-metodia kutsutaan....
Definition: SynchronousList.cs:15
Jypeli.Game.CustomEventHandler.condition
Func< bool > condition
Definition: Events.cs:12
Jypeli.Game.CustomEventHandler.handler
Action handler
Definition: Events.cs:13