Странное поведение с функцией столкновения Gamequery

Я пытаюсь обработать коллизии в игре с помощью collision(), но не понимаю, что происходит. Вот краткое изложение:

    $("#screen").playground({height: PLAYGROUND_HEIGHT, width: PLAYGROUND_WIDTH});
$.playground().addSprite("wall",{animation:anim_mur, posx: 0, posy: -100, width: PLAYGROUND_WIDTH, height: PLAYGROUND_HEIGHT+300})
    .addSprite("table",{animation:anim_tableau, posx: 459, posy: 122, width: PLAYGROUND_WIDTH, height: PLAYGROUND_HEIGHT});
$.playground().addGroup('enemies', {width: 320, height: 280}).end()
            .addSprite("sp_bed",{animation:anim_bed, posx: PLAYGROUND_WIDTH-400, posy: 210, width: 320, height: 280})

И тогда я обрабатываю столкновения там

$("#sp_viseur").collision("#enemies").each(function(){
    alert('test');
    });

А группу "врагов" я заполняю спрайтами в другой функции. Я хочу, чтобы функция вызывалась каждый раз, когда спрайт «sp_viseur» сталкивается со спрайтом группы «враги». Но функция никогда не вызывается! Я провел еще несколько тестов, поэтому у меня есть вопрос: как работает функция «столкновение». Он использует атрибуты css (слева, сверху...) или игровые запросы (posx, posy)?

Спасибо.

PS: "sp_viseur" добавлен на игровую площадку, как и другие спрайты.


person user1319182    schedule 07.04.2012    source источник


Ответы (1)


Извините, я понял, что мой ответ был не совсем тем, что вы просили:

.collision() не возвращает столкновение с группами, поэтому вам нужно добавить в селектор .collision класс, который будет применяться ко всем спрайтам ваших врагов, например, .collision('#enemies,.enemies'). Gamequery использует свойства posx и posy, но если вы используете функции .x() и .y(), они должны быть синхронизированы.

person Selim Arsever    schedule 08.04.2012
comment
Спасибо! Я нашел способ, хотя с #enemies div - person user1319182; 08.04.2012