Próbuję zbudować odliczanie, które ma cztery sekcje:

Być wyświetlane w następujący sposób:

0 0 : 0 0

Dziesięć minut minut: dziesięć sekund sekund

Mam _sekundy działające poniżej, _tenseki rosną do 9, co nie jest dobre.

int seconds;
int _secs;
int _tensecs;
int _mins;
int _tenmins;

-(void) tick: (ccTime) dt
{
    seconds++; 

    _secs = seconds % 10;
    _tensecs = (seconds / 10) % 10;  // wrong
    _mins = seconds // ??
    _m_tenminsins = seconds // ??
}
1
daihovey 12 sierpień 2011, 05:33
Moim zdaniem to pytanie jest ledwo związane z Objective-C. Jedyną rzeczą, jaką widzę w Objective-C, jest definicja metody, która nie ma związku z pytaniem o odliczanie.
 – 
nacho4d
12 sierpień 2011, 07:12

3 odpowiedzi

Najlepsza odpowiedź
 _secs = seconds % 10;
 _tensecs = (seconds / 10) % 6;
 _mins = (seconds / 60) % 10;
 _tenmins = (seconds / 600) % 6;
0
daihovey 18 sierpień 2011, 04:42

Cóż, jeśli % 10 daje wartości, które sięgają do 9, jak myślisz, co musisz modulować, aby uzyskać wartości, które sięgają 5?

3
Oliver Charlesworth 12 sierpień 2011, 05:37

Nie znam celu C, ale powinno to zrobić to, czego chcesz:

int seconds;
int _secs;
int _tensecs;
int _mins;
int _tenmins;

-(void) tick: (ccTime) dt
{
    seconds--; 

    _secs = seconds % 60;
    _tensecs = _secs / 10;
    _secs = _secs % 10;

    _mins = seconds / 60;
    _tenmins = _mins / 10;
    _mins = _mins % 10;
}

Zakładamy, że seconds jest dodatnie i odliczasz. Jeśli naprawdę chcesz, aby była ujemna i liczona w górę, jak wydajesz się wskazywać, zmień na:

    seconds++;

    _secs = abs(seconds) % 60;

...

    _mins = abs(seconds) / 60;

...
1
andand 12 sierpień 2011, 06:38