1. кури учебник жс
2. кури примеры фазера
3. напиши
debugger;
в начале функции update и пройди в дебаге.
я лично не вижу, что за переменная такая dt. Вполне может быть что у тебя к PlayerHero.x прибавляется неведомо что и спрайт улетает в ад.
если тебе нужно время с прошлого апдейта, то есть такое свойство game.time.physicsElapsedMS
читать тут
https://phaser.io/docs/2.6.2/Phaser.Time.html#phys...
еще такой момент, что неясно зачем у тебя в каждом апдейте создается новый спрайт, и что дает этот счетчик.
вообще, счетчик не нужен, достаточно array.length, array.push, array.shift, и прочие методы массива применять.