Wie kann man Teleporter programmieren?

  • GM 8

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

  • Wie kann man Teleporter programmieren?

    Hallo,

    da einige schon wissen, dass ich aus Freizeit eigene LevelEditor im Spiel programmiere. Sobald läuft alles gut. Doch bis auf Teleporter weiß ich nicht, wie ich das am besten programmieren kann.

    Mag sein, das "mehrere" Teleporter (obj_teleporter1,obj_teleporter2,obj_teleporter3...) gehen würde, doch bei Level Editor geht das eben schlecht.

    So habe ich mir vorgestellt:



    Kurz aus dem Bild: Spieler kann Teleporter erst benutzen, wenn der mit Teleporter collisiert und dann auf E-Taste klickt. Dieser Rote Pfeil zeigt, das man hin- und zurückteleportieren kann. Und die Nummern, die auf den Teleporter sind, sind Variable. Mit Variable kann man feststellen, wo der Teleporter das Spieler teleportieren soll. Alle Teleporter haben gleicher Objekt, also nur "obj_teleporter" und kein "mehrere" Objekte.

    Man kann Variable in LevelEditor selbstständig umstellen (dank get_integer).


    Hat jemand eine Idee, wie ich am besten Teleporter programmieren kann? :/
    Ihr stinkt.
  • Also ich würde sagen du machst einfach nur ein Objekt und benutzt den creation-code im Editor um eine Variable zu setzen. Z.B. tele_num = 1. DIe Variable muss immer für jedes Teleporter-Paar gleich sein.
    Kolidiert nun der Spieler mit diesem Objekt, dann werden per with-schleife alle anderen Teleporter abgefragt bis eines die slebe Variable hat wie der aufrufende Teleporter.
    In etwa folgendes kommt ind as Kolisionsevent mit dem Spieler für das Teleporter-Objekt rein:

    GML-Quellcode

    1. if keyboard_check_pressed(ord('E')) // wenn E gedrückt wurde
    2. if obj_player.not_teleport = 0 // der der Spieler teleportieren kann (kannst du weg lassen)
    3. with(obj_teleporter)
    4. {
    5. if tele_num = other.tele_num // wenn der Teleporter genau die selbe nummer hat
    6. if id != other.id // aber nciht der aufrufende Teleporter ist
    7. {
    8. obj_player.not_teleport = 1; // der Spieler sollte nicht gleich wieder teleportieren können (kannst du weg lassen)
    9. obj_player.x = x; // der Spieler wird zum neuen Teleporter "teleportiert"
    10. obj_player.y = y;
    11. }
    12. }
    Alles anzeigen

    Du musst dann nur noch ein System einbauen dass die VAriable not_teleport des Players eider auf 0 setzt. Z.b. wenn der Spieler nicht mehr mit dem teleporter kolidiert, etc.

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

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

  • Also so wie du das beschrieben hast, kannst du es ja auch umsetzen. Wenn der Spieler mit einem Teleporter kollidiert und E drückt:

    GML-Quellcode

    1. // Suche passenden Teleporter
    2. with (obj_teleporter)
    3. {
    4. // Vergleiche die Variable des Teleporters auf dem der Spieler steht mit allen Teleportern
    5. if (variable == other.variable)
    6. {
    7. // Vergleiche die ids, es soll der andere Teleporter mit der gleichen Variable gewählt werden
    8. if (id != other.id)
    9. {
    10. // teleportiere den Spieler
    11. obj_player.x = x;
    12. obj_player.y = y;
    13. }
    14. }
    15. }
    Alles anzeigen

    © 2008 by Teamgrill Productions
  • Ich hätte da auch eine Idee und so werde ich es auch in meinem Editor umsetzen, allerdings nicht für Teleporter sondern für gechwindigkeiten.

    Ein Teleporter Object dass du so oft setzen kannst wie du willst und wenn du im Editor drauf klickst kannst du die NR des Teleporters eingeben, bzw die EIngangs und die Ausgangsnummer. Dann können mehrere Teleporter zu einem anderen führen und wenn du durch den durch gehst kannst du wieder bei einem anderen rauskommen.

    out now: KNOSSOS auf itch.io
    ancient-pixel.com <<< ich freue mich über einen Besuch! ^^