Hallo allerseits Ich habe vor kurzem begonnen, mein eigenes Plattformspiel zu machen, ich habe es geschafft, die Karte mit einem 2D-Array zu erstellen und habe auch meinen Player mit Bewegung erstellt. Ich bin jetzt fest auf, wie man sich der Rechteckkollisionsseite nähert jede Hilfe wird sehr geschätzt.Rechteck Kollisionserkennung xna
Hier ist, wie ich meine Karte erstellt habe und jetzt muss ich nur herausfinden, wie die Kollision zu nähern.
List<Texture2D> tileTextures = new List<Texture2D>();
private const int tileWidth = 64;
private const int tileHeight = 64;
public void Draw(SpriteBatch spriteBatch, Camera camera)
{
int tileMapWidth = tileMap.GetLength(1);
int tileMapHeight = tileMap.GetLength(0);
for (int x = 0; x < tileMapWidth; x++)
{
for (int y = 0; y < tileMapHeight; y++)
{
int textureIndex = tileMap[y, x];
Texture2D texture = tileTextures[textureIndex];
spriteBatch.Draw(
texture,
new Rectangle(x * tileWidth - (int)camera.cameraPosition.X,
y * tileHeight - (int)camera.cameraPosition.Y,
tileWidth,
tileHeight),
Color.White);
}
}
}
Von tun, was ich erinnere mich, als ich mit XNA begann, mußte man diese Rechteck-Klasse mit einer intersects Methode, die Sie bestimmen, verwenden könnten, ob ein Objekt mit einer anderen –
wurde kollidiert Wissen Sie, wie Ich würde mein Spielerrechteck mit meinen Fliesen vergleichen? Da ich jedesmal ein neues Rechteck in der Kachel-Zeichnungs-Funktion setze, habe ich keine Ahnung, wie ich es tatsächlich bezeichnen würde, um zu überprüfen, ob es sich überschneidet. – Spoingen
Wenn Sie XNA tun, sollten Sie wahrscheinlich eine 'update', Methode, und Sie können nur über alle Ihre Spieler und Kacheln iterieren, und ein neues Rechteck machen, und dort auf Kollisionen zu überprüfen –