d3d pytagoras camera bewegung

  • GM 8

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

  • d3d pytagoras camera bewegung

    Ich habe ein kleines d3d spiel in entwiklung, und lerne wärend dessen d3d.
    In diesem spiel muss die kamera immer genau hinter dem spieler bleiben.
    hierzu habe ich im step event der kamera volgende codes gemacht:


    x=(obj_player.x+300*sin((obj_player.direction-90)*pi/180));
    y=(obj_player.y+300*cos((obj_player.direction-90)*pi/180));


    Jetzt dreht isch der player (theoretisch) aber auch noch nach oben und unten; und die kamera muss trotzdem hinter ihm bleiben.
    Die variable angle betimmt den player winkel.
    damit z immer "hinter" ihm bleibt habe ich folgenden code hinzugefügt:


    z=obj_player.z+200*sin((obj_player.angle)*pi/180);


    Jetzt bewegt sich Z allerdings nur nach oben und nach unten (in einer geraden linie)
    also muss x und y immer angepasst werden, damit die kamera immer hinter dem spieler bleibt.
    deshalb wurde die entfernung zum spieler (300) mit einer variable (far) ersetzt.

    x=(obj_player.x+far*sin((obj_player.direction-90)*pi/180));
    y=(obj_player.y+far*cos((obj_player.direction-90)*pi/180));
    z=obj_player.z+200*sin((obj_player.angle)*pi/180);


    die frage die mir jetzt den kopf zerbricht ist: wei muss ich "far" berechnen? :headtouch:

    kann mir vieleicht jemand helfen :wacko:
  • ok ich habs, also fast...


    far=300*cos((obj_player.angle)*pi/180);
    x=(obj_player.x+far*sin((obj_player.direction-90)*pi/180));
    y=(obj_player.y+far*cos((obj_player.direction-90)*pi/180));
    z=obj_player.z+300*sin((obj_player.angle)*pi/180);

    das bring allerding ein neues problem: wenn angle 90 oder 270 ist, spring die kamera um, wobei sie für meine zwecke einen überschlag machen muss...