kann ich eine kollisions abfrage in ein partikel system integrieren?

  • Soweit ich weiß kannst du mit Partikeln (leider) keine Kollisionen durchführen.
    Du könntest höchstens hinter die Partikel ein paar Objekte legen und mit denen
    auf Kollisionen prüfen.
    ___________________________________________________________
    Beware of wild pointers
    ______Hinweis für Allergiker: Kann Spuren von Ironie enthalten_____
  • Du könntest, wenn es nicht zu komplex sein soll, Destroyer, Attracter, Deflector oder Changer einsetzten und diese an den Positionen ertsellen an denen die Objekte sind.. du prüfst damit zwar nicht auf Kollisionen jedoch kannst du Partikel eben zb ändern oder abprallen lassen.

    © 2008 by Teamgrill Productions
  • Ich würde nicht unbedingt Objekte dafür nehmen, die würden bei großen Mengen viel vom Arbeitsspeicher fressen ( afaik ), nimm doch lieber 'nen Saftigen Array, der die X- und Y-Position und den Sprite-Index speichert ( Jaja, Data-Structures... ). Das hat zwar den Nachteil, das die Anzahl limitiert ist - Aber diese lässt sich so hoch stellen, dass man das kaum merken würde.
    Ich würde das in etwa so machen :

    GML-Quellcode

    1. MaxParticles = 100
    2. for ( i = 0 ; i < MaxParticles ; i += 1 )
    3. for ( a = 0 ; a < 3 ; a += 1 )
    4. Particles [ i , a ] = false

    Und zum Spawnen so:

    GML-Quellcode

    1. for ( i = 0 ; i < MaxParticles ; i += 1 )
    2. {
    3. if Particles [ i ] = false
    4. {
    5. Particles [ i , 0 ] = objPlayer.x
    6. Particles [ i , 1 ] = objPlayer.y
    7. Particles [ i , 2 ] = sprParticle
    8. Particles [ i , 3 ] = true
    9. }
    10. }

    Schließlich zum Drawen:

    GML-Quellcode

    1. for ( i = 0 ; i < MaxParticles ; i += 1 )
    2. if Particles [ i , 3 ] == true
    3. draw_sprite ( Particle [ i , 2 ] , 0 , Particle [ i , 0 ] , Particle [ i , 1 ] )

    Der ganze Code ist grad' aus den Fingern gesaugt worden - Ich weiß net, ob der Funktioniert.
    Btw., TrunX, sowas hab' ich noch nie gehört:P
  • Benutzer online 3

    3 Besucher