Ich nehme an, Sie haben einige Frame-Update-Methode, die jeden Frame aufgerufen wird, und Sie können auch berechnen, wie viel Zeit (Sekunden) seitdem verstrichen ist. Dann können Sie wie folgt vorgehen:
- -Setup eine Flag-Variable namens
contactInProgress
, auf false
.
- Legen Sie eine Zählervariable mit dem Namen
contactDuration
fest, und setzen Sie sie auf 0.0
.
- Wenn Sie eine Kollision feststellen, setzen Sie
contactInProgress
auf true
und contactDuration
auf 0.0
.
- Wenn Sie keine Kollision mehr feststellen, setzen Sie
contactInProgress
zurück auf false und setzen Sie contactDuration
auf 0.0
zurück.
- Überprüfen Sie in der Rahmenaktualisierungsmethode, ob
contactInProgress
true
ist. Ist dies der Fall, aktualisieren Sie den Wert contactDuration
, indem Sie die seit dem letzten Frame verstrichene Zeit hinzufügen. Überprüfen Sie abschließend, ob contactDuration
größer als gleich 2.0
ist. Wenn ja, mach dein Ding.