Is it supposed to have a off by one error? I'm left with an extra fish. Maybe I clicked too fast or managed to get a twofer.
1. Rather than waiting for the game engine update callback, I handle touch/mouse input immediately (required by SpeechSynthesis) so multiple input events can trigger before the game engine cleans up a destroyed object (fish).
2. I incremented score synchronously but marked a fish as destroyed asynchronously so there was a window where another click on the fish could occur.
Thanks again!
One time I ended up hitting a bug where the new level would start while an extra fish from the previous level was still there. If anybody figures out a way to reproduce this, please share!