Fahrzeug soll sich nicht mehr steuern lassen, wenn Tempo = 0

  • GM 8

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

  • Fahrzeug soll sich nicht mehr steuern lassen, wenn Tempo = 0

    Hey Leute, ich hoffe, ihr könnt mir helfen.
    Die Lösung liegt mir auf der Zunge, doch irgendwo hängt der Wurm drinn.

    Nun denn.
    Mein Fahrzeug soll sich bei Tempo 0, also stehend, nicht mehr drehen können. Ich habe schon diverse Versuche unternommen. Aber leider funktionieren die nicht (alle aufzuzählen wäre wohl zu viel des Guten).

    Ich gebe euch mal den Code. Help please. :D
    Dankeschön.


    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. view_object[0] = obj_player_auto;
    10. }
    11. if (global.incar == true) {
    12. if (keyboard_check(ord("W"))) {
    13. speed += 0.2;
    14. }
    15. else if (keyboard_check(ord("S"))) {
    16. speed -= 0.2;
    17. }
    18. else {speed = 0};
    19. if (keyboard_check(ord("A")) && sosi == 0) {
    20. direction += 2;
    21. }
    22. if (keyboard_check(ord("D")) && sosi == 0) {
    23. direction -= 2;
    24. }
    25. }
    26. if (keyboard_check_pressed(ord("F")) && global.incar == true) {
    27. instance_create(x+50,y+50,obj_player);
    28. obj_player.x = obj_player_auto.x +50;
    29. obj_player.y = obj_player_auto.y +50;
    30. global.incar = false;
    31. }
    Alles anzeigen
  • GML-Quellcode

    1. if (keyboard_check(ord("A")) && sosi == 0) {
    2. direction += 2;
    3. }
    4. if (keyboard_check(ord("D")) && sosi == 0) {
    5. direction -= 2;
    6. }

    Probier mal anstatt einen konstanten Drehwert die Geschwindigkeit zu nehmen:

    GML-Quellcode

    1. if (keyboard_check(ord("A")) && sosi == 0) {
    2. direction += speed;
    3. }
    4. if (keyboard_check(ord("D")) && sosi == 0) {
    5. direction -= speed;
    6. }
  • -$Marvin$- schrieb:

    GML-Quellcode

    1. if (keyboard_check(ord("A")) && sosi == 0) {
    2. direction += 2;
    3. }
    4. if (keyboard_check(ord("D")) && sosi == 0) {
    5. direction -= 2;
    6. }

    Probier mal anstatt einen konstanten Drehwert die Geschwindigkeit zu nehmen:

    GML-Quellcode

    1. if (keyboard_check(ord("A")) && sosi == 0) {
    2. direction += speed;
    3. }
    4. if (keyboard_check(ord("D")) && sosi == 0) {
    5. direction -= speed;
    6. }

    Sehr interessant. Werd' ich ausprobieren und dann in einem EDIT berichten. Das ist ein sehr logischer Ansatz von dir. Dankeschön. :D

    //EDIT
    Wie ich vermutet habe, funktioniert es. Vielen Dank, Marvin! :thumbsup:

    //EDIT :!:
    Nur das Problem ist nun, dass sich das Fahrzeug schneller dreht, wenn es schneller fährt.

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

  • Versuch mal das:

    GML-Quellcode

    1. if (keyboard_check(ord("A")) && sosi == 0 && speed != 0) {
    2. direction += 2;
    3. }
    4. if (keyboard_check(ord("D")) && sosi == 0 && speed != 0) {
    5. direction -= 2;
    6. }


    Edit:
    Wenn du das mit dem speed beihalten willst dann:
    direction += min(speed, 2);
    bzw.
    direction -= min(speed, 2);

    P.S:
    statt

    GML-Quellcode

    1. if (speed >= max_speed) {
    2. speed = max_speed;
    3. }
    4. if (speed <= min_speed) {
    5. speed = min_speed;
    6. }

    kannst du

    GML-Quellcode

    1. speed = max(min(max_speed, speed), min_speed);
    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.

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

  • Rodrog schrieb:

    Versuch mal das:

    GML

    1
    2
    3
    4
    5
    6
    7



    if (keyboard_check(ord("A")) && sosi == 0 && speed != 0) {
    direction += 2;
    }

    if (keyboard_check(ord("D")) && sosi == 0 && speed != 0) {
    direction -= 2;
    }

    Sau geil! Das ist die Lösung. Wie ihr immer auf so was kommt... Logisch denken, ja. Aber das dauert bei mir ja ewig. ^^ Danke! :D