Gamestudio Links
Zorro Links
Newest Posts
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
Help with plotting multiple ZigZag
by degenerate_762. 04/30/24 23:23
AUM Magazine
Latest Screens
The Bible Game
A psychological thriller game
SHADOW (2014)
DEAD TASTE
Who's Online Now
2 registered members (7th_zorro, dr_panther), 1,211 guests, and 1 spider.
Key: Admin, Global Mod, Mod
Newest Members
firatv, wandaluciaia, Mega_Rod, EternallyCurious, howardR
19050 Registered Users
Previous Thread
Next Thread
Print Thread
Rate Thread
Schwerkraft? #410339
11/01/12 11:46
11/01/12 11:46
Joined: May 2008
Posts: 113
Italien, Südtirol, Naturns
P
Patrick92 Offline OP
Member
Patrick92  Offline OP
Member
P

Joined: May 2008
Posts: 113
Italien, Südtirol, Naturns
Hallo,
kann man mir jemand sagen, wie man eine ordentliche Schwerkraft machen kann?

Ich habe es bisher immer so gemacht:


Code:
function schwerkraft()
{
	
	var abstand[3];
	vec_set(abstand,my.x);
	abstand[2] -= 5;
	if(c_trace(my.x,abstand,IGNORE_PASSABLE|USE_BOX|IGNORE_ME) == 0)
	{
		//		beep();
		
		if(my.Z_MOVE > -50)
		{
			my.Z_MOVE = -2;
		}
	}
	else
	{
		my.Z_MOVE = 0;
		
			
	}
	
}



Hier passiert es mir immer wieder, dass der Spieler im Terrainboden "stecken" bleibt.
Danke schon mal im voraus.

MfG,
Patrick

Re: Schwerkraft? [Re: Patrick92] #410356
11/01/12 15:07
11/01/12 15: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)
Probier es mal so:

Code:
#define speed_z skill50
var key_space_off = 0;
VECTOR temp;
...
vec_set(temp,vector(my.x,my.y,my.z-500));
c_trace(my.x,temp,IGNORE_ME | IGNORE_PASSABLE);
if(!trace_hit) vec_set(target,temp);

if(my.z+my.min_z+5 > target.z || my.speed_z > 0)
{
	my.speed_z = maxv(my.speed_z-10*time_step,-80);
	c_move(me,nullvector,vector(0,0,my.speed_z*time_step),IGNORE_PASSABLE | GLIDE);
}
else
{
	my.speed_z = 0;
	my.z += (target.z-my.min_z+3-my.z)*time_step; //or set the position directly... (3 and 5 act as a simple buffer)
	if(key_space)
	{
		if(key_space_off)
		{
			my.speed_z = 50;
			key_space_off = 0;
		}
	}
	else key_space_off = 1;
}



"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: Schwerkraft? [Re: Superku] #410399
11/02/12 14:43
11/02/12 14:43
Joined: May 2008
Posts: 113
Italien, Südtirol, Naturns
P
Patrick92 Offline OP
Member
Patrick92  Offline OP
Member
P

Joined: May 2008
Posts: 113
Italien, Südtirol, Naturns
irgentwie funktioniert das immer noch nicht richtig? der spieler "rutscht" über nicht steile gelände oder wege hinunter?

Re: Schwerkraft? [Re: Patrick92] #410415
11/02/12 18:54
11/02/12 18:54
Joined: Sep 2003
Posts: 6,861
Kiel (Germany)
Superku Offline
Senior Expert
Superku  Offline
Senior Expert

Joined: Sep 2003
Posts: 6,861
Kiel (Germany)
Hatte den Code vorher nicht getestet, folgende Version funktioniert nun aber:

Code:
#define speed_z skill50
var key_space_off = 0;
VECTOR temp;

action act_player()
{
	c_setminmax(my);
	my.min_z += 40;
	while(1)
	{
		my.x += (key_w-key_s)*5*time_step;
		my.y += (key_a-key_d)*5*time_step;
		vec_set(temp,vector(my.x,my.y,my.z-500));
		c_trace(my.x,temp,IGNORE_ME | IGNORE_PASSABLE);
		if(!trace_hit) vec_set(target,temp);

		var target_height = target.z-my.min_z+40;

		if(my.z > target_height+5 || my.speed_z > 0)
		{
			my.speed_z = maxv(my.speed_z-10*time_step,-80);
			c_move(me,nullvector,vector(0,0,my.speed_z*time_step),IGNORE_PASSABLE);
		}
		else
		{
			my.speed_z = 0;
			if(my.z > target_height) my.z += (target_height-my.z)*time_step;
			else my.z = target_height;
			if(key_space)
			{
				if(key_space_off)
				{
					my.speed_z = 50;
					key_space_off = 0;
				}
			}
			else key_space_off = 1;
		}
		wait(1);
	}
}



Wie du siehst, "verringere" (absolut betrachtet) ich den min_z Wert, damit die Kollisionsbox nicht bis zu den Füßen geht, sondern bspw. nur bis zu den Knien. Dieser Wert muss dann aber auch bei target_height berücksichtigt und angepasst werden.


"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: Schwerkraft? [Re: Superku] #410455
11/03/12 11:26
11/03/12 11:26
Joined: May 2008
Posts: 113
Italien, Südtirol, Naturns
P
Patrick92 Offline OP
Member
Patrick92  Offline OP
Member
P

Joined: May 2008
Posts: 113
Italien, Südtirol, Naturns
ok danke das sieht aus als würde es funktionieren nur die B-BOX ist nicht mehr richtig aber die werde ich noch selbst ändern danke


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