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?
kann mir vieleicht jemand helfen
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?
kann mir vieleicht jemand helfen