Я написал простейший игровой скрипт. Два игрока перестреливаются ракетами. Если ракета попадает в игрока, то уменьшается energy игрока.
JSFIDDLE
Проблема в том, что после того как ракета не попала в игрока и улетела за пределы экрана, она непонятным образом продолжает существовать. Это выражается в том, что если игрок по прошествии времени передвинет свой корабль на место улетевшей ракеты, то он получает уменьшение energy
Вот проблемный кейс:
1. левый игрок подвинулся на 4 шага вверх
2. левый игрок выпустил ракету
3. эта ракета пролетела всю длину экрана и вышла за пределы экрана(тут мой скрипт при помощи splice удаляет ракету из массива ракет)
4. видно, что energy правого игрока не изменилась
5. правый игрок тоже совершает 4 шага вверх
6. в результате energy правого игрока уменшилась(хотя ракеты на этом месте нет)
Помогите пожалуйста починить скрипт.
Клавиши управления: q, a, z, w, s, x