Auto-3D Cam

  • GM 8

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

  • Hallooo,
    ich wollte mal ein kleines Rennspiel in 3D machen und bin gleich beim ersten Problem =D. Die 3D Cam soll nicht von oben auf das Auto gucken, sondern schräg von hinten (wie bei normalen Rennspielen auch). Das Problem ist, dass sich die cam nicht mit dem Auto dreht, sondern nur das Auto allein. Ich brauche also eine 3D cam, die immer hinter dem Auto ist und in die variable "obj_auto.direction" guckt.

    Kann mir so wer helfen, oder soll ich die gmk hochladen... usw?
    I am an in the GM Quiz!
  • DU must hier mit sinus und Cosinus arbeiten.
    Erklräen kann ich es zwar nicht weil ichdas schon früher in der schule nie verstanden hab aber ich nutze immer diesen Code dafür.

    /step event

    GML-Quellcode

    1. x1=x+cos((direction)*pi/180)*32; //Die *32 sind f�r den Abstand also in dem Fall 32Pixel
    2. y1=y-sin((direction)*pi/180)*32


    Mit dem code errechntest du eine Position in einem Radius um einen Punkt.

    Beispiel.
    Die umlauf bahn des Mondes um die Erde.


    Draw-Event.

    GML-Quellcode

    1. d3d_set_projection(x,y,z, x1,y1,z, 0,0,1);


    Für alle 3d spiele ist das 3d shooter example passend. Nimm doch einfach das und schreib es passend um.
    Meine Signatur hat kein Visum für das GM Forum erhalten.
  • Das muss alles in das Auto rein.
    Da ja das x und y für denn zielpunkt steht. also das Auto und von da aus sich der punkt 2 berechenne.

    Schreib mir doch ne PM mit dem Example und ich mach es dir schnell fertig
    Meine Signatur hat kein Visum für das GM Forum erhalten.
  • Okay...
    So mache ich es:

    Step:
    Ist eben zum Bewegen durch den User

    GML-Quellcode

    1. direction-=(display_mouse_get_x()-display_get_width()/2)*global_vars.cam_sensitive/16;
    2. zdirection-=(display_mouse_get_y()-display_get_height()/2)*global_vars.cam_sensitive/16;
    3. display_mouse_set(display_get_width()/2,display_get_height()/2);
    4. if zdirection > 20 //Hier nur bis 89, sonst epische Cam-Fails
    5. {
    6. zdirection = 0
    7. }
    8. if zdirection < -70 //Hier nur bis -89
    9. {
    10. zdirection = -70
    11. }
    Alles anzeigen


    Draw:

    GML-Quellcode

    1. d3d_set_projection(x+lengthdir_x(40,direction),y+lengthdir_y(40,direction),z+lengthdir_y(40,zdirection),x,y,z,0,0,1)

    Also hier dreht sich die Cam nicht bei einer Richtungänderung des Autos mit. Du musst, wenn du das willst, noch die Richtung vom Auto bei den ersten beiden Argumenten addieren.
    Die Fahrmechanik solltest du meiner Meinung nach nivht mit direction, speed, etc. steuern. Sondern mit eigenen Variablen, da man diese besser kontrollieren kann.
    Beispiel:
    direction kann nicht über 359. Sie wird dann automatisch wieder auf 0 gesetzt.
    speed kannst du nicht unabhängig von direction nutzen, was beim Diften jedoch oft gebraucht wird.

    mfg
    Diesel