Gas Raum zwischen Schleusen

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

  • Gas Raum zwischen Schleusen

    Hallo Forum!
    Habe eine Frage zum Thema: Gas (Engine ^^?)

    Undzwar würde ich gerne wie auf diesem Bild:



    Einen Raum unter Gas setzen, welchem dann dem Spieler die Luft ausgehen soll.

    Dieser Raum ist durch eine Doppeltür betretbar, und die Schleuse soll dann eine Art druckausgleich ausführen.

    Ich habe eine anfängliche Idee gehabt, die den Mitleren Raum abfragt:

    GML-Quellcode

    1. gas_konz = 0;
    2. xl = x;
    3. xr = x;
    4. while place_free(xl-8,y)
    5. xl -= 8;
    6. xl -= 16;
    7. while place_free(xr+8,y)
    8. xr += 8;
    9. xr += 30;
    10. image_alpha = 0.5;


    Dann wird noch ein Rechteck zwischen den Punkten gemalt und VOILA, der Raum steht unter Gas.

    Aber wie könnte ich den Linken Raum abfragen?
    Bzw. wie könnte ich den Mittleren unter Gas stehenden Raum "GASHALTIG" gestalten? Hat jmd eine idee???

    Grüß! ;)
  • Hi ho,
    ich wiederhole einfach mal die Problemstellung so, wie ich sie gerade verstanden habe :D
    Du möchtest also einen Raum mit Gas darstellen und dazu eine Grenze, über die das Gas nicht
    hinausgeht und die Gaskonzentration im Raum soll dazu langsam ansteigen?

    Die Grenzen würden sich wohl am besten über Objekte ohne Sprite lösen lassen, die dann
    bei Kollision mit dem Spieler dem Objekt, welches das Gas verwaltet, mitteilen, dass der Spieler
    nun nicht mehr vom Gas betroffen wird.

    Das füllen des Raumes wie du es gemacht hast sieht so sinnvoll aus denke ich, funktioniert dann
    natürlich nur sinnvoll für rechteckige Räume. Als Effekt kannst du ja einfach ein mit der steigenden
    Gaskonzentration langsam undurchsichtiger werdendes, farbiges rectangle zeichnen.

    Gruß, Spellmaker
    ___________________________________________________________
    Beware of wild pointers
    ______Hinweis für Allergiker: Kann Spuren von Ironie enthalten_____
  • Hallo Spellmaker!

    So ähnlich hab ich mir das auch vorgestellt. Hab das bis jezt mit einem draw_rectangle gelöst. Aber da habe ich das problem, das ich diese Position nicht prüfen kann. Gab es nicht eine funktion die so etwas prüft? Sprich:

    Das Gas-object müsste im Create mit einer do while Schleife die Türen/ Schleusen prüfen von wo bis wo diese reichen. Dann diese Punkte als min und max angeben. Und wenn nun der Spieler in diesem Bereich ist... wie lässt sich so etwas am besten prüfen?
  • Eine direkte Funktion gibt es glaube ich nicht, aber du kannst dann in einem Skript die Koordinaten
    des Spielers größer als die des linken oberen Punktes, aber kleiner als die des rechts unteren Punktes
    des Rechtecks sind.
    Hilft dir das weiter?

    Gruß, Spellmaker
    ___________________________________________________________
    Beware of wild pointers
    ______Hinweis für Allergiker: Kann Spuren von Ironie enthalten_____
  • Theoretisch kann man es so machen

    GML-Quellcode

    1. x1 = obj_schleuse_links.x;
    2. x2 = obj_schleuse_rechts.x;
    3. y1 = obj_schleuse_links.y;
    4. y2 = obj_schleuse_rechts.y;
    5. draw_rectangle(x1,y1,x2,y2,false);

    so ähnlich würde ich das machen.

    was aber viel besser als draw_rectangle aussehen würde, wären Partikel, die mit einen Destroyer nicht über die schleusen kommen ;)
    Ein Bug ist mehr als nur ein Bug, es ist ein... Käfer!
    Egal, wie gut du eine Mauer baust, sie fällt um.... der klügere gibt nach :D

    Willst du mit mir auf Discord Chatten/Quatschen?
    Meine Husi's Tutorial Reihe