Jypeli 10
The simple game programming library
MeterAddOperation.cs
Siirry tämän tiedoston dokumentaatioon.
1using System;
2
3namespace Jypeli
4{
9 {
12 int dx;
13
15 public bool Active
16 {
17 get { return timer.Enabled; }
18 }
19
20 internal IntMeterAddOperation( IntMeter meter, int change, double seconds )
21 {
22 this.meter = meter;
23 this.dx = Math.Sign( change );
24 int times = (int)Math.Abs( change );
25
26 timer = new Timer();
28 timer.Interval = Math.Abs( seconds / change );
30 timer.Start( times );
31 }
32
33 private void Tick()
34 {
35 meter.Value += dx;
36 }
37
39 public void Stop()
40 {
41 timer.Stop();
42 if ( Stopped != null ) Stopped();
43 }
44
46 public event Action Finished;
47
49 public event Action Stopped;
50
51 private void OnFinished()
52 {
53 if ( Finished != null )
54 Finished();
55 }
56 }
57
62 {
65 double dx;
66
68 public bool Active
69 {
70 get { return timer.Enabled; }
71 }
72
73 internal DoubleMeterAddOperation( DoubleMeter meter, double change, double seconds )
74 {
75 this.meter = meter;
76
77 double dt = findDt( seconds );
78 this.dx = dt * change / seconds;
79 int times = (int)( seconds / dt );
80
81 timer = new Timer();
83 timer.Interval = dt;
85 timer.Start( times );
86 }
87
88 private double findDt( double seconds )
89 {
90 double dt = seconds;
91 while ( dt > 0.05 ) dt /= 2;
92 return dt;
93 }
94
95 private void Tick()
96 {
97 meter.Value += dx;
98 }
99
101 public void Stop()
102 {
103 timer.Stop();
104 if ( Stopped != null ) Stopped();
105 }
106
108 public event Action Finished;
109
111 public event Action Stopped;
112
113 private void OnFinished()
114 {
115 if ( Finished != null )
116 Finished();
117 }
118 }
119}
Tehtävä mittarin arvon kasvattamiselle.
DoubleMeterAddOperation(DoubleMeter meter, double change, double seconds)
void Stop()
Pysäyttää tehtävän.
double findDt(double seconds)
Mittari, joka mittaa double-tyyppisiä arvoja. Sidottavissa näyttöihin, kuten ValueDisplay ja BarGa...
Definition: DoubleMeter.cs:11
Tehtävä mittarin arvon kasvattamiselle.
void Stop()
Pysäyttää tehtävän.
IntMeterAddOperation(IntMeter meter, int change, double seconds)
Mittari, joka mittaa int-tyyppisiä arvoja. Sidottavissa näyttöihin, kuten ValueDisplay ja BarGauge...
Definition: IntMeter.cs:11
Action LowerLimit
Tapahtuu, kun mittari saavuttaa pienimmän sallitun arvonsa.
Definition: Meter.cs:197
ValueType Value
Mittarin arvo.
Definition: Meter.cs:129
Ajastin, joka voidaan asettaa laukaisemaan tapahtumia tietyin väliajoin.
Definition: Timer.cs:38
IntMeter Times
Määrää, kuinka monta kertaa tapahtuma suoritetaan. Kun tapahtumaa on suoritettu tarpeeksi,...
Definition: Timer.cs:141
bool Enabled
Ajastin päällä/pois päältä.
Definition: Timer.cs:66
double Interval
Aika sekunneissa, jonka välein TimeOut tapahtuu.
Definition: Timer.cs:87
void Stop()
Pysäyttää ajastimen ja nollaa sen tilan.
Definition: Timer.cs:292
Action Timeout
Tapahtuu väliajoin.
Definition: Timer.cs:44
void Start()
Käynnistää ajastimen.
Definition: Timer.cs:257
Käynnissä oleva tehtävä
Definition: Operation.cs:9