switch case dezimalproblem

  • GM 7

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

  • switch case dezimalproblem

    Hallo.^^ Ic hhabe ein kleines Problem auf das ich keine Lösung finde:

    Ich vergleiche in einem Switch eine VAriable und einen Wert.
    das schaut so aus:

    GML-Quellcode

    1. var ID;
    2. ID= argument0;
    3. switch (messageID){
    4. case ID.0:
    5. ...
    6. break;
    7. case ID.1:
    8. ...
    9. break;


    Das problem ist, das wenn ich eine dezimahlzahl benutze, sagt er mir das nach dem ende der Variable ID ein ":" fehlt.
    Wie löse ich dass so, das ich bei switch/case dezimalzahlen benutzen kann?


    BZW: Was für datentypen kann ich bei Case prüfen lassen?

    Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von LEWA ()

  • GML-Quellcode

    1. ;
    2. var variable
    3. variable = argument0;
    4. switch (messageID)
    5. {
    6. case 1: ...
    7. break;
    8. case 2: ...
    9. break;
    10. case 6: ...
    11. break;
    12. case 8: ...
    13. break;
    Alles anzeigen


    meinst du das???

    MfG Rodrog
    Je mehr Käse, desto mehr Löcher.
    Je mehr Löcher, desto weniger Käse.
    Ergo: Je mehr Käse, desto weniger Käse.
  • Ich versteh die sache nicht zu 100% glaube aber er will die zahl aus einer variablen und einer gegebenen Nummer zusammen fügen und dann prüfen.

    also ID = 500

    und dann soll überprüft werden 500.55

    Aber man kann nicht einfach eine zahl aus einer variablen und einer Nummer bilden.
    Hab garnicht gewusst das es so geht (dachte man muss mit execute_string() arbeiten), aber es funktioniert:

    real(ID+'.'+string(1))

    Dabei muss in ID auch ein String sein.

    Statt der 1 kommt natürlich die Zahl die du hinter dem Punkt haben willst.

    bedenke dass immer wenn du einen Punkt außerhalb eines strings oder einer Zahl schreibst.
    der GM immer versucht eine zuordnung von einem Objekt zu verwenden.


    EDIT: omg, ich glaube ich denke immer viel zu kompliziert...
    Henriks Methode sollte besser sein xD

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

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

  • Also es geht darum:

    ID ist nicht die ID eines Objects, sonder eine eigenst erstellte ID in einem Array:

    (Also ID kannsein: 0,1,2,3,4,5,6,....)

    Das Problem ist das ich ein 2 Dimensionales Array nutze. Also: Array[1,3]. (i ist die nummer des Objekts[ID] und 3 ist die kennungsvaria9ble die bei der 39 DLL übertragen wird.

    Nun will ich in der Versendung der Variablen kein Durcheinander machen. Also habe ich einfach die 2 Variablen des 2 Dimensionalen Arrays bei dem Case überprüfen wollen.-

    Also: case 1,3

    Das Problem ist das man in Case keine kommas benutzen kann. Versteht ihr?
  • Der Game Maker meint du willst dem Object "ID" (bsw. deren Variablen enthaltenen id) zugreifen und die Variable 1 zuweisen will. Da Variablen nicht mit Zahlen beginnen dürfen und der Zuweisung Operrator (=) fehlt.
    Probier mal:

    GML-Quellcode

    1. case ID+0.1:

    #edit
    Getestet, geht.
    wupto.net/ Nicht meine Seite!
    We love Koalas.

    GM-D-Spam-o-Meter: 32%
  • Also, erstmal: Du kannst keine Arrays als Argumente übertragen, dafür könntest Listen oder dergleichen verwenden.
    Du musst also x und y (Reihe und Spalte in deinem 2-Dimensionalen Array) einzeln speichern bzw kennen.
    2. Du bräuchtest einfach n Switch im Switch:

    GML-Quellcode

    1. switch (x)
    2. {
    3. case 0:
    4. switch(y)
    5. {
    6. case 0:
    7. ...
    8. break;
    9. case 1:
    10. break;
    11. }
    12. break;
    13. case 1:
    14. switch(y)
    15. {
    16. ...
    17. break;
    18. }
    Alles anzeigen
    "das war meine letzte flamewar PM an dich ."
  • Benutzer online 1

    1 Besucher