Gamestudio Links
Zorro Links
Newest Posts
Zorro FIX plugin - Experimental
by flink. 04/21/24 07:12
Data from CSV not parsed correctly
by EternallyCurious. 04/20/24 21:39
M1 Oversampling
by 11honza11. 04/20/24 20:57
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
folder management functions
by VoroneTZ. 04/17/24 06:52
AUM Magazine
Latest Screens
The Bible Game
A psychological thriller game
SHADOW (2014)
DEAD TASTE
Who's Online Now
2 registered members (AndrewAMD, rki), 390 guests, and 0 spiders.
Key: Admin, Global Mod, Mod
Newest Members
EternallyCurious, howardR, 11honza11, ccorrea, sakolin
19047 Registered Users
Previous Thread
Next Thread
Print Thread
Rate Thread
Panzer Physik #451736
05/18/15 18:01
05/18/15 18:01
Joined: Jan 2006
Posts: 168
Germany, Hannover
DexLoomer Offline OP
Member
DexLoomer  Offline OP
Member

Joined: Jan 2006
Posts: 168
Germany, Hannover
Hi Leute,
ich versuche ein Fahrzeug wie einen Panzer fahren zu lassen.
Dafür möchte ich, dass sich bei der vor/zurück Bewegung die Räder rechts und links synchron bewegen. Aber bei einer links/rechts Steuerung konträr zueinander, so das sich das Fahrzeug eine Drehung beschreibt.


Bisher habe ich nur eine unelegante Lösung:


Code:
.
.
while(entCar != NULL) 
 {		
		if(key_pressed(key_for_str("cuu")) || key_pressed(key_for_str("cud")))
		{		
			pXcon_setwheel(entFrontLeftWheel, 0, (key_cuu - key_cud)*100000*time_step, 0);
			pXcon_setwheel(entFrontRightWheel, 0, (key_cuu - key_cud)*100000*time_step, 0);
			pXcon_setwheel(entBackLeftWheel, 0, (key_cuu - key_cud)*100000*time_step, 0);
			pXcon_setwheel(entBackRightWheel, 0, (key_cuu - key_cud)*100000*time_step, 0);
		}	

		if(key_pressed(key_for_str("cul")) || key_pressed(key_for_str("cur")))
		{		
			pXcon_setwheel(entFrontLeftWheel, 0, (key_cur - key_cul)*100000*time_step, 0);
			pXcon_setwheel(entFrontRightWheel, 0, (key_cur - key_cul)*-100000*time_step, 0);
			pXcon_setwheel(entBackLeftWheel, 0, (key_cur - key_cul)*100000*time_step, 0);
			pXcon_setwheel(entBackRightWheel, 0, (key_cur - key_cul)*-100000*time_step, 0);
		}		
   wait(1);
 }
.
.




Das Problem ist, dass der Schub mit dieser Abfrage nicht aufhört, wenn die Richtung einmal gedrückt wurde.

Ich habe auch schon versucht den Bulldozer Code (vom Summer 2008 contest) auf A8 Physix umzuschreiben, denn dieser macht genau das was ich brauche. Bisher leider erfolglos..

Danke im Voraus ;-)


A8-Com-v 8.47.1
Re: Panzer Physik [Re: DexLoomer] #451752
05/19/15 13:11
05/19/15 13:11
Joined: Jan 2006
Posts: 168
Germany, Hannover
DexLoomer Offline OP
Member
DexLoomer  Offline OP
Member

Joined: Jan 2006
Posts: 168
Germany, Hannover
Hab den Code inzwischen etwas verbessert, hakelt aber immer noch!
Besonders wenn mehere Tasten, (z.B. gerade aus und links) gedrückt werden. Hat jemand von Euch einen Tip?

Code:
.
.
while(entCar != NULL) 
	{
		
		
		schub_L = 0;
		schub_R = 0;
		

		if(key_pressed(key_for_str("cuu")) == 1) 
		{
			schub_L = -1;
			schub_R = -1;
		}	
		if(key_pressed(key_for_str("cud")) == 1) 
		{
			schub_L = 1;
			schub_R = 1;
		}
		if(key_pressed(key_for_str("cul")) == 1) 
		{
			schub_L = -1;
			schub_R = 1; 
		}
		if(key_pressed(key_for_str("cur")) == 1) 
		{
			schub_L = 1;
			schub_R = -1; 
		}
		
		pXcon_setwheel(entFrontLeftWheel, 0, (schub_L)*100000*time_step, 0);
		pXcon_setwheel(entFrontRightWheel, 0, (schub_R)*100000*time_step, 0);
		pXcon_setwheel(entBackLeftWheel, 0, (schub_L)*100000*time_step, 0);
		pXcon_setwheel(entBackRightWheel, 0, (schub_R)*100000*time_step, 0);		
		
		
		wait(1);
	}
.
.



A8-Com-v 8.47.1
Re: Panzer Physik [Re: DexLoomer] #451770
05/20/15 11:33
05/20/15 11:33
Joined: Jan 2006
Posts: 168
Germany, Hannover
DexLoomer Offline OP
Member
DexLoomer  Offline OP
Member

Joined: Jan 2006
Posts: 168
Germany, Hannover
Ok habe es hinbekommen.. laugh
Mache es wie im Bulldozer Code:

Code:
while(entTank != NULL) 
	{
		
		
		entTank.force_left  = clamp (key_cuu - key_cud + (key_cur - key_cul) * (1 - 2 * key_cud), -1, 1);
		entTank.force_right = clamp (key_cuu - key_cud + (key_cul - key_cur) * (1 - 2 * key_cud), -1, 1);

		pXcon_setwheel (entFrontLeftWheel, 0,  (-entTank.force_left * speed), 0); 
		pXcon_setwheel (entBackLeftWheel, 0, (-entTank.force_left * speed), 0); 		
		pXcon_setwheel (entFrontRightWheel, 0,  (-entTank.force_right * speed), 0); 
		pXcon_setwheel (entBackRightWheel, 0,  (-entTank.force_right * speed), 0); 
		
		
		
		wait(1);
	}



A8-Com-v 8.47.1
Re: Panzer Physik [Re: DexLoomer] #451776
05/20/15 13:55
05/20/15 13:55
Joined: Sep 2003
Posts: 6,861
Kiel (Germany)
Superku Offline
Senior Expert
Superku  Offline
Senior Expert

Joined: Sep 2003
Posts: 6,861
Kiel (Germany)
Glückwunsch! (^.^)


"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

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