überprüfen vieviele instancen eine var haben

  • überprüfen vieviele instancen eine var haben

    hallo,
    ich siche eine möglichkeit eine anfrage zu machen vieviele instancen eine variable habe. allso, eine bestimmte, in meinem fall number = 1. number geht von 1-9.

    GML-Quellcode

    1. if keyboard_check(ord('1')) then number = 1;
    dies soll aber nur ausgeführt werden wen weniger als 11 instancen number = 1 haben.
    :) Nobody is perfect (-:

    "Dummköpfe sind Denkerköpfen weit überlegen. Zahlenmäßig." Ernst Ferstl
  • mach eine variable mit dem namen global.numberist1.
    jedes mal wenn ein objekt number=1 hat soll es global.numberist1+=1; setzten.
    wenn es dann wieder auf eine ander zahl (z.B. 5)wechselt soll es global.numberist1-=1; setzten. wenn dann global.numberist1 > 11 ist haben mindestenz 11 instanzen number=1
    :D *komm selbst nicht mehr draus* :D
    falls das zu kompliziert geschrieben ist, sag es einfach und ich probiers nochmal besser zu erklären^^
    Dragoon
    int (*x(*x(int))[5])(int*);
    Confused? Yes, it's C!
  • 1. ich würde den key-event nit von dem object, sonderm einen von einem "control-object" ausführen lassen. es tut deinem spiel bestimmt gut, wenn es einen event nicht drölf mal, sondern nur einmal ausführen muss.

    2. ich würde einen solchen code und keine globalen variablen verwenden:

    GML-Quellcode

    1. if keyboard_check(ord('1'))=true && instance_number(obj_NAME)>=11
    2. {with (obj_NAME) {number = 1;}}

    p.s. hab den code nicht getestet und hir geschrieben, hoffe es sind keine tippfehler drinn :D
    Battle Command - WeltraumEchtzeitStrategie | Meine GM Spiele auf Box.net
    GCM/FA/O d-(--)@>---xpu s-:- !a C++$@ U- P L+ E W++ N o K-- w++ O? M V PS PE-- Y PGP t 5 X R+++ tv+ b DI D G e+ h? r-- x
  • ui!
    ich kann mir schon fast denken wofür du das brauchst...

    ist es denn egal, welche objecte zu den gloreichen 11 dazugezählt werden?
    dann versuch doch sowas:

    GML-Quellcode

    1. global.maximum=11 // irgendwo im create event defienieren
    2. temp_num=1;
    3. temp_max=0;
    4. if keyboard_check(ord('1'))=true
    5. {
    6. temp_obj=instance_find(obj_NAME,temp_num)
    7. with (temp_obj) {if temp_max<global.maximum {number = 1;}}
    8. temp_num+=1;
    9. temp_max+=1;
    10. }
    Alles anzeigen


    mhh... das bekommt man bestimmt noch sauberer und ohne die vars hin... aber ich heute nicht mehr *grins*
    Battle Command - WeltraumEchtzeitStrategie | Meine GM Spiele auf Box.net
    GCM/FA/O d-(--)@>---xpu s-:- !a C++$@ U- P L+ E W++ N o K-- w++ O? M V PS PE-- Y PGP t 5 X R+++ tv+ b DI D G e+ h? r-- x

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

  • hi win danke erstmal, ich weiß zwar noch nciht ob es klappt, aber ich habe vorher noch eine frage (man will ja verstehen was man macht)
    in der help steht zu instance_finde follgendes:
    instance_find(obj,n) Gibt die id der (n+1)ten Instanz des Objektes obj an. obj kann ein Objekt oder das Schlüsselwort "all" sein. Wenn es nicht existiert, wird das besondere Objekt "noone" zurückgegeben. Beachte, dass sich die Zuordnung wieder bei jedem Schritt verändert, deswegen benutze nicht die Werte vorheriger Schritte.
    wieso den der n+1te index?
    :) Nobody is perfect (-:

    "Dummköpfe sind Denkerköpfen weit überlegen. Zahlenmäßig." Ernst Ferstl
  • Original von Nobody-86
    hi win danke erstmal, ich weiß zwar noch nciht ob es klappt, aber ich habe vorher noch eine frage (man will ja verstehen was man macht)
    in der help steht zu instance_finde follgendes:
    instance_find(obj,n) Gibt die id der (n+1)ten Instanz des Objektes obj an. obj kann ein Objekt oder das Schlüsselwort "all" sein. Wenn es nicht existiert, wird das besondere Objekt "noone" zurückgegeben. Beachte, dass sich die Zuordnung wieder bei jedem Schritt verändert, deswegen benutze nicht die Werte vorheriger Schritte.
    wieso den der n+1te index?

    Ganz einfach, die Zahlenreihe, aus der du eine angeben musst, fängt bei 0 an.
    Aber sich zu denken: "wenn ich das Ausführe bekomm ich die nullte Instanz zrück" wäre verwirrend, deswegen schreibt Mark hier n+1, dann fängt es nämlich bei 1 an.
  • öhm.. ja, wie Agnahim bereits sagte, ist n eine natürliche positive zahl allerdings inclusive der 0. da man aber nicht die 0te instance finden kann, ist das ganzs logisch.
    theoretisch kannst du natürlich nach der 0ten instance fagen, bekommst dann aber logischer weise die antwort "noone" also auch null raus, denn die 0te instance hat, wegen ihrer nichtexistenz, auch keine ID...
    Battle Command - WeltraumEchtzeitStrategie | Meine GM Spiele auf Box.net
    GCM/FA/O d-(--)@>---xpu s-:- !a C++$@ U- P L+ E W++ N o K-- w++ O? M V PS PE-- Y PGP t 5 X R+++ tv+ b DI D G e+ h? r-- x

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

  • aso, das klingt einleuchtend, auch wen ich mir bereits angewöhnt habe beim zählen bei 0 anzufangen (was ich persöhnlich eigentlich auch ganz logiosch finde).

    trotsdem danke, mitlerweile funtz (fast) alles so wie es sollte. aber das kriege ich aus so noch hin.

    --gelöst--
    :) Nobody is perfect (-:

    "Dummköpfe sind Denkerköpfen weit überlegen. Zahlenmäßig." Ernst Ferstl
  • Benutzer online 1

    1 Besucher