Mehrspieler?

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

  • hallo zusammen
    ich arbeite an einem spiel (kampf spiel wie tekken oder ähnlichem) das man zu 2. an einem computer spielt- oder zu mindest versuch ich das.
    denn ich komm an folgenden punkten nicht weiter:

    1. am anfang des spiels soll man in einem character wahl menü sein, in dem sich jeder spieler einen character aussuchen muss.

    2.falls problem 1 gelöst wurde, erscheinen dann die beiden ausgewählten charaktere in einem raum und spieler 1 soll (nur) seinen charakter mit den pfeiltasten bewegen können und spieler 2 (nur) seinen charakter mit w,a,s,d oder so.

    zu 1.
    bisher hab ich das mit einer ziemlich unübersichtlichen code gemacht, mit dem natürlich nur ein character ausgewählt wird und dann den controller ersetzt (hab ich nur zum test gemacht)

    GML-Quellcode

    1. if global.player1 = 1 and global.player2 = 0 and global.player3 = 0 {instance_change(stickman,1)}
    2. if global.player2 = 1 and global.player1 = 0 and global.player3 = 0 {instance_change(obj_monster,true)}
    3. if global.player3 = 1 and global.player2 = 0 and global.player1 = 0 {instance_change(harpye,1)}


    und auf die art wollte ich noch meinen 4. character testen aber dann kam immer error var. global.player4 does not exist obwohl ich das genauso wie die anderen gemacht hab

    ich hoffe ihr habt meine fragen verstanden, und bedanke mich für eure hilfe-
    mfg dark paldin
  • Mach folgendes:
    Im Room Create Event:

    GML-Quellcode

    1. global.sel=1;
    //Spieler wählen nacheinander aus

    Um die Spieler auswählen zu lassen, mach Auswahlobjekte:
    Im Create-Event:
    (von z.B. waehle_spielfigur1)

    GML-Quellcode

    1. build=spielfigur1


    wobei spielfigur1 der name des Objektes sein soll, den der Spieler aussucht, wenn
    er auf den button drückt.

    Im Mouse-Event:

    GML-Quellcode

    1. if (global.sel==1)
    2. {
    3. global.player1=build //gewählte Figur speichern
    4. global.sel=2;
    5. }
    6. else
    7. {
    8. global.player2=build;
    9. room_goto_next(); //zu ersetzen durch die Aktion, die nach der Auswahl passiert.
    10. }

    Die einzelnen Spielfiguren vererbst du dann am besten von einer einzigen, bei der
    schreibst du ins Create-Event:

    GML-Quellcode

    1. owner="";


    Im nächsten Raum gehst du wieder ins Room Create Event und schreibst da:

    GML-Quellcode

    1. //einzelne Figuren erzeugen
    2. pl=instance_create(startx,starty,global.player1); //hier startx und starty durch gewünschte positionen ersetzen
    3. pl.owner="Player1";
    4. pl=instance_create(startx2,starty2,global.player2);//hier startx2 und starty2 durch gewünschte positionen ersetzen
    5. pl.owner="Player2";


    Dann machst du entweder in jedes Tastendruckevent die Abfrage

    GML-Quellcode

    1. if (owner=="Player1") {...Aktion...}

    bzw.

    GML-Quellcode

    1. if (owner=="Player2") {...Aktion...}

    rein (natürlich bei dem Basis objekt für die Spieler)

    Oder du machst ins Step-Event:

    GML-Quellcode

    1. if (owner=="Player1)
    2. {
    3. if (keyboard_check(vk_up))
    4. .
    5. .
    6. .
    7. }
    8. else
    9. {
    10. //tastenabfragen und aktionen für Spieler zwei
    11. }
    Alles anzeigen
    ___________________________________________________________
    Beware of wild pointers
    ______Hinweis für Allergiker: Kann Spuren von Ironie enthalten_____
  • huch das sieht aber ziemlich komplieziert aus, ich les mir das mal inruhe durch und versuch es morgen, wenn ich mich wieder konzentrieren kann.

    da ich aber denke das es so funktioniert wie du das geschrieben hast hacke ich das thema einfach mal ab.

    danke für die hilfe
  • Es sieht viel komplizierter aus, als es ist :D
    Es kann schon sein, dass ein paar kleinere
    Denkfehler (ehern Schreibfehler) drin sind,
    ich bin nämlich schon etwas müde :)
    Wenn du Probleme hast, kannst du ja nochmal
    nachfragen.
    ___________________________________________________________
    Beware of wild pointers
    ______Hinweis für Allergiker: Kann Spuren von Ironie enthalten_____
  • So, da ich plötzlich meinen Beitrag nicht mehr editieren kann, muss ich
    halt Doppelposting machen:
    Ich hab ein sehr simples Beispiel für dich gemacht.
    (Wehe es lacht jemand über die Sprites xD )
    Dateien
    • selplayers1.zip

      (8,75 kB, 75 mal heruntergeladen, zuletzt: )
    ___________________________________________________________
    Beware of wild pointers
    ______Hinweis für Allergiker: Kann Spuren von Ironie enthalten_____