Jypeli  9
The simple game programming library
DoubleMeter.cs
Siirry tämän tiedoston dokumentaatioon.
1 using System;
2 using System.Collections.Generic;
3 
4 namespace Jypeli
5 {
10  public class DoubleMeter : Meter<double>
11  {
12  private List<Operation> operations = new List<Operation>();
13 
14  public override double RelativeValue
15  {
16  get { return ( Value - MinValue ) / ( MaxValue - MinValue ); }
17  set { Value = MinValue + value * ( MaxValue - MinValue ); }
18  }
19 
20  public DoubleMeter( double defaultValue )
21  : base( defaultValue, 0.0, double.MaxValue )
22  {
23  }
24 
25  public DoubleMeter(double defaultValue,double minValue, double maxValue)
26  : base(defaultValue,minValue, maxValue)
27  {
28  }
29 
35  public static implicit operator double( DoubleMeter m )
36  {
37  return m.Value;
38  }
39 
45  public void AddValue( double change )
46  {
47  Value += change;
48  }
49 
55  public void MultiplyValue( double multiplier )
56  {
57  Value *= multiplier;
58  }
59 
67  public Operation AddOverTime( double change, double seconds, Action onComplete )
68  {
69  Operation op = AddOverTime( change, seconds );
70  op.Finished += onComplete;
71  return op;
72  }
73 
80  public Operation AddOverTime( double change, double seconds )
81  {
82  Operation op = new DoubleMeterAddOperation( this, change, seconds );
83  op.Finished += delegate { operations.Remove( op ); };
84  op.Stopped += delegate { operations.Remove( op ); };
85  operations.Add( op );
86  return op;
87  }
88 
92  public void Stop()
93  {
94  while ( operations.Count > 0 )
95  operations[0].Stop();
96  }
97 
98  internal override double GetValue()
99  {
100  return Value;
101  }
102 
103  internal override double GetMinValue()
104  {
105  return MinValue;
106  }
107 
108  internal override double GetMaxValue()
109  {
110  return MaxValue;
111  }
112  }
113 }
114 
Jypeli.Meter
Mittari, joka mittaa erityyppisiä arvoja. Sidottavissa näyttöihin, kuten ValueDisplay ja BarGauge.
Definition: Meter.cs:61
Jypeli.DoubleMeter
Mittari, joka mittaa double-tyyppisiä arvoja. Sidottavissa näyttöihin, kuten ValueDisplay ja BarGa...
Definition: DoubleMeter.cs:11
Jypeli.Operation.Stopped
Action Stopped
Tapahtuu kun tehtävä pysäytetään Stop-metodilla.
Definition: Operation.cs:29
Jypeli.DoubleMeter.DoubleMeter
DoubleMeter(double defaultValue)
Definition: DoubleMeter.cs:20
Jypeli.DoubleMeter.GetMinValue
override double GetMinValue()
Definition: DoubleMeter.cs:103
Jypeli
Definition: Automobile.cs:5
Jypeli.DoubleMeter.MultiplyValue
void MultiplyValue(double multiplier)
Kertoo mittarin arvon jollakin. Sama kuin Value-ominaisuuden kertominen, mutta helpompi käyttää ta...
Definition: DoubleMeter.cs:55
Jypeli.Operation
Käynnissä oleva tehtävä
Definition: Operation.cs:9
Jypeli.DoubleMeter.AddOverTime
Operation AddOverTime(double change, double seconds)
Lisää tietyn summan mittariin tasaisesti tietyn ajan sisällä.
Definition: DoubleMeter.cs:80
Jypeli.DoubleMeter.Stop
void Stop()
Pysäyttää AddOverTime-metodilla tehtävät lisäykset mittariin.
Definition: DoubleMeter.cs:92
Jypeli.Operation.Finished
Action Finished
Tapahtuu kun tehtävä valmistuu. Ei tapahdu, jos tehtävä keskeytetään Stop-aliohjelmalla.
Definition: Operation.cs:24
Jypeli.DoubleMeter.operations
List< Operation > operations
Definition: DoubleMeter.cs:12
Jypeli.DoubleMeter.GetMaxValue
override double GetMaxValue()
Definition: DoubleMeter.cs:108
Jypeli.DoubleMeter.AddValue
void AddValue(double change)
Lisää jotain mittarin arvoon. Sama kuin Value-ominaisuuteen lisääminen, mutta helpompi käyttää...
Definition: DoubleMeter.cs:45
Jypeli.DoubleMeter.DoubleMeter
DoubleMeter(double defaultValue, double minValue, double maxValue)
Definition: DoubleMeter.cs:25
Jypeli.DoubleMeter.RelativeValue
override double RelativeValue
Definition: DoubleMeter.cs:15
Jypeli.DoubleMeterAddOperation
Tehtävä mittarin arvon kasvattamiselle.
Definition: MeterAddOperation.cs:57
System
Definition: CFFauxAttributes.cs:29
Jypeli.DoubleMeter.AddOverTime
Operation AddOverTime(double change, double seconds, Action onComplete)
Lisää tietyn summan mittariin tasaisesti tietyn ajan sisällä.
Definition: DoubleMeter.cs:67
Jypeli.DoubleMeter.GetValue
override double GetValue()
Definition: DoubleMeter.cs:98