1 registered members (TipmyPip),
18,449
guests, and 6
spiders. |
Key:
Admin,
Global Mod,
Mod
|
|
|
camera problem
#323414
05/14/10 01:20
05/14/10 01:20
|
Joined: Nov 2008
Posts: 46
DrBong
OP
Newbie
|
OP
Newbie
Joined: Nov 2008
Posts: 46
|
hallo leute, ich lerne noch lite-c und versuche ne player action zu schreiben.. hab aber ein kleines problem mit der camera...
action pl_srg()
{
c_move(my, vector(0, 0, -2 * time_step), nullvector, GLIDE);
while (1)
{
if (key_w)
{
c_move(my, vector(15 * time_step, 0, 0), nullvector, GLIDE);
}
if (key_s)
{
c_move(my, vector(-10 * time_step, 0, 0), nullvector, GLIDE);
}
if (key_a)
{
my.pan = my.pan + 5 * time_step;
}
if (key_d)
{
my.pan = my.pan - 5 * time_step;
}
camera.x = my.x;
camera.y = my.y;
camera.z = my.z;
camera.pan = my.pan;
camera.tilt = -75;
wait(1);
}
}
sobald ich z.b. : camera.x = my.x; auf : camera.x = my.x - 10; ändere, dan seh ich nur noch einen blauen bildschirm.. kann mir einer sagen was ich da falsch mache ?
|
|
|
Re: camera problem
[Re: DrBong]
#323420
05/14/10 06:36
05/14/10 06:36
|
Joined: Dec 2008
Posts: 605 47°19'02.40" N 8°32'54.67"...
hopfel
User
|
User
Joined: Dec 2008
Posts: 605
47°19'02.40" N 8°32'54.67"...
|
Die Camera gelangt durch diese Änderung ausserhalb deines Levels, desshalb siehst du dann auch nur noch den blauen Hintergrund. Ändere folgendes:
camera.x = my.x;
camera.y = my.y;
camera.z = my.z;
Durch folgendes:
my.skill1+=2*(key_u-key_j)*time_step;
my.skill2+=2*(key_i-key_k)*time_step;
my.skill3+=2*(key_o-key_l)*time_step;// verändere den Wert der Skills auf Tastendruck
camera.x = my.x+my.skill1;
camera.y = my.y+my.skill2;
camera.z = my.z+my.skill3; //verändere die Position der Camera damit
Jetzt kannst du mit den Tasten u,j,i,k,o und l die camera umherbewegen und herausfinden, wieso die vorherige Position nicht funktioniert hat, und welche Position besser ist.
Hilf mir, dir zu helfen!
|
|
|
Re: camera problem
[Re: DrBong]
#323738
05/17/10 02:53
05/17/10 02:53
|
Joined: Nov 2008
Posts: 46
DrBong
OP
Newbie
|
OP
Newbie
Joined: Nov 2008
Posts: 46
|
ok das problem hab ich nicht mehr, aber jetzt ein neues  habe camera.pan auf my.pan gesetzt damit sich die camera dreht wen sich der spieler dreht, die camera dreht sich auch mit aber bleibt nicht hinter dem spieler :  Uploaded with ImageShack.uswie krieg ich es hin das die camera direkt hinter dem spieler bleibt und nicht wie z.b. auf dem bild nach links verschoben wird ? der code sieht jetzt so aus :
action pl_srg()
{
c_move(my, vector(0, 0, -2 * time_step), nullvector, 0);
while (1)
{
if (key_w)
{
c_move(my, vector(15 * time_step, 0, 0), nullvector, GLIDE);
}
if (key_s)
{
c_move(my, vector(-10 * time_step, 0, 0), nullvector, GLIDE);
}
if (key_a)
{
my.pan = my.pan + 5 * time_step;
camera.pan = my.pan;
}
if (key_d)
{
my.pan = my.pan - 5 * time_step;
camera.pan = my.pan;
}
camera.x = my.x -120;
camera.y = my.y;
camera.z = my.z +35;
camera.tilt = my.tilt -10;
wait(1);
}
}
|
|
|
Re: camera problem
[Re: DrBong]
#323796
05/17/10 15:04
05/17/10 15:04
|
Joined: Jun 2008
Posts: 146 Deutschland
M4sterm1nd
Member
|
Member
Joined: Jun 2008
Posts: 146
Deutschland
|
eigentlich musst du nur camera.x = my.x -120; camera.y = my.y; camera.z = my.z +35; durch das ersetzen: camera.x = my.x - 250 * cos(player.pan); // 250 = distance zwischen camera und spieler camera.y = my.y - 250 * sin(player.pan); // camera.z = my.z + 150; // camera über dem spieler 150 ist die höhe camera.pan = my.pan; // camera kuckt in die selbe richtung wie der spieler dann müsste es klappen (nicht getestet) mit den werten musst du natürlich kucken was bei dir am besten passt dann möchte ich dir noch die AUM´s ans Herz legen da gibt es schon viele sachen sogar mit Suchfunktion und auch in deutsch hier n link zu den AUM´s http://www.coniserver.net/coni_users/web_users/pirvu/aum/aumonline_g/EDIT: oh und natürlich camera.pan = my.pan; bei den keys rausnehmen
Last edited by M4sterm1nd; 05/17/10 15:09.
|
|
|
|