Gamestudio Links
Zorro Links
Newest Posts
AlpacaZorroPlugin v1.3.0 Released
by kzhao. 05/20/24 01:28
Free Live Data for Zorro with Paper Trading?
by AbrahamR. 05/18/24 13:28
Change chart colours
by 7th_zorro. 05/11/24 09:25
Data from CSV not parsed correctly
by dr_panther. 05/06/24 18:50
AUM Magazine
Latest Screens
The Bible Game
A psychological thriller game
SHADOW (2014)
DEAD TASTE
Who's Online Now
3 registered members (kzhao, AndrewAMD, bigsmack), 824 guests, and 5 spiders.
Key: Admin, Global Mod, Mod
Newest Members
Hanky27, firatv, wandaluciaia, Mega_Rod, EternallyCurious
19051 Registered Users
Previous Thread
Next Thread
Print Thread
Rate Thread
Camera problem #317258
03/30/10 11:14
03/30/10 11:14
Joined: Apr 2006
Posts: 273
Germany, NRW
Meerkat Offline OP
Member
Meerkat  Offline OP
Member

Joined: Apr 2006
Posts: 273
Germany, NRW
Hi ho,

aktuell arbeit ich an einem kleinen Test für ein Multiplayergame (da mir kein vernünftiges Projekt derzeit eingefallen ist und MP mich einfach interessiert). wink

Dort habe ich folgendes Problem:

Ich starte einen Server/Client und meine Kamera die der Kingdom Hearts Kamera nachempfunden ist funktioniert auch wunderbar soweit. Sie richtet sich nach dem Spieler aus, und fliegt an ihn bis auf eine bestimmte Entfernung heran. Mit den mouse_force Axen kann ich dann die Kamera um den Spieler herum drehen was auch wunderbar funktioniert. Die Server/Client Figur ist ROT!

Sobald ich aber als 2. Spieler mit einer BLAUEN Figur joine, vertauschen sich beide Kameras was aber nicht Sinn und Zweck der Geschichte war. Das heißt im Klartext das meine Serverkamera auf der BLAUEN Figur hängt und ich aber trotzdem die ROTE Figur bewege. Für eine Hilfestellung währ ich sehr dankbar! laugh


Ich poste den Code der Kamera da ich denke das von da her das Problem rührt. Ahso, bevor ich es vergesse. Der CameraCode ist rein Clientseitig geschrieben!

MfG: Meerkat

Code:
void Camera_Player()
{
	Playercam = my;
	vec_set(my.x, camera.x); //Setze CamEntity auf Camera Position!
	while(1)
	{
		vec_set(camera.x, my.x); //Setze CamEntity auf Camera Position!
		
		var temp_vec[3];
		vec_set(temp_vec, player.x);
		vec_sub(temp_vec, camera.x);
		vec_to_angle(camera.pan, temp_vec); //Drehe Kamera richtung Spieler Figur!
		my.pan = camera.pan;
		
		var Cam_Entfernung;
		Cam_Entfernung = vec_dist(camera.x, player.x);
		if(Cam_Entfernung > 150)
		{
			c_move(my, vector(10*time_step,0,0), nullvector, GLIDE);
		}
		if(Cam_Entfernung < 140)
		{
			c_move(my, vector(-10*time_step,0,0), nullvector, GLIDE);
		}
		c_move(my, vector(0,mouse_force.x,mouse_force.y), nullvector, GLIDE);
		
		
		wait(1);
	}
}

action Player()
{
	player = my;
	player_action();
	Playercam = ent_createlocal("camera_dummy.mdl", vector(0,0,0), Camera_Player);
}




http://www.gpi-studios.com

OS: Windows 7 Home Premium (64 Bit Version)
AMD Athlon 64 X2 Dual Core Processor 5200+
6gb DDR 2 - RAM
NVIDIA GeForce GTX 460
GameStudio Version A8 Commercial
Re: Camera problem [Re: Meerkat] #317261
03/30/10 11:37
03/30/10 11:37
Joined: May 2009
Posts: 445
Peine, Germany
Razoron Offline
Senior Member
Razoron  Offline
Senior Member

Joined: May 2009
Posts: 445
Peine, Germany
Ich arbeite nicht mit dem Multiplayerzeug von Gamestudio, aber ich glaube, dass die Aktion Player auf dem Client UND auf dem Server ausgeführt wird. Das bedeuted, wenn du den Client startest, wird die Aktion auf dem Server auch ausgeführt und eine zweite Kamera erstellt. Also:
1. Server startet
2. Der Server erstellt eine lokale Kameraentity
3. Der Client startet
4. Der Client erstellt seine lokale Kameraentity
5. Die Aktion "Player" wird auch auf dem Server ausgeführt.
6. Der Server erstellt eine 2. lokale Kameraentity, die auf den Player des Clients zeigt--> Fehler

Re: Camera problem [Re: Razoron] #317275
03/30/10 12:24
03/30/10 12:24
Joined: Apr 2006
Posts: 273
Germany, NRW
Meerkat Offline OP
Member
Meerkat  Offline OP
Member

Joined: Apr 2006
Posts: 273
Germany, NRW
Hrm ok, danke dir. Ich werd ma schauen wie ich das löse. ^^

Edit: Also ich habe nun eine Abfrage reingehauen das die Camera Funktion nur von dem Client gestartet werden kann. Trotzdem tritt das Problem dann auf wenn ein Client joint. Mir gehen langsam die Ideen aus. ^^

Last edited by Meerkat; 03/30/10 13:51.

http://www.gpi-studios.com

OS: Windows 7 Home Premium (64 Bit Version)
AMD Athlon 64 X2 Dual Core Processor 5200+
6gb DDR 2 - RAM
NVIDIA GeForce GTX 460
GameStudio Version A8 Commercial
Re: Camera problem [Re: Meerkat] #317327
03/30/10 15:58
03/30/10 15:58
Joined: Nov 2002
Posts: 913
Berlin, Germany
S
SchokoKeks Offline
User
SchokoKeks  Offline
User
S

Joined: Nov 2002
Posts: 913
Berlin, Germany
Razoron, das stimmt so nicht, die action wird nur auf server UND client ausgeführt, wenn die variable dplay_localfunction entsprechend geändert ist.

zu dem problem: auf dem server steuerst du immer die entity des zuletzt beigetretenen spielers, wegen dieser zeile:

player = my;

das führt dazu, das "player" jedesmal wenn ein einer spieler erstellt wird auf dem server geändert wird. sorge dafür, das player bei jedem der mitspieler (also auch auf dem server) nur einmal gesetzt wird.

Re: Camera problem [Re: SchokoKeks] #317336
03/30/10 16:33
03/30/10 16:33
Joined: Apr 2006
Posts: 273
Germany, NRW
Meerkat Offline OP
Member
Meerkat  Offline OP
Member

Joined: Apr 2006
Posts: 273
Germany, NRW
Ich habe eine Abfrage reingebaut die dafür sorgt das der den Pointer nur 1x vergibt. Dennoch liegt das alte Problem vor.

Edit:

Ich versuch das Problem grad anders zu lösen. Anstatt eine extra funktion mit dem player pointer zu nutzen schreib ich das anders in die Client/Server Funktion. Nun scheint zumindest zu funktionieren. Dummerweise hab ich nur keine Rotation mehr für die Kamera da ich mich mit der Trigonometrie nicht auskenne (und das nie gelernt habe).

Edit 2:

Hier hab ich den funktionierenden Code endlich und will ihn euch nicht vorenthalten. laugh

Code:
if(my.client_id == dplay_id) //Dieser Code läuft NUR auf dem CLIENT!
{
	var temp_vec[3];
	var CamEntfernung = 180;
	
	camera.pan -= mouse_force.x * 24 * time_step;
	camera.tilt += mouse_force.y * 16 * time_step;
	camera.tilt = clamp(camera.tilt, -20, 20);
	temp_vec = fcos(camera.tilt, 0);
	vec_set(camera.x, vector(my.x + fcos(camera.pan, -CamEntfernung),my.y + fsin(camera.pan, -CamEntfernung),(my.z + 40) - fsin(camera.tilt, 80)));
			
}



Last edited by Meerkat; 03/30/10 18:23.

http://www.gpi-studios.com

OS: Windows 7 Home Premium (64 Bit Version)
AMD Athlon 64 X2 Dual Core Processor 5200+
6gb DDR 2 - RAM
NVIDIA GeForce GTX 460
GameStudio Version A8 Commercial
Re: Camera problem [Re: Meerkat] #325528
05/27/10 00:50
05/27/10 00:50
Joined: May 2010
Posts: 13
I
IvanOFF Offline
Newbie
IvanOFF  Offline
Newbie
I

Joined: May 2010
Posts: 13
Ok! good ! camera not problems!


Moderated by  HeelX, Spirit 

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