if (points - lastCheckpoint >= 50)
{
// do something
lastCheckpoint = points - (points % 50);
}
Commencez par un int lastCheckpoint = 0;
lors de mise en place, et cela fera l'affaire. Avertissement: Si les points augmentent de 100 ou plus entre les vérifications, le // do something
ne sera déclenché qu'une seule fois.
Si vous voulez que cela se produise pour tous les 50 points indépendamment, vous pouvez changer l'instruction d'incrément pour être lastCheckpoint += 50;
bien que cela risque le points
courir loin devant lastCheckpoint
.
Edit: ce sera plus efficace:
if (points > nextCheckpoint)
{
// do something
nextCheckpoint = 50 + points - (points % 50);
}
Commencez par int nextCheckpoint = 50;
De cette façon, le test qui est effectué (probablement) chaque itération de la boucle de jeu ne comprend pas une soustraction.
Que voulez-vous dire? Un for-loop à l'intérieur d'un if? – kennytm
Je pense que vous devez être plus clair à ce sujet. En supposant que ce sont des points marqués dans un jeu: Et si le joueur recevait 60 points à la fois? 150? 20? – Thomas
Ce que je veux dire est: Est-ce instruction if at- 50 points, 100 points, 150 points, etc. – user298261