2012-04-07 21 views
0

Ich versuche, die Kollisionen auf ein Spiel mit Kollision() zu behandeln, aber ich verstehe nicht, was los ist. Hier eine Zusammenfassung:Seltsames Verhalten mit Gamequery Kollisionsfunktion

$("#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}) 

Und dann behandeln ich die Kollisionen dort

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

Und ich füllen die „Feinde“ Gruppe mit Sprites in einer anderen Funktion. Ich möchte, dass die Funktion immer dann aufgerufen wird, wenn das "sp_viseur" -Sprite mit einem Sprite der "Feinde" -Gruppe kollidiert. Aber die Funktion wird nie aufgerufen! Ich habe noch ein paar Tests durchgeführt, also habe ich Frage: Wie läuft das? "Funktion ist es verwenden, um die CSS-Attribute (links, oben ...) oder die Gamequery diejenigen (posx, Sträußchen)

Dank

PS:?. "sp_viseur" auf den Spielplatz hinzugefügt wie die anderen Sprites

Antwort

1

Leider erkannte ich, dass meine Antwort nicht genau das, was Sie gefragt:.

.col lision() gibt keine Kollision mit Gruppen zurück, daher musst du zum .collision-Selektor eine Klasse hinzufügen, die auf alle deine Sprites angewendet wird, zum Beispiel .collision ('# Feinde, .Feinde'). Gamequery verwendet die posx- und posy-Eigenschaften, aber wenn Sie die Funktionen .x() und .y() verwenden, sollten sie synchronisiert werden.

+0

Vielen Dank! Ich habe aber einen Weg gefunden mit "#nemies div" – user1319182