|
Kamera um einen Punkt bewegen?
#135253
06/10/07 13:48
06/10/07 13:48
|
Joined: Jan 2007
Posts: 126 Germany
Pinkhead
OP
Member
|
OP
Member
Joined: Jan 2007
Posts: 126
Germany
|
Hallo, Ich habe diesen Code hier aus AUM 53 für meine Kamera entnommen: Code:
function isometric_camera() // displays the player from an isometric view aka 3rd person view
{
while (player == null) {wait (1);} // wait until the player is created
camera.tilt = -15; // look down at the player, play with this value
while (1)
{
camera.pan -= mouse_force.x * 12 * time; camera.tilt += mouse_force.y * 8 * time; camera.tilt = clamp(camera.tilt,-30,10);
camera.x = player.x - 250 * cos(player.pan); // 250 = distance between the player and the camera
camera.y = player.y - 250 * sin(player.pan); // use the same value here
camera.z = player.z + 150; // place the camera above the player, play with this value
camera.pan = player.pan; // the camera and the player have the same pan angle
wait (1);
}
}
Jetzt wollte ich fragen ob es nicht möglich ist, die Kamera auf den Player zu "fixieren" also das wen ich zb. den Tilt wert der Kamera verändere das es dann sich dann um den Player herumbewegt also in einem Kreis (Radius) um den Player schwebt. Im moment bringt das rot hervorgehobene nur das sich die Kamera um ihre eiene Achse dreht. Ich möchte aber das sie immer zum Player blickt. Ähnlich wie im Kingdom Hearts Tutorial - da verstehe ich aber den Kamera Code nicht ganz. Könnt man mir auch sagen wie ich es Hinbekomme das die Kamera sich nicht durch Wände bewegt? Danke im Vorraus, Maik (alias Pinkhead)
|
|
|
Re: Kamera um einen Punkt bewegen?
[Re: Pinkhead]
#135258
06/11/07 14:11
06/11/07 14:11
|
Joined: Jul 2002
Posts: 3,208 Germany
Error014
Expert
|
Expert
Joined: Jul 2002
Posts: 3,208
Germany
|
 Ich schreibe das jetzt bestimmt zum tausendsten Mal. Code:
vec_set(camera.pan,player.pan); vec_set(temp,vector(-DISTANZ,0,0)); //Bitte Werte einsetzen. Distanz ist der "Grundabstand". Muss negativ eingesetzt werden. Für den Z-Wert kannst du ggf. noch was einsetzen. vec_rotate(temp,camera.pan); //Oder auch player.pan vec_add(temp,player.x); //oder wer auch immer im zentrum sein soll vec_set(camera.x,temp);
Für die Kollision ist das die einfachste Lösung Code:
IF(c_trace(player.x,camera.x,ignore_me+ignore_passable)!=0) { //HINDERNIS! vec_set(camera.x,target); //vec_scale(normal,0.1); //Wenn dir die Bewegung nicht flüssig genug ist vec_add(camera.x,normal); //Ein bisschen weg von der Wand }
Bittesehr. Hätte man wahrscheinlich auch über die Suchfunktion gefunden 
Perhaps this post will get me points for originality at least.
Check out Dungeon Deities! It's amazing and will make you happy, successful and almost certainly more attractive! It might be true!
|
|
|
Moderated by mk_1, Perro, rayp, Realspawn, Rei_Ayanami, rvL_eXile, Spirit, Superku, Tobias, TSG_Torsten, VeT
|