Wykrywanie kolizji

Wykrywanie kolizji
RE
  • Rejestracja:prawie 10 lat
  • Ostatnio:ponad 6 lat
  • Postów:44
0

Witam.
Zrobiłem takie wykrywanie kolizji:

Kopiuj
public boolean isCollised(){
		for(Collision c1:MyGdxGame.collisionManager.getCollisionList()){
			if(!c1.equals(this)){
				if(c1.overlaps(this)){
					return true;
				}
			}
		}
		return false;
	}
	
	public boolean isCollOnRight(){
		for(Collision c1:MyGdxGame.collisionManager.getCollisionList()){
			if(!c1.equals(this)){
				return this.isCollised() && (this.x + this.width >= c1.x);
			}
		}
		return false;
	}
	public boolean isCollOnLeft(){
		for(Collision c1:MyGdxGame.collisionManager.getCollisionList()){
			if(!c1.equals(this)){
				return this.isCollised() && (this.x <= c1.x + c1.width);
			}
		}
		return false;
	}
	public boolean isCollOnTop(){
		for(Collision c1:MyGdxGame.collisionManager.getCollisionList()){
			if(!c1.equals(this)){
				return this.isCollised() && (this.y + this.height >= c1.y);
			}
		}
		return false;
	}
	public boolean isCollOnBottom(){
		for(Collision c1:MyGdxGame.collisionManager.getCollisionList()){
			if(!c1.equals(this)){
				return this.isCollised() && (this.y > c1.y + c1.width);
			}
		}
		return false;
	}

Z obsługą z której strony jak widać na powyższym kodzie...
Wszystko działa, ale nie tak jak trzeba...
Wykrywa kolizje wszystkie na raz !

Proszę o pomoc, w naprawieniu kodu tak aby wykrywał kolizje tylko jedną stroną... jeżeli taka występuje.

edytowany 1x, ostatnio: Reveres
Pangeon
  • Rejestracja:prawie 10 lat
  • Ostatnio:prawie 3 lata
  • Lokalizacja:Łódź
  • Postów:163
0

Kiedyś (jeszcze nie mając aspiracji bycia programistą) zrobiłem gierkę w ActionScript, która nawet działa. To prymitywny projekt, ale może posłuży jako inspiracja :)

ehhh... te wspomnienia :P


Sukces jest progresywną realizacją wartościowej idei w ramach cierpliwego wymiaru czasu.
edytowany 2x, ostatnio: Pangeon

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.