Kollision zwischen Raster und Nicht-Raster

Androbin

Bekanntes Mitglied
Hallo Leute,
ich habe hier ein Problem 8

Ich habe einen 2-dimensionalen Array,
sowie einen nicht daran gebundenen Spieler,
möchte jedoch die Kollision überprüfen.

Das Problem besteht darin, dass ich nicht
alle Slots des Array's prüfen möchte / kann,
sondern nur die umliegenden.

Hier kommt ihr in's Spiel 8

Wer kann mir sagen, wie ich alle umliegenden Felder
meines nicht mit dem Spieler verknüpften Array's prüfen kann ???

PS. Die Elemente des Array's und der Spieler sind von der Klasse "Rectangle" abgeleitet !!!
 
Mit
Code:
int yRast = (yPosSpieler - abstandVonOben) / höheRasterFeld;
müsstest du die Zeile rausbekommen, in der der behandelte Spieler sich befindet.
Dasselbe funltioniert auch für die X-Koordinate im Raster.
 
😡: Gucky 8
Schon klar, das Problem [STRIKE]ist[/STRIKE] war,
dass ich mit noch ein paar weiteren Faktoren zu rechnen [STRIKE]habe[/STRIKE] hatte.

[EDIT]
Java:
	public void move( char dir ) {
		
		switch ( dir ) {
			
			case 'U' :
				
				if ( !canJump )
					 return;
				
				Block u = World.world.get( new Point( x / (int) ( 0.5 * getHeight() ), y / (int) ( 0.5 * getHeight() ) - 1 ) );
				
				if ( u.getId() != 0 )
					 return;
				
				canJump = false;
				
				y -= 0.5 * getHeight();
				
				break;
				
			case 'L' :
				
				Block l1 = World.world.get( new Point( x / (int) ( 0.5 * getHeight() ), y / (int) ( 0.5 * getHeight() )     ) );
				Block l2 = World.world.get( new Point( x / (int) ( 0.5 * getHeight() ), y / (int) ( 0.5 * getHeight() ) - 1 ) );
				
				if ( l1.getId() != 0
				  || l2.getId() != 0 )
					 return;
				
				x  -= 4;
				
				pic = 0;
				
				break;
				
			case 'D' :
				
				Block d = World.world.get( new Point( x / (int) ( 0.5 * getHeight() ), y / (int) ( 0.5 * getHeight() ) + 2 ) );
				
				if ( d.getId() != 0 ) {
					
					canJump = true;
					return;
					
				}
				
				y += 4;
				
				break;
				
			case 'R' :
				
				Block r1 = World.world.get( new Point( x / (int) ( 0.5 * getHeight() ) + 1, y / (int) ( 0.5 * getHeight() )     ) );
				Block r2 = World.world.get( new Point( x / (int) ( 0.5 * getHeight() ) + 1, y / (int) ( 0.5 * getHeight() ) - 1 ) );
				
				if ( r1.getId() != 0
				  || r2.getId() != 0 )
					 return;
				
				x += 4;
				
				pic = 2;
				
				break;
				
		}
		
		scroll();
		
	}
[/EDIT]
 

Neue Themen


Zurück
Oben