Ah, ok, verstehe. Der Mauszeiger tut nun das was er soll crazy

Was ist denn an diesem Codeauszug falsch?

Ziel: Bei Drücken der Maustaste 4 soll der Spieler automatisch laufen/gehen. Bei erneutem drücken der Maustaste 4 soll er stehen bleiben.

Es funktioniert auch allerdings nur sporadisch. Verstehe nicht wo der Fehler liegen soll frown

Code:
// Maustasten 4 und 5 definieren
#define mouse_4 (GetKeyState(5) > 1)
#define mouse_5 (GetKeyState(6) > 1)

#define AUTO_RUN skill2 // Automatisch laufen 0=aus, 1=an

function fAutoRun() {
	my.AUTO_RUN = 0;
	
	while(1) {
		// Autorun
		if (mouse_4) {
			if (my.AUTO_RUN)
				my.AUTO_RUN = 0;
			else
				my.AUTO_RUN = 1;
		}
		
		if (my.AUTO_RUN) {
			vecPlayerMoveSpeed.x = (RUN_SPEED - key_shift * WALK_SPEED) * time_step;
			vecPlayerMoveSpeed.x -= (RUN_BACK_SPEED - key_shift * WALK_BACK_SPEED) * time_step;
		}
		
		// Bewegen des Spielers mit Kollisionserkennung. dabei werden alle passierbaren Objekte ignoriert und dafür gesorgt, dass der Spieler an Kanten entlanggleitet.
		c_move(me, vecPlayerMoveSpeed.x, nullvector, IGNORE_PASSABLE | IGNORE_PASSENTS | GLIDE);
	}
}



Wenn "mouse_4" geklickt wird, dann wird geprüft ob "my.AUTO_RUN" auf 1 steht. Wenn ja, dann auf 0 setzten. wenn nein, dann auf 1 setzten. Wenn "my.AUTO_RUN" = 1 dann laufe und laufe und laufe und laufe......

Oder hab ich da einen Denkfehler?

Last edited by LucasA; 04/16/13 15:03.