1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52
|
class MissileTouret
{
private GameTime fireTime = new GameTime();
private bool firing = false;
public bool Firing { get { return firing; } }
public bool IsReadyToFire(GameTime currentTime)
{
// on doit comparer l'heure courante (en heure de jeu) à une
// limite de temps.
TimeSpan span = currentTime.TotalGameTime - fireTime.TotalGameTime;
// ici, 5000 (5 secondes) est un exemple...
if (span.Milliseconds < 5000)
{
// le dernier tir date d'il y a moins de 5 secondes - on est pas
// encore prêt à tirer de nouveau.
return false;
}
else
{
return true;
}
}
public Fire(GameTime currentTime)
{
// TimeSpan est une structure, donc l'opérateur d'assignation effectue
// une copie de la valeur : note : on est pas obligé de copier le
// GameTime entièrement - seules certaines valeurs nous interessent.
// Mais bon, histoire d'être comple...
fireTime.ElapsedGameTime = currentTime.ElapsedGameTime;
fireTime.ElapsedRealTime = currentTime.ElapsedRealTime;
fireTime.TotalGameTime = currentTime.TotalGameTime;
fireTime.TotalRealTime = currentTime.TotalRealTime;
fireTime.IsRunningSlowly = currentTime.IsRunningSlowly;
// maintenant qu'on a sauvegardé l'heure du tir, on peut effectuer le
// tir lui-même ; à vous de voir ce que ça fait (ça dépendra de votre
// jeu).
...
// on oublie pas qu'on est en mode "Feu à volonté" :)
firing = true;
}
public void StopFiring()
{
firing = false;
}
} |
Partager