in bestimmten room wechseln

  • in bestimmten room wechseln

    hi ich mach grad ein Spiel in dem man in einen Teleporter fliegen muss um in ein anderes level zu kommen.

    Man startet im "Levelchoose" level wo viele teleporter drinnen sind. Nun fliegt man in ein beliebigen teleporter und landet in dem entsprechenden Level (room)

    aber ich möchte nicht für ein jedes level einen einzelnen teleoprter machen also hab ich mir gedacht ich mach ne if frage, wo sich der teleporter befindet in den man hineinfliegt (collison) und wird dann in das entsprechende level teleportiert (roomchange)

    Zbs.

    auf der postion x100 y30 befindet sich ein object (teleporter) und man berührt das, dann soll es schauen... aha, befindet sich auf pos x100 y30 ,ab in room "lvl4" oder so

    doch wie genau muss die if frage lauten?

    ich habs bis jetzt so:
    im spieler objekt bei collision mit teleporter
    if instance_position(144,144,other) then room_goto(lvl1)


    was is daran falsch?

    oder wisst ihr eine bessere methode das ganze zu lösen ohne für jeden room eine teleporter objekt zu machen?

    mfg
  • Ja, weiß ich.
    Im Room Editor hälst du Strg gedrückt und klickst dann mit rechts auf einen Teleporter.
    Dann wählst du im Popup Menu, das dann kommt "Creation Code". Und dann schreibst du
    beim ersten Teleporter "number = 1;" beim zweiten "number = 2;" und so weiter. Und beim
    Teleporter Objekt selbst musst du dann nur noch abfragen:

    GML-Quellcode

    1. if number = 1
    2. {
    3. room_goto(blubb)
    4. }


    ,-Megamag

    Magical dream time!
  • das ist jetzt komisch, wenn ich schreibe:

    if number=1
    {
    room_goto(menu)
    }

    geht es in den room "menu"


    wenn ich aber schreibe:

    if number=1
    {
    room_goto(lvl1)
    }

    geht es nicht in den room "lvl1" sondern dann kommt die fehlermeldung...

    mfg

    EDIT: ich hab jetzt Level1 statt lvl1 geschrieben und jetzt funzts...ka wiso, aber egal, DANKE für eure hilfe! :thumbsup:
  • Es geht auch noch einfacher (finde ich).

    Eigentlich (wie in der hilfe steht, und wie ich es immer benutzte) soll man dort den index eingeben. Also die kleine nette Zahl die beim erstellen im room_name steht ... fängt immer bei 00 an.

    Also um sollchen Problem zu umgehen, einfach immer _nummer machen. Name vom raum sonennen: menu_00 (falls es der erste room ist) und dann wenns in room menu rein gehen soll room_goto(0).

    Oder einfach eine konstante machen mit den room name, und der nummer, dann dürfte dies auch hunterprozentig mit room_goto(menu) gehen.

    Mfg.,
    Metalknight
  • tobiasre schrieb:

    bei mir gibts auch so nen komischen bug:
    wenn ich room_goto(menu) eingebe geht er ins erste Level statt ins menu.
    und von den namen her stimmt alles 100 %tig.
    Irgendwas stimmt da mit dem GM net.

    naja egal ...

    mfg


    Ich nehme an das Problem hat sich sowieso erledigt, aber falls andere das Problem auch haben:

    Es liegt wahrscheinlich daran das irgentwas anderes, also eine Variable, ein Raum, ein Sprite oder ein Objekt auch "menu" heißt. Das kann man natürlich ganz einfach dadurch vermeiden, und ich empfehle es sowieso, für alles Präfixe zu benutzen: also für Sprites z.B. "spr_", für Objekte "obj_" usw. .