skriptkosmetik: if oder switch?

  • skriptkosmetik: if oder switch?

    wie es im titel schon steht, habe ich kein wirkliches problem mit der technik, sondern mit dem aufbau.

    ich habe ein script erstellt, welches prüft, ob die spielerfigur mit einem bestimmten objekt interagiert. aufruf ist scr_interaktion(<objekt>,<figur>)
    bei argument0 wird angegeben, mit welchem objekt die interaktion geprüft werden soll, argument1 ist true, wenn das objekt, das gesprüft werden soll selber ne figur ist, dann wird noch zusätzlich code ausgeführt, und false, wenn es nur ein gegenstand, z.b. n mülleimer ist. das script liefert true zurück, wenn interaktion stattfindet, und false, wenn nicht. das skript ist so ausgelegt, dass, egal, was im spiel passiert, interaktion findet immer nur mit einem objekt statt. im press enter event wird das benutzt. normalerweise würde ich alle objekte der reihe nach durchtesten:

    GML-Quellcode

    1. if(scr_interaktion(object1,false)
    2. {
    3. //code
    4. };
    5. if(scr_interaktion(object2,true)
    6. {
    7. //code
    8. }
    9. // ...
    10. if(scr_interaktion(objektn,false)
    11. {
    12. //code
    13. }
    Alles anzeigen


    da aber wirklich nur eine dieser if-conditions true sein kann, und da es ziemlich viele objekte werden, würde sich da eher ein switch anbieten, doch da kommt die frage:

    GML-Quellcode

    1. switch(/*was gehört hier hin???*/)
    2. {
    3. case /*und was hier hin?*/: //code
    4. }
  • Ich galub das was du machen willst ist mit Switch nicht realisierbar, kann aber auch sein das ich mich täusche.
    Face in the wind, we're riding the storm
    We'll stay our course whatever will come
    ~~ Stay (Running) Wild ~~
  • RE: skriptkosmetik: if oder switch?

    Original von magic_hero
    Hallo CAS,

    hier habe ich einen Forum-Beitrag für dich rausgesucht. Vielleicht ist dieser hilfreich:

    Case und If

    Gruß


    ich weis sehr wohl, wie man ein switch benutzt, ich wollte nur wissen, was ich in meinem speziellen fall eintragen muss. ich selber komm nämlich nicht drauf...

    und wenn sich das mit switch wirklich net lösen lässt, gibt es denn noch, neben if und switch, eine dritte möglichkeit? oder gibt es ne möglichkeit, dort laufzeit rauszuholen? (laut Defmasters FAQ würde dass dann etwas hacken, sobald jemand enter drückt...)
  • Switch geht in deinem Fall nicht.
    Bei switch ist es 1 Funktion/Variable mit mehreren möglichen Werten.

    Da du immer andere Funktionen hast kannst du das nur mit if machen.
    "Die Erde ist ein Irrenhaus. Dabei könnte das bis heute erreichte Wissen der Menschheit aus ihr ein Paradies machen. Dafür müsste die weltweite Gesellschaft allerdings zur Vernunft kommen."
    - Joseph Weizenbaum
  • Benutzer online 1

    1 Besucher