Hilfe komme nicht weiter bei 2 player

  • GM 8

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

  • Hilfe komme nicht weiter bei 2 player

    hallo

    also ich hab einen charakterscreen erstellt in dem man entweder eine männliche oder eine weibliche figur auswählen kann.

    jetzt hab ich ein 2 player button gemacht damit 2 spieler gleichzeitig spielen können.jedoch habe ich probleme damit wegen dem charakter screen.

    wie mach ich es das wenn auch 2 spieler gedrückt wird zuerst nur der player 1 einen spieler auswählen muss und dann der player 2 .das mit den views bekomm ich dann selber hin und mit der steuerung .


    bitte um eure hilfe
  • einfach eine Variable erstellen die angibt, ob Spieler 1 schon fertig ist. Der Spieler drückt dann also einen Button oder eine Taste und ist "bereit", dann kann Spieler 2 auswählen.

    Z.B.

    GML-Quellcode

    1. ready = 0
    2. // Spieler 1
    3. if ready = 0
    4. {
    5. // Spieler 1 Charakter zeugs auswählen
    6. if keyboard_check_released(vk_enter) { ready = 1 }
    7. }
    8. // Spieler 2
    9. if ready = 1
    10. {
    11. // Spieler 2 Charakter zeugs auswählen
    12. if keyboard_check_released(vk_enter) { ready = 2 }
    13. }
    Alles anzeigen

    Husi012 hat mich nicht mehr in seiner Signatur, ich bin trotzdem noch fame.
  • danke aber ich komm nicht ganz mit...

    muss ich das in den button für 1 spieler machen oder beim button für 2 spieler?? und wie??

    also ich hab den button diesem code:

    obj_button_1player
    Create Event

    GML-Quellcode

    1. global.playerselect=0;


    Left Pressed Event

    GML-Quellcode

    1. global.playerselect=1;
    2. room_goto(rm_charakterselect);


    Für den button 2 Spieler button das selbe nur im left pressed global.playerselect = 2


    dann hab ich die charakterauswahl mit dem hier
    Obj_select_ninja
    Create Event

    GML-Quellcode

    1. global.player="Player1";



    Left Pressed Event

    GML-Quellcode

    1. global.select=1;
    2. room_goto(rm_level1);


    für den anderen charakter das hier:

    Obj_select_ninjagirl
    Create Event

    GML-Quellcode

    1. global.player="Player2";


    Left Pressed Event

    GML-Quellcode

    1. global.select=2;
    2. room_goto(rm_level1);



    dann hab ich einen controller dafür:

    obj_selectcontroller == im charakterauswahlmenü
    Create Event

    GML-Quellcode

    1. global.select=0;




    obj_select === im 1 level
    Create Event

    GML-Quellcode

    1. if global.select = 1
    2. {
    3. instance_change(obj_player,true);
    4. }
    5. else if global.select =2
    6. {
    7. instance_change(obj_player2,true);
    8. }





    so das ist alles.wie kann ich das jetzt am besten machen??
  • Immer noch genauso wie Dufner es geschrieben hat.

    Spieler 1 hat seinen Spieler gewählt -> Eine Variable auf true setzen.
    Ist diese Variable true -> Spieler 2 darf wählen.
    Spieler 2 hat gewählt -> 2te Variable auf true setzen.

    Sind beide Variablen true -> Spiel kann losgehen.

    Testen ob beide Variablen true sind geht mit einer "and" verknüpfung:

    GML-Quellcode

    1. if Player1Ready = true && Player2Ready = true
    2. {
    3. //Spiel kann losgehen
    4. }


    Wenn man deinen Code betrachtet, sollte es dir ein leichtes sein, das mit einzubauen.
  • ja so meinst du :

    GML-Quellcode

    1. if (Player1Ready==0)
    2. {
    3. global.Player="Player1";
    4. if mouse_check_button(mb_left)
    5. {
    6. Player1Ready=1;
    7. }
    8. }
    9. if (Player2Ready==1)
    10. {
    11. global.Player="Player2";
    12. if mouse_check_button(mb_left)
    13. {
    14. Player2Ready=2;
    15. }
    16. }
    17. if (Player1Ready=1) && (Player2Ready=2)
    18. {
    19. room_goto(rm_level1);
    20. }
    Alles anzeigen




    aber ich hab dennoch das problem das ich nicht weiß wo ich es am besten hin soll....soll ich einen eigenen controller machen und den dann ins charaktermenü setzen oder soll ich es schon bei den buttons für 2 spieler hinein??

    und ich brauch ja noch eine abfrage für ob ein oder zwei spieler ausgewählt wurden etc.

    und wie merkt er sich das welchen spieler der jeweilige player ausgewählt hat??

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

  • Das ganze is halb so wild... Erstelle dir beim Spielstart (ganz am Anfang deines Spiels) einige Globale Variablen. Auf Globale Variablen kannst du im gesamten Spiel zugreifen. Globale Variablen deklariert man so:

    GML-Quellcode

    1. global.WievielSpieler = 0;
    2. global.Spieler1Ready = false;
    3. global.Spieler2Ready = false;
    4. global.Spieler1Char = 0;
    5. global.Spieler2Char = 0;


    Nun hast du im Gesamten Spiel zugriff auf die Variablen und kannst sie ändern / auslesen wie du magst.

    Nun wählt dein Spieler "Neues Spiel". Du baust eine Abfrage ein wieviele Spieler spielen sollen (Einen Button / Menüeintrag). Dort wählt er nun 2 Spieler aus. Dann änderst du deine erste Variable:

    GML-Quellcode

    1. global.WievielSpieler = 2;


    Dann kommt der Spieler zur Charakterauswahl. Zuerst darf Spieler 1 wählen. Er sucht sich über Knöpfe einen Charakter aus, und bestätigt seine Eingabe (Mausklick / Enter Knopf etc). Dann stellst du deine anderen Variablen um:

    GML-Quellcode

    1. global.Spieler1Ready = true;
    2. global.Spieler1Char = 3;
    3. //Spieler Eins ist Fertig und hat den 3ten Char gewählt


    Dann darf Spieler 2 wählen, und dort ist es genauso:

    GML-Quellcode

    1. global.Spieler2Ready = true;
    2. global.Spieler2Char = 2;
    3. //Spieler Zwei ist Fertig und hat den 2ten Char gewählt


    Nun leuchtet der Spiel beginnen knopf auf sobald global.Spieler1Ready und global.Spieler2Ready beide true sind und die Spieler können loslegen.
    Aufgrund der veränderten Variablen kannst du nun entsprechend die Sprites etc der Spieler ändern. Sobald der / die Spieler keine Lust mehr haben und zurück ins Menü gehen, solltest du alle Variablen wieder auf 0 setzen, damit sie wieder ein neues Spiel beginnen können.
  • gut aber wie sag ich ihm das player 1 zuerst wählen muss???und wie??

    mir ist schon klar das er es mit mouse_check_button(mb_left) machen muss aber .wo soll ich die codes hinpacken und wie ...ohhh mein gootttt tut mir wirklich leid...du denkst sicher ich bin dumm aber ich bin wirklich überfordert damit...hatte bei anderen sachen nicht so viel stress.
  • @Atomicmaster
    Man kann statt die zwei Variablen auch einfach eine Variable hochzählen lassen:
    0 = 1. Spieler muss wählen
    1 = 2. Spieler muss wählen
    2 = 2. Spieler ist fertig.
    Wenn man jetzt das ganze mit mehr Spielern machen würde, kann man dann auch das ganze leicht auf 3 erweitern und kann für das Abspeicher, welcher Char gewählt wurde, Arrays benutzen.

    @acidrain833
    Um das anzuzeigen, kannst du draw_text(x,y, text) benutzen:(mit dem Beispiel von Atomicmaster)

    GML-Quellcode

    1. ​if (global.Spieler2Ready)
    2. draw_text(x,y, "Alle haben gewählt");
    3. else if (global.Spieler1Ready)
    4. draw_text(x,y, "Spieler 2 muss wählen");
    5. else
    6. draw_text(x,y, "Spieler 1 muss wählen");


    mouse_check_button(mb_left)
    Damit kannst du abfragen, ob irgendwo, wo auch immer die Maus gedrückt wurde.
    In dem Fall musst du abfragen auf welchem Objekt du bist, zB. mit der Funktion position_meeting(x,y, obj)
    Da kannst du dann für x und y, mouse_x und mouse_y einsetzen.
    Dann fragst du pro Char-Auswahl-Objekt immer ab ob die Maus dadrüber ist.
    Ein Bug ist mehr als nur ein Bug, es ist ein... Käfer!
    Egal, wie gut du eine Mauer baust, sie fällt um.... der klügere gibt nach :D

    Willst du mit mir auf Discord Chatten/Quatschen?
    Meine Husi's Tutorial Reihe
  • ok anscheinend ist das gerad etwas zu hoch für mich...aber danke an alle für eure tolle hilfe....

    ich bekomms einfach nicht hin weil wenn du meinen code vom 3 post ansiehst siehst du das ichs ja so machen muss

    GML-Quellcode

    1. if global.playerselect==1 && global.select == 1
    2. { ready=1;
    3. room_goto(level_1)
    4. }//global.playerselect ist wieviel spieler und global select ist welcher charakter
    5. if global.playerselect==1 && global.select == 2
    6. { ready=1;
    7. room_goto(level_1)
    8. if global.playerselect==2 && global.select == 1
    9. //und da komm ich nicht weiter
    Alles anzeigen


    und so weiter und so weiter...und da komm ich nicht ganz dahinter wie aber ich lass es lieber weg da ich es nicht schnalle...vielleicht beim nächsten spiel..
  • Moin,

    nicht aufgeben, genau so lernt man am effektivsten :thumbup:
    Ich versuche mal bei dir anzusetzen.
    Du brauchste für jeden Spieler eine Variable. In deinem 3. Post speicherst du beide Spieler in die selbe Variable "global.select".

    GML-Quellcode

    1. if global.playerselect == 1 && global.select1 == 1
    2. {
    3. ready=1;
    4. room_goto(level_1)
    5. }
    6. if global.playerselect == 1 && global.select1 == 2
    7. {
    8. ready=1;
    9. room_goto(level_1)
    10. }
    11. if global.playerselect == 2 && global.select1 == 1 && global.select2 == 2
    12. {
    13. ready = 1;
    14. room_goto(level_1)
    15. }
    16. if global.playerselect == 2 && global.select1 == 2 && global.select2 == 1
    17. {
    18. ready = 1;
    19. room_goto(level_1)
    20. }
    Alles anzeigen
    Drei Arten von Männern versagen im Verstehen der Frauen:
    junge Männer, Männer mittleren Alters und alte Männer.

    irisches Sprichwort
  • danke für deine antwort @Bartlbey

    aber wie mach ich es das ich sag das wenn zwei spieler ausgewählt wurden dann der erste player mal einen charakter auswählen muss und dann der zweite....


    es geht hauptsächlich darum wie das mit dem auswählen gehn soll....

    also sagen wie es sind zwei spieler ausgewählt worden es geht dann in den nächsten raum wo man den charakter auswählen kann aber davor muss ich noch
    einen code schreiben der sagt das zuerst player 1 einen charakter auswählt dann der zweite.


    GML-Quellcode

    1. if global.playerselect == 2 //wenn zwei spieler ausgewählt wurden
    2. {
    3. player 1 klick auf einen charakter & dann speichere dass und dann player 2 klick auf einen charakter // das ist mein problem
    4. room_goto(level_1)
  • Erstelle dafür z.B. zwei Räume

    Bei ein Spieler wird nach Raum 1 das Spiel gestartet.
    Bei zwei Spielern nach Raum 1 in Raum 2 gewechselt, dabei kannst du dann auch gleich den von Spieler 1 ausgewählten Charakter ausgrauen.

    Ich hoffe der Denkanstoß hilft dir weiter, ansonsten melde dich einfach :D
    Drei Arten von Männern versagen im Verstehen der Frauen:
    junge Männer, Männer mittleren Alters und alte Männer.

    irisches Sprichwort
  • @Atomicmaster

    Atomicmaster schrieb:

    Das ganze is halb so wild... Erstelle dir beim Spielstart (ganz am Anfang deines Spiels) einige Globale Variablen. Auf Globale Variablen kannst du im gesamten Spiel zugreifen. Globale Variablen deklariert man so:

    GML-Quellcode

    1. global.WievielSpieler = 0;
    2. global.Spieler1Ready = false;
    3. global.Spieler2Ready = false;
    4. global.Spieler1Char = 0;
    5. global.Spieler2Char = 0;


    Nun hast du im Gesamten Spiel zugriff auf die Variablen und kannst sie ändern / auslesen wie du magst.

    Nun wählt dein Spieler "Neues Spiel". Du baust eine Abfrage ein wieviele Spieler spielen sollen (Einen Button / Menüeintrag). Dort wählt er nun 2 Spieler aus. Dann änderst du deine erste Variable:

    GML-Quellcode

    1. global.WievielSpieler = 2;


    Dann kommt der Spieler zur Charakterauswahl. Zuerst darf Spieler 1 wählen. Er sucht sich über Knöpfe einen Charakter aus, und bestätigt seine Eingabe (Mausklick / Enter Knopf etc). Dann stellst du deine anderen Variablen um:

    GML-Quellcode

    1. global.Spieler1Ready = true;
    2. global.Spieler1Char = 3;
    3. //Spieler Eins ist Fertig und hat den 3ten Char gewählt


    Dann darf Spieler 2 wählen, und dort ist es genauso:

    GML-Quellcode

    1. global.Spieler2Ready = true;
    2. global.Spieler2Char = 2;
    3. //Spieler Zwei ist Fertig und hat den 2ten Char gewählt


    Nun leuchtet der Spiel beginnen knopf auf sobald global.Spieler1Ready und global.Spieler2Ready beide true sind und die Spieler können loslegen.
    Aufgrund der veränderten Variablen kannst du nun entsprechend die Sprites etc der Spieler ändern. Sobald der / die Spieler keine Lust mehr haben und zurück ins Menü gehen, solltest du alle Variablen wieder auf 0 setzen, damit sie wieder ein neues Spiel beginnen können.



    ich habe das ganze mit den buttons für 2 spieler und den variablen alles schon
    aber wie sage ich jetzt das player 1 wählen muss und dann player 2 und wie sag ich mit was er wählen soll....