Gamestudio Links
Zorro Links
Newest Posts
zorro license, IB connection
by miwok. 12/06/23 16:32
Newbie Questions
by fairtrader. 12/06/23 11:29
Zorro Trader GPT
by TipmyPip. 12/04/23 11:34
Square root rule
by Smallz. 12/02/23 09:15
RTest not found error
by TipmyPip. 12/01/23 21:43
neural function for Python to [Train]
by TipmyPip. 12/01/23 14:47
Xor Memory Problem.
by TipmyPip. 11/28/23 14:23
Training with command line parameters
by TipmyPip. 11/26/23 08:42
AUM Magazine
Latest Screens
A psychological thriller game
SHADOW (2014)
DEAD TASTE
Tactics of World War I
Who's Online Now
6 registered members (miwok, AndrewAMD, TipmyPip, 3run, Quad, 1 invisible), 645 guests, and 2 spiders.
Key: Admin, Global Mod, Mod
Newest Members
fairtrader, hus, Vurtis, Harry5, KelvinC
19019 Registered Users
Previous Thread
Next Thread
Print Thread
Rate Thread
Page 1 of 2 1 2
Kamera rotieren [GER] #242350
12/22/08 16:51
12/22/08 16:51
Joined: Jul 2008
Posts: 170
Germany, near Mainz
Nicotin Offline OP
Member
Nicotin  Offline OP
Member

Joined: Jul 2008
Posts: 170
Germany, near Mainz
Hallo,
also mein Problem ist folgendes. Ich möchte das sich die Kamera auf den Pfeiltasten um den mittelpunkt dreht. Ich habe keine ahnung wie ich das machen soll. Es wäre nett wenn mir jemand wenigstens einen Anhaltspunkt geben könnte.
Vielen Dank im Vorraus



Re: Kamera rotieren [GER] [Re: Nicotin] #242354
12/22/08 17:00
12/22/08 17:00
Joined: Dec 2005
Posts: 490
Germany/Berlin-Velten
kasimir Offline
Senior Member
kasimir  Offline
Senior Member

Joined: Dec 2005
Posts: 490
Germany/Berlin-Velten
Was meinst du mit "um den Mittelpunkt" dreht?
Das die Kamera z.B. auf den Player guckt und man die Kamera mit den Peiltasten um ihn dreht???

Re: Kamera rotieren [GER] [Re: Nicotin] #242355
12/22/08 17:01
12/22/08 17:01
Joined: Aug 2007
Posts: 1,922
Schweiz
Widi Offline
Serious User
Widi  Offline
Serious User

Joined: Aug 2007
Posts: 1,922
Schweiz
Schaue im AUM 75 unter "unbeantwortete Fragen". Da ist der ganze Code mit herein- und herauszoomen und der Drehung um den Spieler.

Re: Kamera rotieren [GER] [Re: Nicotin] #242357
12/22/08 17:02
12/22/08 17:02
Joined: Jul 2002
Posts: 4,436
Germany, Luebeck
Xarthor Offline
Expert
Xarthor  Offline
Expert

Joined: Jul 2002
Posts: 4,436
Germany, Luebeck
Idee:
Durch die Pfeiltasten wird der pan wert der camera beeinflusst, mit diesem wird dann die jeweilige position berechnet.

Snippet (C-Script):
Code:
var mittelpunkt_pos[3] = 10,50,20; // koordinaten des mittelpunktes
var camera_dist = 500; // 500 = abstand zum mittelpunkt

function camera_control()
{
  while(1) // ersetzen durch terminierende kondition
  {
    camera.pan += 5 * (key_cul - key_cud) * time_step;
    vec_set(camera.x,vector(camera_dist,0,0));
    vec_rotate(camera.x,camera.pan);
    vec_add(camera.x,mittelpunkt_pos);
   
    wait(1);
  }
}


Selbes snippet (lite-C):
Code:
VECTOR* mittelpunkt_pos = { x=10; y=50; z=20; }
var camera_dist = 500;

function camera_control()
{
  while(1)
  {
    camera.pan += 5 * (key_cul - key_cud) * time_step;
    vec_set(camera.x,vector(camera_dist,0,0));
    vec_rotate(camera.x,camera.pan);
    vec_add(camera.x,mittelpunkt_pos);
    
    wait(1);
  }
}


Notizen:
#1 Falls die camera sich genau falsch rum dreht, einfach key_cul und key_cud vertauschen.
#2 Code ist nicht getestet
#3 Code ist nicht optimiert

Re: Kamera rotieren [GER] [Re: Xarthor] #242359
12/22/08 17:07
12/22/08 17:07
Joined: Jul 2008
Posts: 170
Germany, near Mainz
Nicotin Offline OP
Member
Nicotin  Offline OP
Member

Joined: Jul 2008
Posts: 170
Germany, near Mainz
So viele Antworten auf einmal.
Vielen vielen Dank^^



Re: Kamera rotieren [GER] [Re: Nicotin] #242373
12/22/08 18:50
12/22/08 18:50
Joined: Jul 2008
Posts: 170
Germany, near Mainz
Nicotin Offline OP
Member
Nicotin  Offline OP
Member

Joined: Jul 2008
Posts: 170
Germany, near Mainz
Also Xarthor, deine Lösung hatte fast auf Anhieb geklappt. Am ende deiner Procedur war jedoch der Pan wert der Kamere verschoben. Das habe ich dann einfach mal behoben indem ich es wieder den Mittelpunkt anschauen lassen hab. Jedoch springt er nun jedes Frame beim x,y,pan Wert zwischen - und + hin und her.Das bedeutet er wechselt jedes Frame die Seiten. Ansonsten funktioniert es super.Hier mal der Code:

Code:
while(1)
  {
    camera.pan += 5 * (key_cul - key_cur) * time_step;
    vec_set(camera.x,vector(camera_dist,0,210));
    vec_rotate(camera.x,camera.pan);
    vec_add(camera.x,mittelpunkt_pos);
    vec_sub(mittelpunkt_pos,camera.x);
    vec_to_angle(camera.pan,mittelpunkt_pos); 
	 camera.tilt = camera_tilt;
    camera.z = 210;
    
    
    wait(1);
 } 


EDIT: sry für doppelpost. Hab vergessen das ich als letztes geantwortet hab :-(

Last edited by Nicotin; 12/22/08 19:23.


Re: Kamera rotieren [GER] [Re: Nicotin] #242400
12/22/08 21:39
12/22/08 21:39
Joined: Jul 2002
Posts: 4,436
Germany, Luebeck
Xarthor Offline
Expert
Xarthor  Offline
Expert

Joined: Jul 2002
Posts: 4,436
Germany, Luebeck
Das Springen zwischen + und - kann am pan liegen.
Folgendes könnte funktionieren:
Code:
while(1)
{
  camera.pan = ang(camera.pan + 5 * (key_cul - key_cur) * time_step);
  ...
}


Wegen doppelpost:
So was ist meines Erachtens nicht schlimm so lange du nicht alle 5 minuten schreibst oder immer nur ein paar sätze.
Da du den code aber ausprobiert hast und ergebnisse bzw. weitere fragen hast ist das eig. kein problem wink

Re: Kamera rotieren [GER] [Re: Xarthor] #242414
12/22/08 23:18
12/22/08 23:18
Joined: Jul 2008
Posts: 170
Germany, near Mainz
Nicotin Offline OP
Member
Nicotin  Offline OP
Member

Joined: Jul 2008
Posts: 170
Germany, near Mainz
Naja, das ist dann ja genau das selbe Problem in grün^^. Denn nun springt es ja immernoch. Es würde funktionieren wenn ich jeden 2. Frame das machen lasse., Ich weiß nur nicht wie ich das machen soll.
Vorschläge?

EDIT: Ok, ich habe es gepackt jeden 2. Frame die x,y,pan werte umzudrehen was (meiner Meinung nach) das Problem häte beheben müssen. Doch es ist exakt das selbe und ich kann nicht erkennen woran es liegt.

Last edited by Nicotin; 12/23/08 01:14.


Re: Kamera rotieren [GER] [Re: Nicotin] #244817
01/07/09 00:08
01/07/09 00:08
Joined: Jul 2008
Posts: 170
Germany, near Mainz
Nicotin Offline OP
Member
Nicotin  Offline OP
Member

Joined: Jul 2008
Posts: 170
Germany, near Mainz
Code:
while(1)
{
	camera_hohe += 1 * (key_cuu - key_cud) * time_step;

  	camera.pan = ang(camera.pan + 5 * (key_cur - key_cul) * time_step);
  
    vec_set(camera.x,vector(camera_dist,0,210));

    vec_rotate(camera.x,camera.pan);
    vec_add(camera.x,mittelpunkt_pos);

    vec_sub(mittelpunkt_pos,camera.x);
 	 vec_to_angle(camera.pan,mittelpunkt_pos);// und drehe Kamera, so dass er jetzt die Mitte anschaut

  	 if(fraction(i/2)!=0)
  	 {
  	 	camera.x = -camera.x;
  	 	camera.y = -camera.y;
  	 	camera.pan = ang(camera.pan);
	 } 
	 camera.tilt = 340;
    camera.z = camera_hohe;
   
    i+=1;
    wait(1);
} 



Sorry das ich das nun noch einmal einen double Post machen muss. Aber ich kommem einfach nicht weiter!

Also das ist mein momentaner Code.
Nun bleibt die Kamera zwar normal aber sie "ruckelt" also das Spiel hat noch normale FPS aber der Level färbt sich blau und wieder normal.

Ich brauche dringend Hilfe. Denn alles was ich jetzt noch prgrammieren will baut auf der Kamera auf. Aber die muss dafür erstmal funktionieren!

Achso und Xarthor: Könntest dur mir vielleicht deine Funktion erklären? Also was die einzelnen Vector befehle machen weiß ich. Aber ich weiß nicht warum die Kamera dadurch so reagiert.
Also wäre nett. Vielleicht komm ich dann jaa uch selbst auf die Lösung. Denn im moment weiß ich nur das es es macht
Aber nicht warum^^

Last edited by Nicotin; 01/07/09 00:13.


Re: Kamera rotieren [GER] [Re: Nicotin] #245170
01/08/09 18:51
01/08/09 18:51
Joined: Jul 2002
Posts: 4,436
Germany, Luebeck
Xarthor Offline
Expert
Xarthor  Offline
Expert

Joined: Jul 2002
Posts: 4,436
Germany, Luebeck
Hi Nicotin,
das problem bei deinem code liegt wahrscheinlich darin, dass du den vector mittelpunkt mit vec_sub direkt änderst, er also nicht mehr den anfänglichen wert hat.

Ich habe über dein Problem nochmals nachgedacht und bin auf einen recht simplen code gekommen.
Die Kamera bewegt sich bei diesem code auf einem zylinder mit dem durchmesser 2*cam_radius. Sie fixiert dabei immer den mittelpunkt (VECTOR), die position des vectors kannst du beliebig ändern.

Hier der code:
Code:
VECTOR* mittelpunkt = { x=0; y=0; z=0; }
VECTOR* cam_temp = { x=0; y=0; z=0; }

var cam_radius = 100;
var cam_angle = 0;
var cam_speed[2] = { 8, 5 };	// erster wert: rotation, zweiter wert: hoehe anpassen

function control_Camera()
{
	while(1)
	{
		camera.z += cam_speed[1] * (key_cuu - key_cud) * time_step;
		
		cam_angle += cam_speed[0] * (key_cur - key_cul) * time_step;
		cam_angle = ang(cam_angle);
		
		camera.x = mittelpunkt.x + cam_radius * sin(cam_angle);
		camera.y = mittelpunkt.y + cam_radius * cos(cam_angle);
		
		vec_set(cam_temp,mittelpunkt);
		vec_sub(cam_temp,camera.x);
		vec_to_angle(camera.pan,cam_temp);
		
		wait(1);
	}
}


Und hier das komplette projekt (.c datei + model file) zum runterladen:
http://home.arcor.de/xarthor/downloads/rotateCylinder.zip

Page 1 of 2 1 2

Gamestudio download | chip programmers | Zorro platform | shop | Data Protection Policy

oP group Germany GmbH | Birkenstr. 25-27 | 63549 Ronneburg / Germany | info (at) opgroup.de

Powered by UBB.threads™ PHP Forum Software 7.7.1