3D: Rotations Problem

  • GM 6

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

  • 3D: Rotations Problem

    Hi,
    Ich hab ein Model dass ich nach der Richtung des Objektes rotieren lasse (Z-Achse) also wie bei Auto/Rennspielen.
    Nun möchte ich aber dass zu der Rotation auf der Z-Achse noch eine seitliche Neigung beim Lenken hinzu kommt...
    (Wie hier:
    KLICK!Doch wenn ich jetzt

    GML-Quellcode

    1. d3d_set_lighting(false)
    2. draw_set_color(c_white)
    3. d3d_transform_set_identity()
    4. d3d_transform_add_translation(-x,-y,0);
    5. d3d_transform_add_rotation_z(facing_direction)
    6. d3d_transform_add_rotation_y(neigung)
    7. d3d_transform_add_translation(x,y,0);
    8. d3d_model_draw(model,x,y,32,background_get_texture(background1))
    9. d3d_transform_set_identity()
    10. d3d_set_lighting(true)

    Das eingebe rotiert sich das Modell ein einer komischen Bewegung nach unten und dann wieder nach oben.Und nicht einfach eine ganz normale Neigung...
    Woran liegt das?

    Danke!
    Ihc hab so voll den ij
  • Versuchs mal mit

    GML-Quellcode

    1. d3d_set_lighting(false);
    2. draw_set_color(c_white);
    3. d3d_transform_set_identity();
    4. //d3d_transform_add_translation(-x,-y,0); <<< weiß nicht, wieso du den brauchst.. versuch mal ohne
    5. d3d_transform_add_rotation_z(facing_direction);
    6. d3d_transform_add_rotation_axis(hspeed,vspeed,0,neigung);
    7. // man muss eine achse machen..
    8. //ich habe jetzt hspeed und vspeed genommen
    9. //Wenns dir nicht passt, musst du den Vektor von "facing_direction" nehmen
    10. d3d_transform_add_translation(x,y,0);
    11. d3d_model_draw(model,x,y,32,background_get_texture(background1));
    12. d3d_transform_set_identity();
    13. d3d_set_lighting(true);
    Alles anzeigen



    MfG SDX
  • Alsooooo...
    Wenn ichs genau so wie du mache seh ich das Model garnicht mehr.
    Aber wenn ichs mit dem -x,-y,0 mache dann seh ichs wieder.
    Allerdings ist die Bewegung immer noch nicht richtig.
    Das Model wird merkwürdiger Weise klein und grösser wenn ich mit den Pfeiltasten die Neigungs variable verändere...
    (Obwohl du doch garnichts von d3d_transform_scale oder ähnliches reingeschrieben hast :huh: )
    Naja... Ausserdem hast du noch geschrieben "Wenns dir nicht passt, musst du den Vektor von "facing_direction" nehmen" was genau meinst du damit?
    Danke!
    Ihc hab so voll den ij
  • Cool danke!
    Aber die Neigung ist jetzt leider auf der falschen Achse (Also nach vorn und zurück)
    Ich bräuchte nach links und rechts...
    Mein Problem: Der Befehl heisst ja "axis" nur wie ändere ich das jetzt um?
    Danke!
    Ihc hab so voll den ij
  • Das sieht jetzt alles schon sehr gut aus aber leider ist die Rotation immer einwenig nach vorn und hinten verschoben...
    Ich hab jetzt diesen Code für die Rotationsvariable im Stepevent:

    GML-Quellcode

    1. if keyboard_check(vk_left) then
    2. {
    3. facing_direction+=10
    4. if neigung<15 then
    5. {
    6. neigung+=2
    7. }
    8. else
    9. {
    10. neigung+=0
    11. }
    12. }
    13. else
    14. {
    15. if neigung>0 then
    16. {
    17. neigung-=1
    18. }
    19. else
    20. {
    21. neigung-=0
    22. }
    23. }
    24. if keyboard_check(vk_right) then
    25. {
    26. facing_direction-=10
    27. if neigung>-15 then
    28. {
    29. neigung-=2
    30. }
    31. else
    32. {
    33. neigung-=0
    34. }
    35. }
    36. else
    37. {
    38. if neigung<0 then
    39. {
    40. neigung+=1
    41. }
    42. else
    43. {
    44. neigung+=0
    45. }
    46. }
    Alles anzeigen

    Also die Variable(neigung) wird immer wieder zu null zurück gefahren wenn man die entprechende Taste los lässt.
    Das sieht dann sehr spacig/smooth/slideig aus.

    So aber nun zum Problem:
    Wenn ich nach links durchgängig drücke siehts so aus:

    Wenn ich nach rechts drücke so:

    und so siehts aus wenn ich garnet drücke


    Man kann erkennen dass wenn ich nach links drücke sich die Nase ein klein wenig hebt und wenn ich nach rechts drücke sie sich ein klein wenig senkt...
    Das sieht dann nicht mehr so smoooth aus und wirkt nach ner Zeit irgendwie billig...
    Hoffe du/ihr verstehst/versteht was ich meine

    Danke!
    Ihc hab so voll den ij
  • Benutzer online 1

    1 Besucher