Jypeli  5
The simple game programming library
Listeners.cs
Siirry tämän tiedoston dokumentaatioon.
1 #region MIT License
2 /*
3  * Copyright (c) 2009 University of Jyväskylä, Department of Mathematical
4  * Information Technology.
5  *
6  * Permission is hereby granted, free of charge, to any person obtaining a copy
7  * of this software and associated documentation files (the "Software"), to deal
8  * in the Software without restriction, including without limitation the rights
9  * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10  * copies of the Software, and to permit persons to whom the Software is
11  * furnished to do so, subject to the following conditions:
12  *
13  * The above copyright notice and this permission notice shall be included in
14  * all copies or substantial portions of the Software.
15  *
16  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19  * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
22  * THE SOFTWARE.
23  */
24 #endregion
25 
26 /*
27  * Authors: Tero Jäntti, Tomi Karppinen, Janne Nikkanen.
28  */
29 
30 using System;
31 using System.Collections.Generic;
32 using Jypeli.WP7;
33 
34 namespace Jypeli.Controls
35 {
36  public enum ListeningType
37  {
38  Null,
43  MouseWheel,
46  Touch,
50  }
51 
57  public enum AnalogControl
58  {
63 
67  LeftStick,
68 
72  RightStick,
73 
78 
83 
88  }
89 
90  [Save]
91  public abstract class Listener : Destroyable
92  {
93  private static NullListener _nullListener = new NullListener();
94  internal static NullListener Null
95  {
96  get { return _nullListener; }
97  }
98 
99  [Save] internal ListeningType Type;
100  [Save] internal String HelpText;
101  [Save] internal ButtonState State;
102  internal Controller Controller;
103 
104  private bool dynamicContext = false;
105  private ListenContext context;
106  private ControlContexted contextedObject;
107 
108  internal ListenContext Context
109  {
110  get { return ( dynamicContext ? contextedObject.ControlContext : context ); }
111  }
112 
113  // Keyboard parametrers
114  [Save] internal Key Key;
115 
116  // Game controller parameters
117  internal AnalogControl AnalogControl;
118  internal Button Button;
119  internal double AnalogTrigger;
120 
121  // Accelerometer parameters
123  internal double AccelerometerSensitivity;
124  internal int AccelerometerGestureCount;
125  internal double AccelerometerLastGesture;
126  internal double AccelerometerGestureSamplingStartTime;
127 
128  // Mouse parameters
129  internal MouseButton MouseButton;
130  internal double MovementTrigger;
131 
132  // Touchpanel parameters
133  internal GestureType? gestureType;
134 
135  private bool disassociated = false;
136  private IGameObjectInternal _gameObject;
137 
138  internal IGameObject GameObject
139  {
140  get { return _gameObject; }
141  set
142  {
143  if ( !disassociated && _gameObject != null )
144  _gameObject.AssociatedListeners.Remove( this );
145 
146  _gameObject = (IGameObjectInternal)value;
147  _gameObject.AssociatedListeners.Add( this );
148  disassociated = false;
149  }
150  }
151 
152  internal bool HasDefaultContext { get { return ( Context == Game.Instance.ControlContext ); } }
153 
154  internal Listener( Controller controller, ListeningType type, String helpText )
155  {
156  this.Controller = controller;
157  this.context = Game.Instance.ControlContext;
158  this.Type = type;
159  this.HelpText = helpText;
160  }
161 
162  #region Destroyable
163 
168  public bool IsDestroyed { get; private set; }
169 
170  public void Destroy()
171  {
172  if ( Controller != null ) Controller.Remove( this );
173  IsDestroyed = true;
174  OnDestroyed();
175  }
176 
180  public event Action Destroyed;
181 
182  private void OnDestroyed()
183  {
184  if ( Destroyed != null )
185  Destroyed();
186  }
187 
188  #endregion
189 
190  internal void Disassociate()
191  {
192  if ( _gameObject != null )
193  _gameObject.AssociatedListeners.Remove( this );
194  disassociated = true;
195  }
196 
197  internal void Associate()
198  {
199  if ( !disassociated ) return;
200 
201  if ( _gameObject != null )
202  _gameObject.AssociatedListeners.Add( this );
203 
204  disassociated = false;
205  }
206 
207  internal abstract Delegate Handler { get; }
208 
209  internal static void Invoke( Listener l )
210  {
211  if ( !l.IsDestroyed && l.Context != null && l.Context.Active )
212  l.Invoke();
213  }
214 
215  internal virtual void Invoke()
216  {
217  throw new NotImplementedException();
218  }
219 
220  internal virtual void Invoke( List<Key> keys )
221  {
222  throw new NotImplementedException();
223  }
224 
225  internal virtual void Invoke( AnalogState state )
226  {
227  throw new NotImplementedException();
228  }
229 
230  internal virtual void Invoke( int channel )
231  {
232  throw new NotImplementedException();
233  }
234 
239  public Listener InContext( ListenContext context )
240  {
241  this.dynamicContext = false;
242  this.context = context;
243  return this;
244  }
245 
253  {
254  this.dynamicContext = true;
255  this.contextedObject = obj;
256  return this;
257  }
258 
265  {
266  this.GameObject = obj;
267  return this;
268  }
269  }
270 
271  public class NullListener : Listener
272  {
273  internal override Delegate Handler { get { return null; } }
274 
275  internal NullListener()
276  : base( null, ListeningType.Null, null )
277  {
278  }
279 
280  internal override void Invoke()
281  {
282  }
283 
284  internal override void Invoke( AnalogState state )
285  {
286  }
287 
288  internal override void Invoke( List<Key> keys )
289  {
290  }
291 
292  internal override void Invoke( int channel )
293  {
294  }
295  }
296 
297  public class SimpleListener : Listener
298  {
299  internal Handler handler;
300 
301  internal override Delegate Handler { get { return handler; } }
302 
303  internal SimpleListener( Controller controller, ListeningType type, string helpText, Handler handler )
304  : base( controller, type, helpText )
305  {
306  this.handler = handler;
307  }
308 
309  internal override void Invoke()
310  {
311  handler();
312  }
313 
314  internal override void Invoke( int channel )
315  {
316  handler();
317  }
318  }
319 
320  internal class SimpleListener<T1> : Listener
321  {
322  internal Handler<T1> handler;
323  internal T1 p1;
324 
325  internal override Delegate Handler { get { return handler; } }
326 
327  internal SimpleListener( Controller controller, ListeningType type, string helpText, Handler<T1> handler, T1 p1 )
328  : base( controller, type, helpText )
329  {
330  this.handler = handler;
331  this.p1 = p1;
332  }
333 
334  internal override void Invoke()
335  {
336  handler( p1 );
337  }
338 
339  internal override void Invoke( int channel )
340  {
341  handler( p1 );
342  }
343  }
344 
345  public class SimpleListener<T1, T2> : Listener
346  {
347  internal Handler<T1, T2> handler;
348  internal T1 p1;
349  internal T2 p2;
350 
351  internal override Delegate Handler { get { return handler; } }
352 
353  internal SimpleListener( Controller controller, ListeningType type, string helpText, Handler<T1, T2> handler, T1 p1, T2 p2 )
354  : base( controller, type, helpText )
355  {
356  this.handler = handler;
357  this.p1 = p1;
358  this.p2 = p2;
359  }
360 
361  internal override void Invoke()
362  {
363  handler( p1, p2 );
364  }
365 
366  internal override void Invoke( int channel )
367  {
368  handler( p1, p2 );
369  }
370  }
371 
372  public class SimpleListener<T1, T2, T3> : Listener
373  {
374  internal Handler<T1, T2, T3> handler;
375  internal T1 p1;
376  internal T2 p2;
377  internal T3 p3;
378 
379  internal override Delegate Handler { get { return handler; } }
380 
381  internal SimpleListener( Controller controller, ListeningType type, string helpText, Handler<T1, T2, T3> handler, T1 p1, T2 p2, T3 p3 )
382  : base( controller, type, helpText )
383  {
384  this.handler = handler;
385  this.p1 = p1;
386  this.p2 = p2;
387  this.p3 = p3;
388  }
389 
390  internal override void Invoke()
391  {
392  handler( p1, p2, p3 );
393  }
394 
395  internal override void Invoke( int channel )
396  {
397  handler( p1, p2, p3 );
398  }
399  }
400 
401  public class SimpleListener<T1, T2, T3, T4> : Listener
402  {
403  internal Handler<T1, T2, T3, T4> handler;
404  internal T1 p1;
405  internal T2 p2;
406  internal T3 p3;
407  internal T4 p4;
408 
409  internal override Delegate Handler { get { return handler; } }
410 
411  internal SimpleListener( Controller controller, ListeningType type, string helpText, Handler<T1, T2, T3, T4> handler, T1 p1, T2 p2, T3 p3, T4 p4 )
412  : base( controller, type, helpText )
413  {
414  this.handler = handler;
415  this.p1 = p1;
416  this.p2 = p2;
417  this.p3 = p3;
418  this.p4 = p4;
419  }
420 
421  internal override void Invoke()
422  {
423  handler( p1, p2, p3, p4 );
424  }
425 
426  internal override void Invoke( int channel )
427  {
428  handler( p1, p2, p3, p4 );
429  }
430  }
431 
432  public class MultiKeyListener : Listener
433  {
434  private Keyboard keyboard;
435  internal MultiKeyHandler handler;
436 
437  internal override Delegate Handler { get { return handler; } }
438 
439  internal MultiKeyListener( Controller controller, string helpText, MultiKeyHandler handler )
440  : base( controller, ListeningType.KeyboardAll, helpText )
441  {
442  this.handler = handler;
443 
444  keyboard = controller as Keyboard;
445  if ( keyboard == null ) throw new InvalidOperationException( "MultiKeyListener not bound to a keyboard" );
446  }
447 
448  internal override void Invoke()
449  {
450  handler( keyboard.KeysTriggered( this.State ) );
451  }
452  }
453 
454  public class MultiKeyListener<T1> : Listener
455  {
456  internal MultiKeyHandler<T1> handler;
457  internal T1 p1;
458 
459  internal override Delegate Handler { get { return handler; } }
460 
461  internal MultiKeyListener( Controller controller, string helpText, MultiKeyHandler<T1> handler, T1 p1 )
462  : base( controller, ListeningType.KeyboardAll, helpText )
463  {
464  this.handler = handler;
465  this.p1 = p1;
466  }
467 
468  internal override void Invoke( List<Key> keys )
469  {
470  handler( keys, p1 );
471  }
472  }
473 
474  public class MultiKeyListener<T1, T2> : Listener
475  {
476  internal MultiKeyHandler<T1, T2> handler;
477  internal T1 p1;
478  internal T2 p2;
479 
480  internal override Delegate Handler { get { return handler; } }
481 
482  internal MultiKeyListener( Controller controller, string helpText, MultiKeyHandler<T1, T2> handler, T1 p1, T2 p2 )
483  : base( controller, ListeningType.KeyboardAll, helpText )
484  {
485  this.handler = handler;
486  this.p1 = p1;
487  this.p2 = p2;
488  }
489 
490  internal override void Invoke( List<Key> keys )
491  {
492  handler( keys, p1, p2 );
493  }
494  }
495 
496  public class MultiKeyListener<T1, T2, T3> : Listener
497  {
498  internal MultiKeyHandler<T1, T2, T3> handler;
499  internal T1 p1;
500  internal T2 p2;
501  internal T3 p3;
502 
503  internal override Delegate Handler { get { return handler; } }
504 
505  internal MultiKeyListener( Controller controller, string helpText, MultiKeyHandler<T1, T2, T3> handler, T1 p1, T2 p2, T3 p3 )
506  : base( controller, ListeningType.KeyboardAll, helpText )
507  {
508  this.handler = handler;
509  this.p1 = p1;
510  this.p2 = p2;
511  this.p3 = p3;
512  }
513 
514  internal override void Invoke( List<Key> keys )
515  {
516  handler( keys, p1, p2, p3 );
517  }
518  }
519 
520  public class MultiKeyListener<T1, T2, T3, T4> : Listener
521  {
522  internal MultiKeyHandler<T1, T2, T3, T4> handler;
523  internal T1 p1;
524  internal T2 p2;
525  internal T3 p3;
526  internal T4 p4;
527 
528  internal override Delegate Handler { get { return handler; } }
529 
530  internal MultiKeyListener( Controller controller, string helpText, MultiKeyHandler<T1, T2, T3, T4> handler, T1 p1, T2 p2, T3 p3, T4 p4 )
531  : base( controller, ListeningType.KeyboardAll, helpText )
532  {
533  this.handler = handler;
534  this.p1 = p1;
535  this.p2 = p2;
536  this.p3 = p3;
537  this.p4 = p4;
538  }
539 
540  internal override void Invoke( List<Key> keys )
541  {
542  handler( keys, p1, p2, p3, p4 );
543  }
544  }
545 
546  public interface IAnalogListener
547  {
548  }
549 
551  {
552  internal AnalogHandler handler;
553 
554  internal override Delegate Handler { get { return handler; } }
555 
556  internal AnalogListener( Controller controller, ListeningType type, string helpText, AnalogHandler handler )
557  : base( controller, type, helpText )
558  {
559  this.handler = handler;
560  }
561 
562  internal override void Invoke( AnalogState state )
563  {
564  handler( state );
565  }
566  }
567 
569  {
570  internal AnalogHandler<T1> handler;
571  internal T1 p1;
572 
573  internal override Delegate Handler { get { return handler; } }
574 
575  internal AnalogListener( Controller controller, ListeningType type, string helpText, AnalogHandler<T1> handler, T1 p1 )
576  : base( controller, type, helpText )
577  {
578  this.handler = handler;
579  this.p1 = p1;
580  }
581 
582  internal override void Invoke( AnalogState state )
583  {
584  handler( state, p1 );
585  }
586  }
587 
588  public class AnalogListener<T1, T2> : Listener, IAnalogListener
589  {
590  internal AnalogHandler<T1, T2> handler;
591  internal T1 p1;
592  internal T2 p2;
593 
594  internal override Delegate Handler { get { return handler; } }
595 
596  internal AnalogListener( Controller controller, ListeningType type, string helpText, AnalogHandler<T1, T2> handler, T1 p1, T2 p2 )
597  : base( controller, type, helpText )
598  {
599  this.handler = handler;
600  this.p1 = p1;
601  this.p2 = p2;
602  }
603 
604  internal override void Invoke( AnalogState state )
605  {
606  handler( state, p1, p2 );
607  }
608  }
609 
610  public class AnalogListener<T1, T2, T3> : Listener, IAnalogListener
611  {
612  internal AnalogHandler<T1, T2, T3> handler;
613  internal T1 p1;
614  internal T2 p2;
615  internal T3 p3;
616 
617  internal override Delegate Handler { get { return handler; } }
618 
619  internal AnalogListener( Controller controller, ListeningType type, string helpText, AnalogHandler<T1, T2, T3> handler, T1 p1, T2 p2, T3 p3 )
620  : base( controller, type, helpText )
621  {
622  this.handler = handler;
623  this.p1 = p1;
624  this.p2 = p2;
625  this.p3 = p3;
626  }
627 
628  internal override void Invoke( AnalogState state )
629  {
630  handler( state, p1, p2, p3 );
631  }
632  }
633 
634  public class AnalogListener<T1, T2, T3, T4> : Listener, IAnalogListener
635  {
636  internal AnalogHandler<T1, T2, T3, T4> handler;
637  internal T1 p1;
638  internal T2 p2;
639  internal T3 p3;
640  internal T4 p4;
641 
642  internal override Delegate Handler { get { return handler; } }
643 
644  internal AnalogListener( Controller controller, ListeningType type, string helpText, AnalogHandler<T1, T2, T3, T4> handler, T1 p1, T2 p2, T3 p3, T4 p4 )
645  : base( controller, type, helpText )
646  {
647  this.handler = handler;
648  this.p1 = p1;
649  this.p2 = p2;
650  this.p3 = p3;
651  this.p4 = p4;
652  }
653 
654  internal override void Invoke( AnalogState state )
655  {
656  handler( state, p1, p2, p3, p4 );
657  }
658  }
659 
660  public class TouchListener : Listener
661  {
662  internal TouchHandler handler;
663 
664  internal override Delegate Handler { get { return handler; } }
665 
666  internal TouchListener( Controller controller, ListeningType type, string helpText, TouchHandler handler )
667  : base( controller, type, helpText )
668  {
669  this.handler = handler;
670  }
671 
672  internal override void Invoke( int channel )
673  {
674  TouchPanel touchController = Controller as TouchPanel;
675 
676  if ( touchController != null )
677  handler( touchController.newState.GetObjectByChannel( channel ) );
678  else
679  throw new InvalidOperationException( "TouchListener.Invoke(ch): Controller is not a TouchPanel" );
680  }
681  }
682 
683  public class TouchListener<T1> : Listener
684  {
685  internal TouchHandler<T1> handler;
686  internal T1 p1;
687 
688  internal override Delegate Handler { get { return handler; } }
689 
690  internal TouchListener( Controller controller, ListeningType type, string helpText, TouchHandler<T1> handler, T1 p1 )
691  : base( controller, type, helpText )
692  {
693  this.handler = handler;
694  this.p1 = p1;
695  }
696 
697  internal override void Invoke( int channel )
698  {
699  TouchPanel touchController = Controller as TouchPanel;
700 
701  if ( touchController != null )
702  handler( touchController.newState.GetObjectByChannel( channel ), p1 );
703  else
704  throw new InvalidOperationException( "TouchListener.Invoke(ch): Controller is not a TouchPanel" );
705  }
706  }
707 
708  public class TouchListener<T1, T2> : Listener
709  {
710  internal TouchHandler<T1, T2> handler;
711  internal T1 p1;
712  internal T2 p2;
713 
714  internal override Delegate Handler { get { return handler; } }
715 
716  internal TouchListener( Controller controller, ListeningType type, string helpText, TouchHandler<T1, T2> handler, T1 p1, T2 p2 )
717  : base( controller, type, helpText )
718  {
719  this.handler = handler;
720  this.p1 = p1;
721  this.p2 = p2;
722  }
723 
724  internal override void Invoke( int channel )
725  {
726  TouchPanel touchController = Controller as TouchPanel;
727 
728  if ( touchController != null )
729  handler( touchController.newState.GetObjectByChannel( channel ), p1, p2 );
730  else
731  throw new InvalidOperationException( "TouchListener.Invoke(ch): Controller is not a TouchPanel" );
732  }
733  }
734 
735  public class TouchListener<T1, T2, T3> : Listener
736  {
737  internal TouchHandler<T1, T2, T3> handler;
738  internal T1 p1;
739  internal T2 p2;
740  internal T3 p3;
741 
742  internal override Delegate Handler { get { return handler; } }
743 
744  internal TouchListener( Controller controller, ListeningType type, string helpText, TouchHandler<T1, T2, T3> handler, T1 p1, T2 p2, T3 p3 )
745  : base( controller, type, helpText )
746  {
747  this.handler = handler;
748  this.p1 = p1;
749  this.p2 = p2;
750  this.p3 = p3;
751  }
752 
753  internal override void Invoke( int channel )
754  {
755  TouchPanel touchController = Controller as TouchPanel;
756 
757  if ( touchController != null )
758  handler( touchController.newState.GetObjectByChannel( channel ), p1, p2, p3 );
759  else
760  throw new InvalidOperationException( "TouchListener.Invoke(ch): Controller is not a TouchPanel" );
761  }
762  }
763 
764  public class TouchListener<T1, T2, T3, T4> : Listener
765  {
766  internal TouchHandler<T1, T2, T3, T4> handler;
767  internal T1 p1;
768  internal T2 p2;
769  internal T3 p3;
770  internal T4 p4;
771 
772  internal override Delegate Handler { get { return handler; } }
773 
774  internal TouchListener( Controller controller, ListeningType type, string helpText, TouchHandler<T1, T2, T3, T4> handler, T1 p1, T2 p2, T3 p3, T4 p4 )
775  : base( controller, type, helpText )
776  {
777  this.handler = handler;
778  this.p1 = p1;
779  this.p2 = p2;
780  this.p3 = p3;
781  this.p4 = p4;
782  }
783 
784  internal override void Invoke( int channel )
785  {
786  TouchPanel touchController = Controller as TouchPanel;
787 
788  if ( touchController != null )
789  handler( touchController.newState.GetObjectByChannel( channel ), p1, p2, p3, p4 );
790  else
791  throw new InvalidOperationException( "TouchListener.Invoke(ch): Controller is not a TouchPanel" );
792  }
793  }
794 }
Jypelin sisäiset metodit ja propertyt joihin käyttäjän ei tarvitse päästä käsiksi kuuluvat tähän luokkaan...
Definition: IGameObject.cs:84
AccelerometerDirection
Suunta/ele joka tunnistetaan.
delegate void TouchHandler< T1, T2, T3 >(Touch touch, T1 p1, T2 p2, T3 p3)
Ohjaintapahtumankäsittelijä kolmella parametrilla.
delegate void MultiKeyHandler< T1 >(List< Key > keys, T1 p1)
Ohjaintapahtumankäsittelijä yhdellä parametrilla.
delegate void MultiKeyHandler< T1, T2, T3, T4 >(List< Key > keys, T1 p1, T2 p2, T3 p3, T4 p4)
Ohjaintapahtumankäsittelijä neljällä parametrilla.
Kosketuspaneelin kosketus.
Definition: Touch.cs:16
delegate void AnalogHandler< T1, T2 >(AnalogState analogState, T1 p1, T2 p2)
Ohjaintapahtumankäsittelijä kahdella parametrilla.
delegate void TouchHandler< T1 >(Touch touch, T1 p1)
Ohjaintapahtumankäsittelijä yhdellä parametrilla.
Kosketuspaneeli.
Definition: TouchPanel.cs:48
Ohjaimen tavallisemmin käytettävä analogitikku. Padissa, jossa on kaksi tikkua, käytetään vasenta...
ButtonState
Napin (minkä tahansa) asento.
Definition: ButtonState.cs:37
delegate void MultiKeyHandler< T1, T2 >(List< Key > keys, T1 p1, T2 p2)
Ohjaintapahtumankäsittelijä kahdella parametrilla.
static Game Instance
Definition: Game.cs:149
MouseButton
Hiiren napit.
Definition: MouseButton.cs:11
Puhelimen kiihtyvyysanturi.
Näppäimistö peliohjaimena.
Definition: Keyboard.cs:41
delegate void Handler< T1, T2, T3 >(T1 p1, T2 p2, T3 p3)
Ohjaintapahtumankäsittelijä kolmella parametrilla.
Peliluokka reaaliaikaisille peleille.
Definition: DebugScreen.cs:10
Listener InContext(ControlContexted obj)
Kuuntelee tapahtumaa vain tietyssä kontekstissa. Esim. Keyboard.Listen(parametrit).InContext(omaIkkuna) kuuntelee haluttua näppäimistötapahtumaa ainoastaan kun ikkuna on näkyvissä ja päällimmäisenä.
Definition: Listeners.cs:252
delegate void TouchHandler< T1, T2 >(Touch touch, T1 p1, T2 p2)
Ohjaintapahtumankäsittelijä kahdella parametrilla.
delegate void AnalogHandler(AnalogState analogState)
Ohjaintapahtumankäsittelijä ilman parametreja.
delegate void Handler< T1 >(T1 p1)
Ohjaintapahtumankäsittelijä yhdellä parametrilla.
Listener InContext(ListenContext context)
Kuuntelee tapahtumaa vain tietyssä kontekstissa.
Definition: Listeners.cs:239
Parametrit analogisen ohjauksen (hiiren tai ohjaustikun) tapahtumalle.
Definition: AnalogState.cs:35
Button
Definition: Button.cs:34
GestureType
Kosketuseleen tyyppi.
Definition: GestureType.cs:10
ListenContext ControlContext
Pelin pääohjainkonteksti.
Definition: Game.cs:217
AccelerometerSensitivity
Herkkyys jolla kallistus/ele halutaan tunnistaa.
delegate void TouchHandler(Touch touch)
Ohjaintapahtumankäsittelijä ilman parametreja.
delegate void MultiKeyHandler(List< Key > keys)
Ohjaintapahtumankäsittelijä ilman parametreja.
delegate void MultiKeyHandler< T1, T2, T3 >(List< Key > keys, T1 p1, T2 p2, T3 p3)
Ohjaintapahtumankäsittelijä kolmella parametrilla.
delegate void Handler()
Ohjaintapahtumankäsittelijä ilman parametreja.
Listener OnObject(GameObject obj)
Kuuntelee tapahtumaa tietyn olion päällä.
Definition: Listeners.cs:264
Yhteinen rajapinta kaikille peliolioille.
Definition: IGameObject.cs:14
delegate void Handler< T1, T2 >(T1 p1, T2 p2)
Ohjaintapahtumankäsittelijä kahdella parametrilla.
delegate void AnalogHandler< T1, T2, T3 >(AnalogState analogState, T1 p1, T2 p2, T3 p3)
Ohjaintapahtumankäsittelijä kolmella parametrilla.
bool IsDestroyed
Onko olio tuhottu.
Definition: Listeners.cs:168
Key
Näppäimistön näppäin.
Definition: Key.cs:37
List< Listener > AssociatedListeners
Definition: IGameObject.cs:87
Action Destroyed
Tapahtuu, kun olio tuhotaan.
Definition: Listeners.cs:180
delegate void Handler< T1, T2, T3, T4 >(T1 p1, T2 p2, T3 p3, T4 p4)
Ohjaintapahtumankäsittelijä neljällä parametrilla.
delegate void AnalogHandler< T1 >(AnalogState analogState, T1 p1)
Ohjaintapahtumankäsittelijä yhdellä parametrilla.
AnalogControl
Analoginen ohjain. Tämä voi olla joko painike, jota voi painaa eri voimakkuuksilla (padiohjaimen liip...
Definition: Listeners.cs:57
delegate void TouchHandler< T1, T2, T3, T4 >(Touch touch, T1 p1, T2 p2, T3 p3, T4 p4)
Ohjaintapahtumankäsittelijä neljällä parametrilla.
Pelialueella liikkuva olio. Käytä fysiikkapeleissä PhysicsObject-olioita.
Definition: __GameObject.cs:54
delegate void AnalogHandler< T1, T2, T3, T4 >(AnalogState analogState, T1 p1, T2 p2, T3 p3, T4 p4)
Ohjaintapahtumankäsittelijä neljällä parametrilla.
Yleinen peliohjainluokka.
Definition: Controller.cs:40
Rajapinta olioille, jotka ovat tuhottavissa.
Definition: Destroyable.cs:8