Steuerung an/aus - funzt nicht, wie es sollte

  • GM 8

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

  • Steuerung an/aus - funzt nicht, wie es sollte

    Hallo zusammen

    Bei dem Spiel Medical Rush kann der Spieler beliebig oft ins Auto und aus dem Auto steigen.
    Doch der Code dazu scheint fehlerhaft zu sein.

    Um dies zu verdeutlichen, habe ich für euch den Code-Schnippsel und ein Video hinzugefügt.

    Statt ins Fahrzeug zu steigen und unsichtbar zu sein, wird ein zweiter Spieler erstellt. Ich steuere beide Instanzen.
    Eigentlich sollte der Spieler im Auto sitzen, d.h. zerstört sein, und nur noch das Auto existent sein.

    Code
    Spoiler anzeigen
    obj_player
    Step Event :event_step:

    GML-Quellcode

    1. if (global.incar == false) {
    2. if (keyboard_check(ord("W"))) {
    3. speed = 5;
    4. }
    5. else if (keyboard_check(ord("S"))) {
    6. speed = -5;
    7. }
    8. else {
    9. speed = 0;
    10. }
    11. if (keyboard_check(ord("A"))) {
    12. direction += 5;
    13. }
    14. if (keyboard_check(ord("D"))) {
    15. direction -= 5;
    16. }
    17. }
    18. if (place_meeting(x,y,obj_player_auto) && global.incar == false && keyboard_check_pressed(ord("F"))) {
    19. global.incar = true;
    20. instance_destroy();
    21. }
    Alles anzeigen


    Start Event :event_create:

    GML-Quellcode

    1. //ANAMNESE
    2. frage01 = "Sind Sie wach?";
    3. frage02 = "Was ist geschehen?";
    4. frage03 = "Wie alt sind Sie?";
    5. frage04 = "Welchen Wochentag haben wir heute?";
    6. frage11 = "Haben Sie Schmerzen?";
    7. frage12 = "Wo schmerzt es?";
    8. frage13 = "Wie stark sind die Schmerzen?";
    9. frage14 = "Seit wann haben Sie diese Schmerzen?";
    10. frage15 = "Hatten Sie schon einmal solche Schmerzen?";
    11. frage21 = "Haben Sie Allergien?";
    12. frage31 = "Nehmen Sie Medikamente ein?";
    13. frage41 = "Leiden Sie an einer Herzkrankheit?";
    14. frage42 = "Haben Sie Diabetes?";
    15. frage43 = "Leiden Sie an einer Atemwegskrankheit?";
    16. frage51 = "Wann haben Sie das letzte Mal etwas gegessen oder getrunken?";
    17. frage52 = "Was haben Sie getrunken oder gegessen?";
    18. frage53 = "Wie viel haben Sie davon gegessen oder getrunken?";
    19. frage61 = "Ist Ihnen schwindelig?";
    20. frage62 = "Ist Ihnen übel?";
    21. frage63 = "Haben Sie sich übergeben?";
    22. frage64 = "Haben Sie Sehstörungen gehabt?";
    23. frage65 = "Sind Sie bewusstlos gewesen?";
    24. frage71 = "Haben Sie Schwierigkeiten beim Atmen?";
    25. frage72 = "Haben Sie Schmerzen beim Atmen?";
    26. frage81 = "Können Sie Ihre Hände und Finger spüren?";
    27. frage82 = "Können Sie Ihre Füsse und Zehen spüren?";
    28. frage91 = "Geht es Ihnen jetzt besser?";
    Alles anzeigen



    obj_player_auto

    Step Event :event_step:

    GML-Quellcode

    1. image_angle = direction;
    2. if (speed >= max_speed) {
    3. speed = max_speed;
    4. }
    5. if (speed <= min_speed) {
    6. speed = min_speed;
    7. }
    8. if (global.incar == true) {
    9. if (keyboard_check(ord("W"))) {
    10. speed += 0.2;
    11. }
    12. else if (keyboard_check(ord("S"))) {
    13. speed -= 0.2;
    14. }
    15. else {speed = 0};
    16. if (keyboard_check(ord("A"))) {
    17. direction += 5;
    18. }
    19. if (keyboard_check(ord("D"))) {
    20. direction -= 5;
    21. }
    22. }
    23. if (keyboard_check_released(ord("F")) && global.incar == true) {
    24. instance_create(x+100,y+100,obj_player);
    25. view_object[0] = obj_player;
    26. obj_player.x = obj_player_auto.x +100;
    27. obj_player.y = obj_player_auto.y +100;
    28. global.incar = false;
    29. }
    Alles anzeigen


    Start Event :event_create:

    GML-Quellcode

    1. global.incar = true;
    2. view_object[0] = obj_player_auto;
    3. max_speed = 5;
    4. min_speed = -1;


    Video



    //EDIT
    Code von Auto hinzugefügt

    Dieser Beitrag wurde bereits 4 mal editiert, zuletzt von Michaelp800 ()

  • Ich sehe nichts in dem Code, was den Fehler hervorrufen könnte. Irgendein anderes Objekt oder irgendein anderer Code muss dann verantwortlich dafür sein.
    Meine Spiele:
    - Mission A
    - Mission B
    - The Virus 1, 2, 3
    - The Virus 4: The Excision
    - Blur melts Snow
    - Blur melts Snow: 2nd Version
    - Cave Jumper

    Hauptrojekt: Party Mania(Arbeitstitel) - große Multiplayer-Minispielsammlung
    In Planung: Planet Jumper(Nachfolger von Cave Jumper)
  • Ich sehe das Problem. Dadurch, dass du keyboard_check_pressed nutzt, um ins Auto einzusteigen und keyboard_check_released um auszusteigen, wird das alles auf einem Rutsch ausgelöst. Du drückst gerade F, steigst ein, lässt F los, steigst aus und offenbar wird aus irgendeinem Grund das instance_destroy() übersprungen(das kann ich mir spontan nicht erkären, eigentlich müsste es nur einen Spieler geben). Nutze entweder für beide keyboard_check_pressed oder keyboard_check_released und es sollte funktionieren.
    Meine Spiele:
    - Mission A
    - Mission B
    - The Virus 1, 2, 3
    - The Virus 4: The Excision
    - Blur melts Snow
    - Blur melts Snow: 2nd Version
    - Cave Jumper

    Hauptrojekt: Party Mania(Arbeitstitel) - große Multiplayer-Minispielsammlung
    In Planung: Planet Jumper(Nachfolger von Cave Jumper)
  • sebastian733 schrieb:

    Nutze entweder für beide keyboard_check_pressed oder keyboard_check_released und es sollte funktionieren.

    Das werde ich gleich ausprobieren.

    //EDIT
    Auch das hilft nichts. Das Problem liegt woanders. Ich melde mich mit einer Lösung wieder. ;)

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

  • Deinem Code nach dürfte es auch nicht mal möglich sein ein Auto zu steuern bzw einzusteigen und trotzdem sieht man wie du im Video ein Auto fährst. Kann es sein, dass du global.incar auf true im Create-Event gestellt hast und trotzdessen die Spielfigur im Room-Editor gelassen hast? Dann wäre es logisch wieso du plötzlich 2 Spieler hast und keiner einsteigen kann. Eigentlich müsste es nämlich funktionieren.
    Meine Spiele:
    - Mission A
    - Mission B
    - The Virus 1, 2, 3
    - The Virus 4: The Excision
    - Blur melts Snow
    - Blur melts Snow: 2nd Version
    - Cave Jumper

    Hauptrojekt: Party Mania(Arbeitstitel) - große Multiplayer-Minispielsammlung
    In Planung: Planet Jumper(Nachfolger von Cave Jumper)
  • Ich editiere den 1. Beitrag und füge auch die Start Events hinzu.

    //EDIT

    global.incar = true;
    view_object[0] = obj_player_auto;

    Das habe ich vergessen, zu erwähnen... Zuerst sitze ich im Auto und mit "F" gelange ich zur anderen Spielersteuerung. :)

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