2013-12-15 19 views
5

So habe ich langsam gelernt, wie man das Partikelsystem und den Emitter im Spiel durch den Code manipuliert, aber es gibt eine einfache Aufgabe, die ich nicht verstehen kann ... Wie kann ich nur Partikel spawnen, wenn ich die Maus halte? Taste? Ich habe einen Workaround ausprobiert, indem ich den maxCount von emiter auf 0 gesetzt habe, wenn er nicht gedrückt wird, aber dann gibt er entweder überhaupt keine Partikel aus oder lässt die vorhandenen sofort verschwinden, was sehr unnatürlich aussieht und ich will es nicht. Gibt es eine Möglichkeit, sie in der Rendermethode "manuell" auszugeben?Libgdx - Wie spawnen Partikel nur, wenn ich die Maustaste gedrückt halte?

+2

Zeigen Sie uns Code, der zeigt, was Sie gerade arbeiten. –

+0

Sry Ich habe es komplett vergessen, ich schreibe jetzt eine Antwort mit einem Arbeitsbeispiel! – Pablo1517

Antwort

1

Sie möchten wahrscheinlich den emissionsskalierten Wert auf dem Partikelemitter einstellen. Sie können die maximale Anzahl bei jeder gewünschten Partikelanzahl belassen.

Um die Erzeugung von Partikeln zu deaktivieren:

emitter.getEmission().setLow(0); 
emitter.getEmission().setHigh(0); 

es wieder einzuschalten:

emitter.getEmission().setLow(10); 
emitter.getEmission().setHigh(10); 
0

Versuchen Sie, einen Pool kombiniert mit Ihren Zuhörern mit:

gitHub link

0

Ok, das ist, was ich habe, damit es funktioniert. "blasen" ist im Grunde ein Boolescher Wert, der wahr ist, wenn die Maustaste gedrückt wird, und falsch, wenn nicht.

if (blowing) { 
     effectEmitter.start(); 
    } else { 
     effectEmitter.allowCompletion(); 
    }