Kollision mit Partikel

  • GM 8

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Nicht direkt, aber es gibt einen Trick der zumidnest theoretisch funktionieren würde. Derda heisst Destroyer und counter.
    Es gibt eine Funktion mit der man die Partikel zählen kann (part_particles_count(ind)) und man kann Destroyer erstellen welche bei Kolision mit Partikeln, diese zerstören --> gesamtcounter an Partikeln sinkt = Kolision mit dem destroyer (welcher dann immer an die Stelle des Objekts bewegt wird).
    Dies ist aber eine eher unschöne Methdoe und das Programm muss dafür bestimmte Vorraussetzungen erfüllen (z.B dass die Partikel ein sehr langes Leben haben und zum größtenteil durch die destroyer vernichtet werden).
    Wäre hilfreich zu wissen was du vorhast :)

    Willst du auf diese Drachen und -eier klicken?
    Sie werden sich freuen ;)
  • Ich wollte ein Arcade Shooter in die Richtung Touhou (Screenshot, wers nicht kennt ) machen. Also oben der Gegner, unten der Spieler und der Boss spammt gefühlte 5.000 Kugeln als Angriff runter. Ich bräuchte halt die Kollision um festzustellen, ob der Spieler getroffen wird. Natürlich könnt ich das auch mit Objekten machen, aber das wäre sicher leistungsmäßig nicht so toll.
  • Mh.. genau für sowas ist der GM ziemlich ungeeignet. Eben weil er Dinge nciht so schnell verarbeiten kann...
    Die Methdoe die ich grad erwähnt habe könnte funktionieren, du musst nur ein paar Tricks anwenden...
    Ansonsten könntest du die Kugelna uch simulieren. Also mit Hilfe eines arrays sowas wie objekte simulieren die sich in einem Step even ewegen und deren Kolision du mit position_meeting z.B. rausfinden kannst.

    Willst du auf diese Drachen und -eier klicken?
    Sie werden sich freuen ;)
  • xGamer336 schrieb:

    Ich bräuchte halt die Kollision um festzustellen, ob der Spieler getroffen wird. Natürlich könnt ich das auch mit Objekten machen, aber das wäre sicher leistungsmäßig nicht so toll.


    Anders wird das aber in Touhou auch nicht gehandhabt. Wenn du den Spieler natürlich mit 5000 Kugeln zuballerst, knickt so ziemlich jede Engine ein - der Kniff bei Danmakus ist, das Kugelmaß in Grenzen zu halten und trotzdem eine Herausforderung zu bieten.
    Und du wirst lachen: Ich baue momentan ebenfalls ein von Touhou inspiriertes Danmaku. Und aus Erfahrung kann ich sagen, dass so ziemlich 90% aller Performance-Probleme, die du beim Coden von sowas erfährst, deine eigene Schuld sind.
    Brechen dir die Frames weg, weil du einen Laser programmiert hast, der kein Sprite hat, sondern über collision_line arbeitet? Verpass ihm stattdessen einfach eine 3x1-Kollisionsmaske und skalier sie hoch.
    Brechen sie dir weg, weil deine Kurven fliegenden Kugeln jeden Step ihre Richtung neu ausrechnen? Benutz stattdessen die Path-Funktionen im GM.
    Und so weiter, und so fort... Ich hab mir schon mehr als einmal nachträglich an den Kopf langen müssen, weil ich unnötig komplizierte Lösungen für eigentlich total simple Probleme gecodet hab. Nachdem ich die dann umgeschrieben hatte, lief das Spiel dann um einiges ressourcenschonender.

    Ich häng dir mal nen Screenshot an, in dem du ein paar meiner Spielelemente siehst.
    Meine Hardware ist von 2007 und das Pattern läuft trotzdem mit flüssigen 60 fps.
    Bilder
    • screenshot106.png

      299,03 kB, 800×600, 140 mal angesehen