PDA

View Full Version : [risolto][C] impossibile sommare i float???


Tommo
02-02-2007, 15:11
Salve,
sto cercando di realizzare un gioco con il c++, e ora mi sono imbattuto in un problema assurdo:

void Weapon::shoot()
{
//if has elapsed enough time
float time = Level::getSingleton()->getSeconds();
if(time > nextUse)
{
nextUse = time + shoot_delay;
std::cout << time << " - " << nextUse << " - " << shoot_delay << "\n";

playSound("gun_fire1.wav", 1000);
}
}


Teoricamente dovrebe sparare (entrare nell'if) ogni n secondi, con n che è shoot_delay.
Invece spara ogni frame, con la conseguenza fra l'altro di sovraccaricare la scheda audio... ho controllato con cout e semra che i valori di time (ricavato con clock() * CLOCKS_PER_SECONDS) e nextUse sono esattamente uguali, mentre shoot_delay è 1.5 come settato da file.
Non so proprio perchè non si può sommare nulla a time... ho provato a sommare un valore costante, tipo 1.4f, o un float definito la riga sopra, ma nulla... come si spiega?
grazie, Tommo

EDIT: risolto talmente presto che non vale nemmeno la pena di postare di nuovo :doh: ... semplicemente time andava diviso, non moltiplicato, per clocks_per_sec... aggiungere 1.5 a 7.6 * 10 alla sesta non ha grandi effetti...
RIEDIT: andbin non avevo visto il tuo post... grazie comunque

andbin
02-02-2007, 15:20
i valori di time (ricavato con clock() * CLOCKS_PER_SECONDS)Ma non dovresti dividere per CLOCKS_PER_SECONDS per ottenere i secondi?? ;)