Variablen Problem

  • GM 8

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

  • Variablen Problem

    Hab ein Problem, ich würde gerne ein Punktesystem in meinem Lvl einbauen. Also 1erster Spieler xxx.Punkte 2ter Spieler xxx.Punkte

    Ich hab das bis jetzt mit Variable live versucht. Hat ja auch funktioniert. hat aber ein Spieler einen Punkt hinzugekriegt haben es alle zwei plötztlich um 1höher.

    Wie geht das mit Variablen? Ich hoffe ihr versteht meine Frage :)
    Di Dada die Bank ist da ...und ich bin weg
    Noobs reden zu viel. Könner sehen zu wenig.
    Ich sehe dich. Ha und darauf bist du reingefallen.
    Hey wie gehts. Warum liest du das? Nein warum das da rechts meine ich`?
  • Ähm, also du willst in deinem (2-Player-)Spiel das jeder Player seinen eigenen Score hat, bzw. lives.

    Dann mach doch einfach verschiedene Variablen.

    Also die Leben von Player 1 sind lives_p1 und von player 2 lives_p2.

    Du stellst dann einfach die richtige variable höher.

    Willst du auf diese Drachen und -eier klicken?
    Sie werden sich freuen ;)
  • also als Variable einfach lives_p1 oder lives_p2 eingeben also live_(Name)
    Di Dada die Bank ist da ...und ich bin weg
    Noobs reden zu viel. Könner sehen zu wenig.
    Ich sehe dich. Ha und darauf bist du reingefallen.
    Hey wie gehts. Warum liest du das? Nein warum das da rechts meine ich`?
  • Ja, ist doch logisch wenn du eine Variable für beide Spieler benutzt kann es doch nicht funktionieren.

    Du könntest auch Arrays benutzen, also lives[0] und lives[1] sind dann praktisch die Variablen, aber bei nur 2 Spielern ist das unnütz.

    Willst du auf diese Drachen und -eier klicken?
    Sie werden sich freuen ;)
  • geht net :´(

    FATAL ERROR in
    action number 1
    of Step Event
    for object object0:

    COMPILATION ERROR in code action
    Error in code at line 1:
    score_(1) += 1
    ^
    at position 1: Unknown function or script: score_
    Di Dada die Bank ist da ...und ich bin weg
    Noobs reden zu viel. Könner sehen zu wenig.
    Ich sehe dich. Ha und darauf bist du reingefallen.
    Hey wie gehts. Warum liest du das? Nein warum das da rechts meine ich`?
  • Also du musst ungefähr so denken...
    Eine Variable kann Zahlen, Wörter, Wahrheitswerte, und und und... enthalten.
    Eine Varialbe ist ein Name z.b. "Punkte", dass bedeutet... das die Varialbe Punkte heißt.
    So nun kannst du die Variable einen Wert zugeben.
    Funktioniert ungefähr so:

    Punkte1 = Punkte 1 + 1;

    Dies heißt Punkte1 ist auf 0, nunja...

    Punkte1 = 0 + 1 ==> 1
    Nun wird der Wert auf der rechten Seite des "=" in die Variable Punkte1 eingefügt!

    wenn du jetzt Punkte1 abrufen würdest würde 1 da stehen... Du musst aber auch Punkte1 zuerst auf einen Wert setzen, in deinem Fall mit den Punkten auf 0!
    Du machst ein Objekt im Creat-Event musst du Punkte1 auf 0 setzen, Punkte2 auch auf 0!
    In dem Fall wo es passiert das Player 1 Punkte dazu bekommen sollte machst du einfach
    Punkte1 = Punkte1 + (Soviel wie dazu gegeben wirt) gekürzt were das Punkte1 += (Die Zahl)

    Und in dem Fall wo es passiert das Player 1 Punkte dazu bekommen sollte machst du einfach
    Punkte2 = Punkte2 + (Soviel wie dazu gegeben wirt) gekürzt were das Punkte2 += (Die Zahl)

    und gedrawt wird der Text dann so!

    GML-Quellcode

    1. draw_text(x, y, "Punkte vom Player 1 " + string(Punkte1));
    2. draw_text(x, y, "Punkte vom Player 2 " + string(Punkte2));


    Hoffe du verstehst es!

    MfG Rodrog

    Edit: Also mann kann es auch mit Arrays machen, aber für den Anfang sind mehr Variablen besser!
    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 versuche das grade zu enträtzeln. kapiers net... Ich kenn mich mit Variablen eigentlich gut aus. Aber hier ist das irgendwie ganz was anders

    [Zusammengeschoben durch CAS]

    Danke Leute, hab aber grad irgendwie selbstrausgefunden. :)

    :D
    Di Dada die Bank ist da ...und ich bin weg
    Noobs reden zu viel. Könner sehen zu wenig.
    Ich sehe dich. Ha und darauf bist du reingefallen.
    Hey wie gehts. Warum liest du das? Nein warum das da rechts meine ich`?
  • GML-Quellcode

    1. variablen_name=1;

    Dann ist die Variable "variablen_name" 1.
    Variablen Namen dürfen nicht mit Zahlen beginnen und keine Sonderzeichen einhalten.
    Das ist zum Beispiel falsch:
    1variable
    lol/2
    äp1
    Das ist zum Beispiel richtig:
    variable1
    lol2
    aep1
    #edit:
    Ein Doppelpost darfst du nicht machen. 8|
    wupto.net/ Nicht meine Seite!
    We love Koalas.

    GM-D-Spam-o-Meter: 32%
  • Ein anderer Weg wäre, die beiden Spieler als Instanzen in einem controller zu erstellen (also nicht in den raum zu setzen).

    GML-Quellcode

    1. sp1=instance_create(0,0,spieler);
    2. sp2=instance_create(0,0,spieler);
    Dann kannst du einfach in jedem die Variablen ändern:

    GML-Quellcode

    1. sp1.punkte+=1;
    2. sp2.punkte-=2;
    oder von woanders aus:

    GML-Quellcode

    1. controller.sp1.punkte+=1;
    2. controller.sp2.punkte-=2;


    //Ach schade.
  • Oh, sorry das ich dich verlassen hab xD
    War mit meinem Spiel beschäftigt..

    Du hast versucht die Sache mit den Arrays umzusetzen.
    Für arrays musst du eckige Klammern benutzen, keine runden.
    Also score_[0] = 1234

    Arrays sind aber hier eher sinnlos da sie viel mehr speicher verbrauchen als 2 variablen.



    EDIT: Rodrog, su musst versuchen dich verständlicher zu machen.

    xD hab die sache durchgelesen und ich versteh auch Bahnhof xD

    Aber ich weis was du meinst, falls dir das zufällig weiterhilft, hab vor ner Weile im englischen Forum sowas wien tut über variablen geschrieben.

    Aber es ist auf englisch...


    Its simple, you write var_a = var_b
    so the value of var_b is stored in var_a so that theay are equal.
    You can write too: var_a = 55;
    Now in var_a 55 is stored

    That are local variables that means you can only get their value in that object.
    if you want variables which are in the full game avaible, use global variables. that means:
    global.var_c = 123

    or you can initailize the variables global.

    So write:

    globalvar var_c;

    var_c = 10


    Not you can get the variable in all objects (be careful at using this funktion because you can bad issues if you confuse local variables with global ones)


    There are some little tricks too, for exaple write: a += b
    that is exactly the same like a = a + b. (that is the "relative" funktion in DnD)

    You can do the same with -, /, * signs.

    for checking variables use:
    if a = 55
    then
    {

    // here write what you want to happen if a haves the value 55
    }



    Note that the most funktions in gm returns things.
    So for example if you write:
    var_a = instance_create(x,y,obj)

    In the variable var_a the id of the created object will be stored (look in the manual what id's are).

    A thing which you should note ist that GM always when you write the variable it considers in the game always the value!
    So you haven't to write something to get the value of the variable.
    If you mean in a case the name of a variable so use strings (var_a = string(var_b) don't works either, you've to write var_a = "var_b")


    you can store in variables strings, so write: var_a = "the string".
    You can add strings (that means the new part will be immediately after the old part) but not subtract or dividide them! and never compare a real value with a string.
    It gets errors


    Hm, I hope you know now how to work with variables.

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

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