Gamestudio Links
Zorro Links
Newest Posts
MT5 bridge not working on MT5 v. 5 build 4160
by EternallyCurious. 04/25/24 20:49
Data from CSV not parsed correctly
by EternallyCurious. 04/25/24 10:20
Trading Journey
by howardR. 04/24/24 20:04
M1 Oversampling
by Petra. 04/24/24 10:34
Zorro FIX plugin - Experimental
by flink. 04/21/24 07:12
Scripts not found
by juergen_wue. 04/20/24 18:51
zorro 64bit command line support
by 7th_zorro. 04/20/24 10:06
StartWeek not working as it should
by jcl. 04/20/24 08:38
AUM Magazine
Latest Screens
The Bible Game
A psychological thriller game
SHADOW (2014)
DEAD TASTE
Who's Online Now
4 registered members (EternallyCurious, TipmyPip, Quad, AndrewAMD), 904 guests, and 7 spiders.
Key: Admin, Global Mod, Mod
Newest Members
Mega_Rod, EternallyCurious, howardR, 11honza11, ccorrea
19048 Registered Users
Previous Thread
Next Thread
Print Thread
Rate Thread
Page 3 of 3 1 2 3
Re: Ich bin zu dumm ;-) [Re: Superku] #439181
03/28/14 09:37
03/28/14 09:37
Joined: Mar 2014
Posts: 25
T
Tirti Offline OP
Newbie
Tirti  Offline OP
Newbie
T

Joined: Mar 2014
Posts: 25
Stimmt ;-)

So habe das jetzt mal umgesetzt, sieht echt gar nicht so schlecht aus.
Jetzt das aber, es sieht so aus als ob er pro durchlauf den temp.y und temp.x
nicht addiert. Sprich es findet zwar einmalig eine Bewegung in eine Richtung statt.
Aber es geht halt nicht weiter, sie Idee finde ich sehr cool, das die Camera automatisch in die Richtung fährt
wenn ich in die nähe des Bildschirmrandes kommen. Was ich jetzt mal geändert hatte war, das ich den vec_zero(temp)
aus der while Schleife genommen habe. Frag lieber nicht wie das dann aussah^^

Grüße
Tirti

Re: Ich bin zu dumm ;-) [Re: Tirti] #439183
03/28/14 09:44
03/28/14 09: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)
Code:
VECTOR temp;
var camera_zoom_dist = 384;

action move_cam() 								
{
	set(my,UNLIT | PASSABLE);
	while(1) 											
	{
		vec_zero(temp);
		if(!mouse_right)
		{
			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(temp,time_step);
			vec_add(my.x,temp);
		}
		else my.pan -= 8*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); 										
	}
}

void main()
{
	fps_max = 60;
	level_load(NULL);
	ent_create(SPHERE_MDL,vector(0,0,32),move_cam);
	mouse_mode = 4;
	var i;
	for(i = 0; i < 100; i++)
	{
		ent_create(CUBE_MDL,vector((random(2)-1)*512,(random(2)-1)*512,0),NULL);		
	}
}



Jetzt funktioniert's. Der Fehler war offenbar in Zeile
vec_scale(my.x,time_step);
welche natürlich
vec_scale(temp,time_step);
lauten muss.


"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] #439188
03/28/14 10:38
03/28/14 10:38
Joined: Mar 2014
Posts: 25
T
Tirti Offline OP
Newbie
Tirti  Offline OP
Newbie
T

Joined: Mar 2014
Posts: 25
Ich will ehrlich sein, du bist mein Held!!!

Habe das jetzt so abgeändert
Code:
VECTOR temp;
camera.tilt = -35;
var camera_zoom_dist = 200;

action move_c()							
{
	set(my,UNLIT | PASSABLE);
	while(1) 											
	{
		vec_zero(temp);
		if(!mouse_right)
		{
			if(mouse_pos.x < 16) temp.y = 8;
			if(mouse_pos.x > screen_size.x-16) temp.y = -8;
			if(mouse_pos.y < 16) temp.x = 8;
			if(mouse_pos.y > screen_size.y-16) temp.x = -8;
			vec_rotate(temp,my.pan);
			vec_scale(temp,time_step);
			vec_add(my.x,temp);
		}
		else my.pan -= 8*mouse_force.x*time_step;
		camera.pan = my.pan;
		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); 										
	}
}



So macht es genau das was ich will.
Wenn ich an den Rand fahre, fährt die Camera in die Richtung.
Zoom klappt wie es soll
Und, wenn ich den Camera Pan verändere, kann ich dennoch Zoome und die Camera
fährt am Rand genau da in wohin sie es soll.
Muss halt noch den clamp für den Zoom anpassen sobald ich genau weis
wie der Bereich sein soll.

Darf ich dir kurz erläutern wie ich das verstanden habe und du sagst mir ob das richtig istß Würde mir echt helfen

1. klar Vector "temp" erstellen
2. die erstellte Entity unsichtbar und passierbar machen
3. Vector "temp" pro durchlauf wieder mit 0en auffüllen
4. wenn rechte Mausstaste nicht gedrückt
grob wenn maus Rand berührt dann setzte temp.x bzw. y auf 8 bzw -8
5. rotiere temp um pan von der entity
6. (verstehe ich nicht) wieso werden hier alle 3 Werte mal time_step genommen?
7. Entity X + Vector "temp" = entity.x (auch das geht mir nicht auf)

Der rest, also ab else betrifft j nur den Zoom oder?

Danke Superku,
bin der festen Überzeugung das ich dafür Monate gebraucht hätte

Grüße
Tirti

Re: Ich bin zu dumm ;-) [Re: Tirti] #439189
03/28/14 10:44
03/28/14 10: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)
Freut mich, wenn du nun etwas hast, womit du arbeiten kannst.

Zu 6.: Nahezu alle nicht-einmaligen Bewegungen/ Wertänderungen sollten mit time_step multipliziert werden. Umso höher die Framerate ist, desto kleiner ist time_step, was darin resultiert, dass die Entity/ der Wert auf allen PCs (in etwa) die gleiche Strecke zurücklegt/ Veränderung erfährt, und das unabhängig von der Bildwiederholrate (bspw. würde x++; auf schnellen PCs viel schneller wachsen als auf langsamen, sprich schreibe stattdessen x += 1*time_step; ).

Zu 7.: Was dir darin nicht klar ist, weiß ich leider nicht. Du willst doch my.x verändern (um indirekt die Kamera zu verschieben), also musst du etwas auf diesen Vektor addieren. Und das ist bei uns gerade temp, mit time_step skaliert.


"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] #439191
03/28/14 10:52
03/28/14 10:52
Joined: Mar 2014
Posts: 25
T
Tirti Offline OP
Newbie
Tirti  Offline OP
Newbie
T

Joined: Mar 2014
Posts: 25
Jetzt wird nen Schuh draus.
Habe zwar in meinem Buch schon mal die Erläuterung zu time_step nachgelesen.
Dachte aber das sich das nur auf Bewegungen von Entitys (also Animationen) bezieht.
Was mir aber jetzt beim lesen deiner Erklärung aufgefallen ist ( und das obwohl ich meine Entity "dummy" genannt habe)
benutze ich dummy ja quasi als Joystick für die Camera. Also habe ich eine Entity Bewegung
die ich über time_step normalisiere unabhängig der PC Performance.

*klatsch auf Stirn*

Sehe schon, das wird noch ein langer weg bis ich mal etwas Spielbares habe.
War mir vom Ablauf nur nicht sicher, dachte bevor ich mi über irgendwas tiefer
Gedanken mache, sollte die Camera bzw. Moussteuerung so funktionieren wie es soll.
Sonst stelle ich nachher fest das alles super, aber nicht bedienbar ist. Also dachte ich mir, erst die Bedienung dann Level und Co.

Grüße
Tirti

Last edited by Tirti; 03/28/14 10:52.
Re: Ich bin zu dumm ;-) [Re: Tirti] #439195
03/28/14 12:10
03/28/14 12:10
Joined: Feb 2010
Posts: 886
Random Offline
User
Random  Offline
User

Joined: Feb 2010
Posts: 886
Das kriegst du schon hin.
Überlege dir was du genau machen willst und arbeite es schrittweise ab.

Nenne dich niemals, selbst dumm!

Last edited by Random; 03/28/14 12:10.


Re: Ich bin zu dumm ;-) [Re: Random] #439196
03/28/14 12:19
03/28/14 12:19
Joined: Mar 2014
Posts: 25
T
Tirti Offline OP
Newbie
Tirti  Offline OP
Newbie
T

Joined: Mar 2014
Posts: 25
@Radom
Dane für die Aufbauenden Worte, jeder Anfang ist schwer sagt man.
Muss mich nur immer wieder bremsen, das ich mir nicht Gedanken über
Dinge mache die aktuell nicht, machbar bzw. zur Debatte stehen.

Nach dem jetzt die Camera steht, werde ich mal versuchen das erste Test-Level
zu Bauen.

Lasse euch am Fortschritt (sofern es einen gibt) teilhaben^^

Grüße
Tirti

Page 3 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