Gamestudio Links
Zorro Links
Newest Posts
Help with plotting multiple ZigZag
by degenerate_762. 04/30/24 23:23
M1 Oversampling
by 11honza11. 04/30/24 08:16
Trading Journey
by howardR. 04/28/24 09:55
Zorro Trader GPT
by TipmyPip. 04/27/24 13:50
Data from CSV not parsed correctly
by jcl. 04/26/24 11:18
AUM Magazine
Latest Screens
The Bible Game
A psychological thriller game
SHADOW (2014)
DEAD TASTE
Who's Online Now
2 registered members (dr_panther, Quad), 903 guests, and 3 spiders.
Key: Admin, Global Mod, Mod
Newest Members
firatv, wandaluciaia, Mega_Rod, EternallyCurious, howardR
19050 Registered Users
Previous Thread
Next Thread
Print Thread
Rate Thread
Page 2 of 3 1 2 3
Re: Ich bin zu dumm ;-) [Re: Tirti] #439047
03/25/14 19:54
03/25/14 19:54
Joined: May 2005
Posts: 2,713
Lübeck
Slin Offline
Expert
Slin  Offline
Expert

Joined: May 2005
Posts: 2,713
Lübeck
Formatiere mal deinen Code ordentlich (über das was das bedeutet kann man super streiten, aber es sollte zumindest konsistent sein). Ich bin sehr dafür Geschweifte Klammern immer übereinander zu machen, so wie es bei dir schon ist und dann aber nicht weiter eingerückt, als das while oder if oder was auch immer. Auch finde ich es schöner bei sowas wie if (blubb) das Leerzeichen zwischen dem if und der Klammer nicht zu machen. Du machst es aktuell bei dem if, aber nicht bei dem while, also lass es gleich überall weg.
Bei deinem Code weiter oben steht else { if(irgendwas) { } }, stattdessen kann man auch einfach schreiben: else if(irgendwas) { }, ist wie ich finde deutlich übersichtlicher.

Für deine Probleme mit der Bewegung musst du etwas mit Vektoren herumrechnen, was eigentlich ganz einfach ist, vor allem mit Gamestudios Funktionen.
In deinem Fall willst du ja offenbar die Kamera abhängig von der Mausbewegung immer nach Vorne/Hinten bzw Links/Rechts bewegen und zwar immer in die entsprechende Richtung aus Sicht der Kamera. Dazu kannst du dir temporär einen Vektor für die Bewegung aus Sicht der Kamera bauen und musst diesen dann aber aus dem Koordinatensystem der Kamera in das der Welt transformieren. Da es nur eine Richtung ist Spielt dabei die Position der Kamera keine Rolle, sondern nur die Rotation. Du musst also diesen Vektor genauso rotieren wie die Kamera. Vektoren kann man mit ein bisschen unübersichtlichem sin/cos rotieren, in Gamestudio gib es da vec_rotate(vector, camera.pan). Das Ergebniss kannst du dann auf die Position der Kamera Addieren.

Re: Ich bin zu dumm ;-) [Re: Slin] #439049
03/25/14 20:14
03/25/14 20:14
Joined: Mar 2014
Posts: 25
T
Tirti Offline OP
Newbie
Tirti  Offline OP
Newbie
T

Joined: Mar 2014
Posts: 25
Ok, auch wenn jetzt sicher alle denken ich bin doof, ich tue es weil es mir den
Anschein macht, das es hier für jeden das normalste der Welt ist.

Dürfte ich bitten das mir jemand den Code Schnipsel anhand meines Codes ergänzt?

Es geht nicht darum, das ich es einfach jemand anders machen lassen möchte.
Will eher versuchen anhand des Ergebnisses den Aufbau und die Berechnung bzw.
wie man es macht zu verstehen.

Code:
function move_cam() 								
{
while(1) 											
	{
	if (mouse_right == 1)
		{
		camera.pan -= mickey.z*time_step;
		camera.x += mouse_force.y;
		camera.y += mouse_force.x;
		}
	else
		{
		camera.arc -= mickey.z*time_step;
		}
	wait(1); 										
	}
}



Vorab ein danke, Tirti

Re: Ich bin zu dumm ;-) [Re: Tirti] #439050
03/25/14 20:25
03/25/14 20:25
Joined: May 2005
Posts: 2,713
Lübeck
Slin Offline
Expert
Slin  Offline
Expert

Joined: May 2005
Posts: 2,713
Lübeck
Code:
function move_cam() 								
{
	while(1) 											
	{
		if(mouse_right == 1)
		{
			camera.pan -= mickey.z*time_step;

			VECTOR movedir;
			movedir.x += mouse_force.y;
			movedir.y += mouse_force.x;
			vec_rotate(movedir, camera.pan);
			vec_add(camera.x, movedir);
		}
		else
		{
			camera.arc -= mickey.z*time_step;
		}
		wait(1); 										
	}
}



Irgendwie so.

Re: Ich bin zu dumm ;-) [Re: Slin] #439051
03/25/14 20:35
03/25/14 20:35
Joined: Mar 2014
Posts: 25
T
Tirti Offline OP
Newbie
Tirti  Offline OP
Newbie
T

Joined: Mar 2014
Posts: 25
Was mich etwas beruhigt ist, das dein Code das selbe Ergebnis bringt wie das
was ich gecodet hatte.

Leider hüpft die camera bei einem rechts click wie wild hin und her.

Da muss ich wohl doch noch etwas rumprobieren

Dennoch, danke

Tirti

Re: Ich bin zu dumm ;-) [Re: Tirti] #439058
03/26/14 04:44
03/26/14 04:44
Joined: Sep 2003
Posts: 6,861
Kiel (Germany)
Superku Offline
Senior Expert
Superku  Offline
Senior Expert

Joined: Sep 2003
Posts: 6,861
Kiel (Germany)
Vorausgesetzt, deine Spielfigur hat den bereits definierten "player" Pointer zugewiesen, dann versuch es mal mit dem folgenden Code:

Code:
VECTOR newCamx;
var camera_zoom_dist = 384;

void move_cam() 								
{
	while(1) 											
	{
		if(player)
		{
			camera_zoom_dist = clamp(camera_zoom_dist+mickey.z*0.5,64,512);
			camera.pan -= mouse_right*mouse_force.x*time_step;
			camera.tilt = -65;
			vec_set(camera.x,vector(-camera_zoom_dist,0,0));
			vec_rotate(camera.x,camera.pan);
			vec_add(camera.x,player.x);
		}
		wait(1); 										
	}
}



Das Problem mit Slins Code dürfte sein, dass der lokale und temporäre movedir Vektor nicht (automatisch) auf 0 initialisiert wird, wie das bei globalen Vektoren der Fall ist.


"Falls das Resultat nicht einfach nur dermassen gut aussieht, sollten Sie nochmal von vorn anfangen..." - Manual

Check out my new game: Pogostuck: Rage With Your Friends
Re: Ich bin zu dumm ;-) [Re: Superku] #439072
03/26/14 09:47
03/26/14 09:47
Joined: Mar 2014
Posts: 25
T
Tirti Offline OP
Newbie
Tirti  Offline OP
Newbie
T

Joined: Mar 2014
Posts: 25
Danke für deinen Post Superku.
Problem ist, es gibt keinen Player ;-)

Da ich mir ne art Strategie(SC2/C&C) ausgedacht habe, ist der Player, der MouseCursor bzw. die Camera

Hatte schon überlegt, das kenne ich aus 3DSMax das ich an das Camera Ziel, eine unsichtbare ENTITY binde.
Damit könnte ich den Focus der Camera verschieben. Aber denke die Vectoren dieser Entity bringen mir ja für die eigentlichen Ansicht nichts.

Oder kann ich den Player Pointer auf die Camera legen?

Grüße
Tirti

Re: Ich bin zu dumm ;-) [Re: Tirti] #439124
03/27/14 09:14
03/27/14 09:14
Joined: Mar 2014
Posts: 25
T
Tirti Offline OP
Newbie
Tirti  Offline OP
Newbie
T

Joined: Mar 2014
Posts: 25
Bin leider noch nicht weiter gekommen :-(

Grüße
Tirti

Re: Ich bin zu dumm ;-) [Re: Tirti] #439125
03/27/14 09:30
03/27/14 09:30
Joined: Sep 2003
Posts: 6,861
Kiel (Germany)
Superku Offline
Senior Expert
Superku  Offline
Senior Expert

Joined: Sep 2003
Posts: 6,861
Kiel (Germany)
Mit einer unsichtbaren Entity sollte das relativ einfach sein. Probier doch mal etwas wie folgt (funktioniert vllt nicht auf Anhieb):

Code:
VECTOR temp;
var camera_zoom_dist = 384;

action move_cam() 								
{
	set(my,UNLIT | PASSABLE);
	while(1) 											
	{
		vec_zero(temp);
		if(mouse_pos.x < 16 || key_cul) temp.y = -8;
		if(mouse_pos.x > screen_size.x-16 || key_cur) temp.y = 8;
		if(mouse_pos.y < 16 || key_cuu) temp.x = 8;
		if(mouse_pos.y > screen_size.y-16 || key_cud) temp.x = -8;
		vec_rotate(temp,my.pan);
		vec_scale(my.x,time_step);
		vec_add(my.x,temp);
		
		my.pan -= mouse_right*mouse_force.x*time_step;
		camera.pan = my.pan;
		camera.tilt = -65;
		camera_zoom_dist = clamp(camera_zoom_dist+mickey.z*0.5,64,512);
		vec_set(camera.x,vector(-camera_zoom_dist,0,0));
		vec_rotate(camera.x,camera.pan);
		vec_add(camera.x,my.x);
		wait(1); 										
	}
}



Damit solltest du die camera mittels Pfeiltasten oder Mauszeiger nahe Bildschirmrand bewegen, mit der rechten Maustaste rotieren und mit dem Mausrad zoomen können.


"Falls das Resultat nicht einfach nur dermassen gut aussieht, sollten Sie nochmal von vorn anfangen..." - Manual

Check out my new game: Pogostuck: Rage With Your Friends
Re: Ich bin zu dumm ;-) [Re: Superku] #439154
03/27/14 19:07
03/27/14 19:07
Joined: Mar 2014
Posts: 25
T
Tirti Offline OP
Newbie
Tirti  Offline OP
Newbie
T

Joined: Mar 2014
Posts: 25
Hi Superku,

sieht an und für sich nicht schlecht aus. Geht aber leider auch nicht.
Ich glaube das hier das "my" wieder das Problem ist. Es gibt ja keine Entity
auf die das my in der Action passen würde. Daher bekomme ich vermute ich zumindest einen Script Crash

Grüße
Tirti

Re: Ich bin zu dumm ;-) [Re: Superku] #439156
03/27/14 20:07
03/27/14 20:07
Joined: Sep 2003
Posts: 6,861
Kiel (Germany)
Superku Offline
Senior Expert
Superku  Offline
Senior Expert

Joined: Sep 2003
Posts: 6,861
Kiel (Germany)
Originally Posted By: Superku
Mit einer unsichtbaren Entity sollte das relativ einfach sein.

Daher auch "action".


"Falls das Resultat nicht einfach nur dermassen gut aussieht, sollten Sie nochmal von vorn anfangen..." - Manual

Check out my new game: Pogostuck: Rage With Your Friends
Page 2 of 3 1 2 3

Moderated by  HeelX, Lukas, rayp, Rei_Ayanami, Superku, Tobias, TWO, VeT 

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