Einzelnen Beitrag anzeigen
Ungelesen 15.11.10, 14:33   #7
waldfee0071
Ist öfter hier
 
Benutzerbild von waldfee0071
 
Registriert seit: Nov 2009
Beiträge: 215
Bedankt: 189
waldfee0071 ist noch neu hier! | 0 Respekt Punkte
Standard

Zitat:
Die Koordinaten des Spielers sind keine Eigenschaften des Objekts.
Die Koordinaten des Spielers sind in globalen Variablen definiert. Sie werden lediglich (zur Abfrage der Kollision) an 2 Instanzvariablen übergeben. Gibt sicherlich schönere Lösungen, da hast du recht. Sollte jedoch funktionieren.


Selbst wenn "col" eine globale variable ist besteht das Problem ohne jegeliche Änderung weiter.

Das was ich nur absolut nicht verstehe ist:
Wenn sich der Spieler innerhalb eines der drei Objectes befindet (also die if Bedingung zutrifft) wird der text(rot) ausgegeben.
Allerdings trifft der rest der Anweisungen nur auf das zu letzt aufgerufene object zu. Obwohl nun alle bool Werte für die Kollision global sind.

Code:
          if(px>ox1&&px<ox2&&py>oy1&&py<oy2){	// bounding box
		textprintf(buffer, font, 0, 0, makecol(100,255,125),"overlapping bitmaps !"); 
		col=true;
		up=false;			//bools for controling elements
		down=false;
		left=false;
		right=false;}		
	  else col=false;			//bool for collision
ohne " else col=false; " wird durch jedes object die bewegung eingeschränkt (und nicht mehr zurück gesetzt). Also wird tatsächlich der bool wert (egal ob instanziert oder global) mehrfach gesetzt und erst der letzte aufruf der check funktion "zählt". Ich hab echt keinen Plan wie ich das umgehen kann Q.Q
waldfee0071 ist offline   Mit Zitat antworten