Функция autoShoot
запускает только один снаряд при каждом вызове.Существует только один tempProjectile
на вызов для отправки в список * 1003. *.
. Таким образом, одним исправлением может быть добавление tempProjectile2
(в том же месте, где определено tempProjectile
) в качестве переменной, котораяможет быть использован.Теперь в каждом вызове пул снарядов истощается на два, пока достаточное количество снарядов выталкивается
tempProjectile = projectileManager.projectilePool.pop();
tempProjectile2 = projectileManager.projectilePool.pop();
, затем корректируют смещение соответственно
tempProjectile.x
tempProjectile.y
tempProjectile2.x
tempProjectile2.y
И так далее с остальнымикода.Единственное, что мне неясно, это то, почему tempProjectile.x и y назначаются дважды.
tempProjectile.x = (player.point.x) + Math.cos(projectileRadians);
tempProjectile.y = (player.point.y) + Math.sin(projectileRadians);
tempProjectile.x = player.x + 13;
tempProjectile.y = player.y + 13;
, я думаю, будет использоваться только вторая пара.
Надеемся, что остальные функциине должны меняться, потому что в конце снаряды помещаются в список projectiles
projectileManager.projectiles.push(tempProjectile);
projectileManager.projectiles.push(tempProjectile2);
Так что любая функция, используемая для обновления и рендеринга, должна оставаться прежней, предполагая, что tempProjectile не привязан ни к чему другому в программе.