Случилась у меня фигня — катапульта в одной игре сама по себе стреляла.
оказалось, что это происходит в браузере, когда мышка хоть чуть-чуть выходит за игру. У игрового движка Phaser при выходе мышки за игру происходит вызов всех событий onUp, что может показаться логичным, но не в случае стрельбы — которая происходила самопроизвольно слишком часто в такого рода игре. Дергаешь мышкой туда-сюда, нет-нет, да и вылетишь за край экрана.
Лечение: в коллбэке на событие onUp передается объект pointer, у него можно проверять свойство withinGame. Вот так
1 2 3 4 5 6 7 |
function shoot(pointer) { if(pointer.withinGame){ z.log("shot!!"); if (shootCallback) shootCallback(rootView.x, rootView.y, angle); rootView.setReady(false); } } |
А onUp (вместо onDown) используется тут для того, чтобы удобно было играть на тачскринах — свайпом наводишь луч, а когда поднимаешь палец — катапульта стреляет.
Этот WordPressoвский наверно закрою, смысла особого в нем не вижу, а спамеры тысячами нерестятся, одно расстройство.