Hallo Stack Overflow Benutzer, ich habe ein lustiges Problem, das ich in meinem XNA-Spiel habe.XNA Rotation Hilfe (interessant ...)
Also im Grunde habe ich einen Asteroiden, 80x80, und ich setze den Ursprung als imageW/2, imageH/2 (Wenn Ordnung wäre, würde es nicht, der Asteroid ist ein Quadrat).
Hier ist ein Bild, das das Problem erklärt! Visualisierung FTW: D
Also, alle Ideen auf, was ist der Grund dafür? I 1 Stunde lang, ich Beispiele sah, fand ich heraus, es soll so drehen:
http://www.riemers.net/images/Tutorials/XNA/Csharp/Series2D/rotation.jpg
Aber es ist nicht.
Hier ist ein Codebeispiel. Ich habe ein Objekt mit dem Namen Drawable, die Eigenschaften, die die Vektorposition halten hat usw.
Vector2 asteroidOrigin = new Vector2(asteroidImgs[asteroid.asteroidType].Width/2, asteroidImgs[asteroid.asteroidType].Height/2);
drawableList.Add(new Drawable(asteroidImgs[asteroid.asteroidType], asteroid.asteroidPos, asteroid.angle, asteroidOrigin));
Hier ist die Draw-Methode:
foreach (Drawable drawable in renderManager.getRenderList)
{
spriteBatch.Draw(drawable.image, drawable.position, drawable.sourceRectangle, drawable.tint, drawable.angle, drawable.origin, drawable.imageScale, drawable.spriteEffects, drawable.depth);
}
Und ja, die Auslosungs Klasse hat mehrere Konstrukteure und sie zuweisen Standard Werte.
Bitte geben Sie Ihren relevanten Code ein, damit wir sehen können, wo das Problem liegt. – Asik
Okay, ich habe gerade Dr_Asik gemacht, aber die Art, wie ich meine Sachen zeichne, ist sehr komplex: P –
Haben Sie es debuggt? Setzen Sie einen Haltepunkt in die foreach-Schleife und durchlaufen Sie jede Iteration, während Sie den Mauszeiger über den Ursprung halten, um zu sehen, ob er den erwarteten Wert enthält. –