Grante für ein Minispiel

  • Hallo Liebe Developer,

    Ich bin derzeit an einer Granate für ein Minispiel bei. Soweit klappt alles, also man kann sie werfen und sie explodiert nach 3 Sekunden. Jedoch weiß ich nicht wie man die folgende Funktion umsetzt.


    Wenn man diese Granate wirft, sollen nur Blöcke explodieren die in dem laufenden Spiel platziert wurden und nicht die Blöcke von der Map. Noch hinzugefügt, soll die Granate genau da explodieren wo man sie gegen geworfen hat. Wenn ich diese jetzt beispielsweise gegen eine Mauer(vom Spieler gebaut) gegenwerfen soll das gedroppte/geworfene Item weg spawnen und genau da eine Explosion hervorrufen.


    Ich würde mich über eine sehr hilfreiche Antwort freuen.

    Mfg DerDanny

  • Hey,


    zu deiner ersten Frage, das ist recht einfach umzusetzen. Ich habe das so gelöst, dass ich alle Locations von Blöcken, die von Spielern platziert wurden, in einer ArrayList abgelegt habe. Wenn die Blöcke wieder abgebaut werden werden sie aus der ArrayList entfernt. Wenn du das hast kannst du im BlockExplodeEvent alle Blöcke, die in deiner ArrayList sind, aus der Liste der Blöcke, die zerstört werden, entfernen.


    Zu deiner zweiten Frage hab ich grad keine Lösung, sowas hab ich selbst noch nicht gemacht.

  • Die zweite Frage kann im Prinzip ähnlich umgesetzt werden. Man muss an sich nur die Block gegen den das item knallt herausbekommen, schauen ob dieser in der Liste ist und dann halt explodieren oder halt nicht.


    Aber mir kommt da noch eine Frage dazu. Was hast du den für ein item bzw wie verhält es sich? Eher wie ein Pfeil(Einschlag und am einschlagsort stehen bleiben), Schneeball(Einschlag und zerplatzen) oder doch eine ganz eigene Physik bzw verhalten? Ich gehe zwar davon aus das du in irgendeiner Art und Weise ein eigenes Verhalten gebaut hast, aber das müsstest am besten beschreiben, damit man schauen kann was für Events da verwendet werden können oder ob du da dir noch was eigenes bauen musst.

  • Also ich habe es bis jetzt soweit simple gebaut. Und es sollte sich eher wie ein Schneeball verhalten also verschwinden und dann bis es explodiert eine Rauchwolke vor sich ziehen.


    Ich kann ja einmal den bisherigen Code hier rein schicken.


  • Also zu der ersten Funktion... Ich habe es versucht aber es gehen keine Blöcke weg....


  • Also es heißt bei mir nicht #getResetBlocks sondern #getPlacedBlocks

    Und hier einmal die Klasse und das ExplodeEvent