星が拾われたかどうかを示すフラグを追加できます。stella
これは、クラスのフィールドである必要があります。それを呼びましょう...
public bool captata; //I'll go with some Google translated Italian.
レベルが開始したら、次の値で初期化しますfalse
。
foreach (stella stella in stelle)
{
stella.captata = false;
}
プレイヤーが星と交差するとき、フラグを適切に設定します。同時に、星がまだ拾われていない場合にのみ衝突をチェックします。
foreach (stella stella in stelle)
if ((!stella.captata) && (stella.rettangolo.Intersects(giocatore.rect)))
{
score=score+10;
stella.captata = true;
}
もう 1 つの方法は、星のコレクションから星を完全に削除することです。
for (int i = stelle.Count - 1; i >= 0; --i)
{
if (stelle[i].rettangolo.Intersects(giocatore.rect))
{
score = score + 10;
stelle.RemoveAt(i);
}
}