Gamestudio Links
Zorro Links
Newest Posts
Data from CSV not parsed correctly
by jcl. 04/26/24 11:18
M1 Oversampling
by jcl. 04/26/24 11:12
Why Zorro supports up to 72 cores?
by jcl. 04/26/24 11:09
Eigenwerbung
by jcl. 04/26/24 11:08
MT5 bridge not working on MT5 v. 5 build 4160
by EternallyCurious. 04/25/24 20:49
Trading Journey
by howardR. 04/24/24 20:04
Zorro FIX plugin - Experimental
by flink. 04/21/24 07:12
Scripts not found
by juergen_wue. 04/20/24 18:51
AUM Magazine
Latest Screens
The Bible Game
A psychological thriller game
SHADOW (2014)
DEAD TASTE
Who's Online Now
3 registered members (AndrewAMD, howardR, 1 invisible), 777 guests, and 6 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
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