Überlappende Sprites / Objekte Problem

  • GM 8
  • Überlappende Sprites / Objekte Problem

    Hi Leute,...
    Ich weiß grad nicht weiter. Und hab auch nicht wirklich ne Lösung parat für das folgende Problem das sich mir grad auftut.....
    Ich bitte da mal euch um Hilfe.

    Also,..
    Ich lasse über ein Objekt ( Controll Objekt) , mehrere Objekte ( Towers) der selben Art, auf ein anderes Objekt ( eine Platform) erstellen. Diese Towers stehen nicht genau mittig auf der Platform , sondern halb & halb. Also zur einen Hälfte auf der Platform ,..zur anderen Hälfte über den Rand der Platform ,..in der Luft sozusagen.
    Nun gilt es für den Spieler ( Raumschiff ) , diese Tower von der Platform zu schießen ,..
    Die Tower haben eine hp = 50
    Die Platform ,....hp = 500

    Nun zum eigl. Problem

    Irgendwie werden die hp von der Platform auch abgezogen , obwohl ich einen Tower mit den Schüssen treffe.Und nicht die Platform Manchmal werden überhaupt garkeine hp bei den Towern abgezogen bei erfolgreichen treffer.
    Wenn ich die Towers , ohne die Platform auf der sie zur Hälfte stehn spawen lasse . Klappt alles....

    Was hab ich da vielleicht übersehn,.... oder garfalsch gemacht.

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von neogeo ()

  • Ich glaube, dass das Problem bei den Collision-Events liegt, zwischen der Kugel und dem Tower/Plattform.

    Ich weiß jetzt nicht, wie dein Code ist.
    Aber ich würde der Plattform eine Variabel geben, die überprüft ob sich ein Turm auf der Plattform befindet.
    Und wenn nicht, dann wird die Plattform von der Kugel getroffen, ansonsten nicht.

    Das würde im Script ungefähr so aussehen für die Plattform.

    Create:

    GML-Quellcode

    1. frei = 0 //1 = frei, 0 = besetzt durch den Turm


    Step:

    GML-Quellcode

    1. //Überprüfung ob ein Turm auf der Plattform ist
    2. //x1,y1,x2,y2 sind die Eckpunkte deiner Plattform
    3. if collision_rectangle(x1,y1,x2,y2,obj_turm,1,0)
    4. frei = 0 //Wenn er kollidiert, dann ist die Plattform besetzt
    5. else
    6. frei = 1 //Wenn er nicht kollidiert, dann ist die Plattform frei


    Damit wird nun deine Plattform überprüft, ob ein Turm sich auf ihr befindet.
    Nun kannst du in deinem Collision-Event reingehen und diese Variable "Frei" nutzen,.

    Collision: Plattform-->Kugel //Die Plattform guck, ob sie mit der Kugel kollidiert.

    GML-Quellcode

    1. if Frei = 1 //Wenn die Plattform Frei ist.
    2. hp -= schaden //Dann wird das Leben abgezogen.


    Und bei der Kugel kannst du schreiben.


    Collision: Kugel-->Plattform //Die Kugel überprüft, ob sie mit der Plattform kollidiert.

    GML-Quellcode

    1. idp = instance_nearest(x,y,obj_plattform) //Die Plattform die am nächsten dran ist,also die womit er dann kollidiert, wird als ID gespeichert.
    2. if idp.frei = 1 //Er guckt ob die Variable Frei = 1 ist.
    3. instance_destroy() //Wenn die Plattform frei ist, dann wird die Kugel zerstört.


    Man könnte auch alles in ein Collision-Event schreiben, aber ich denke hiermit geht es auch.
    Ich hoffe ich habe dein Problem getroffen und konnte dir helfen.
    Bei Fragen kannst du dich ja einfach melden.
  • hi, erstmal Danke für die Antwort.
    Ja , so könnte es klappen . Das ich mit ner Variabel die Platform letztlich zum Abschuß frei gebe , wenn kein Tower mehr auf ihr steht.

    DOCH,.. sorry da hab ich mich nicht gut ausgedrückt. Die Platform sollte schon die ganze Zeit " abschießbar " sein. Auch wenn Tower auf ihr stehn.
    Ich hab mal n Example zum Download angehangen.

    Steuerung a,w,s,d
    Schuss : pfeiltasten

    Das Problem wird ersichtlich wenn ihr von rechts nach links auf die beiden Tower schießt.
    Ich meine die ersten beiden Tower funktionieren,..d.h. sie stehn zur Hälfte auf der Platform und bekommen Schaden abgezogen bei Beschuss. Nur die beiden hinteren (rechten) Tower bekommen unregelmäßigen bzw. garkeinen Schaden ,..oder halt wenn sie getroffen werden wird hp von der Platform abgezogen. Wo ich mich echt Frage wie geht das. Es sind doch zwei verschiedene Objekte.
    Weiß hier zufällig jemand Rat.



    mediafire.com/download/i7xpu3m1itk7rkc/test.gm81

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von neogeo ()

  • Benutzer online 1

    1 Besucher