transformationen

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

  • transformationen

    hi
    ich hab ein kleines oder großes Problem. Ich hab ein Modell in Gamemaker importiert und es zeichnen lassen. wenn ich das objekt dann drehen lassen will funktioniert das nur am 0 punkt richtig. es geht zwar an anderen punkten auch aber dann bewegt sich das objekt immere duch den 0 punkt. mit normalen modellen aus dem gm wie z.b. ein Quader hab ich es schon geschafft, dass es überall funktioniert aber diesesmal ist es ja ein importiertes Modell. Also kannmir vielleicht einer helfen wie ich das hinbekomme, dass es sich überall um die eigene Achse dreht??? ?(
    Danke
    hab noch ein paar bilder dazu wie es jetzt ist und wie ich gern hätte
    Bilder
    • jetzt Kopie.gif

      878 Byte, 207×193, 224 mal angesehen
    • nachher Kopie.gif

      827 Byte, 207×193, 221 mal angesehen
  • ich vermute 8ohne dir was unterstellen zu wollen) das du es auch mit einem quarder nicht geschaft hast, da es bei primitiven und models das gleiche verfahren ist (ein quarder sieht ja leider von allen seiten gleich aus, benutze zum testen lieber ein kegel oder sowas).
    was du brauchst ist der befehl

    GML-Quellcode

    1. d3d_transform_set_identity();
    der setzt nämlich alle transformationen zurück, bzw. an den uhrsprung. schau mal in der hilfe nach, da ist das viel besser beschrieben, und ein beispiel ist auch noch dabei.
    :) Nobody is perfect (-:

    "Dummköpfe sind Denkerköpfen weit überlegen. Zahlenmäßig." Ernst Ferstl
  • also das mit dem cylinder hab ich hin bekommen ich habs so gemacht:

    GML-Quellcode

    1. {
    2. d3d_transform_add_rotation_z(direction)
    3. d3d_transform_add_translation(x,y,0)
    4. d3d_draw_cylinder(-8,-8,-2,+8,+8,2,background_get_texture(tex_block),16,1,true,8)
    5. d3d_transform_set_identity()
    6. }


    und bei dem model hab ich so gemacht aber es geht nicht

    GML-Quellcode

    1. {
    2. d3d_transform_add_rotation_z(direction)
    3. d3d_transform_add_translation(car.x,car.y,0)
    4. texid=background_get_texture(bac_tire);
    5. d3d_model_draw(tire_mod,x+5,y,2,texid);
    6. d3d_transform_set_identity()
    7. }

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

  • Drehungen sind immer um die Achsen (X,Y,Z). Also musst du dein Objekt zuerst in den Schnittpunkt der Achsen verschiebend. Danach drehen und wieder zurück verschieben.

    Dragoon
    int (*x(*x(int))[5])(int*);
    Confused? Yes, it's C!
  • irgentwie peil ich das net ich stell die Datei mal rein
    normalerweise müssten das 3 datein sein 1.spieldatei und zwei modelle
    Steuerung:
    Kamera: Pfeiltasten
    Auto: WASD
    Dateien
    • spiel.rar

      (214,34 kB, 59 mal heruntergeladen, zuletzt: )

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

  • ich weiß das thema ist zwar schon also gelöst markiert aber um nicht extra wieder einen threat zu eröffnen...
    mein prob ist kann man einem objekt mehrer bezugspunkte geben um die es sich es dreht?

    ich komm mir schon ganz blöd vor :D

    und um diese achsen soll es sich gleichzeitig drehen ich bekomm das irgentwie nich so hin..
    Bilder
    • Unbenannt.jpg

      3,47 kB, 207×193, 85 mal angesehen

    Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von Mofa ()