|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Feb 2006
Messaggi: 1304
|
[risolto][C] impossibile sommare i float???
Salve,
sto cercando di realizzare un gioco con il c++, e ora mi sono imbattuto in un problema assurdo: Codice:
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);
}
}
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 ... 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 Ultima modifica di Tommo : 02-02-2007 alle 16:22. |
|
|
|
|
|
#2 | |
|
Senior Member
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
|
Quote:
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%) |
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 09:09.










... semplicemente time andava diviso, non moltiplicato, per clocks_per_sec... aggiungere 1.5 a 7.6 * 10 alla sesta non ha grandi effetti...








