Hallo zusammen,
habe folgendes Problem. Ich versuche eine Form des Atari Asteroids in c# nachzuprogrammieren.
Ich habe also ein Grafikobjekt auf der Form und lasse dieses rotieren. Das mache ich mit einer Matrix. Geht auch ganz gut.
Jetzt möchte ich weitere Grafikobjekte über die Paint-Methode der Form hinzufügen (die Asteroiden, quasi) und nach wie vor nur eines (natürlich das Raumschiff
) rotieren lassen.
Mein erster Gedanke, war, dies über GraphicsPath zu realisieren, da ich darauf die Transform der Matrix anwenden kann. GraphicsPath erlaubt es mir aber nicht, ein Bild (Image oder Bitmap) hinzuzufügen, richtig?
Aktuell füge ich alle Bilder mittels:
ein, wobei rect ein Techteck ist, welches image aufnimmt und dieses skaliert-
Rotiert wunderbar alle Objekte auf dem Formular. Ich will aber nur ein einziges rotieren lassen.
Wer weiß Rat? Ist wahrscheinlich ganz simpel, kenne mich mit den Grafiksachen halt noch nicht so gut aus.
Vielen Dank für jeden Tipp!
habe folgendes Problem. Ich versuche eine Form des Atari Asteroids in c# nachzuprogrammieren.
Ich habe also ein Grafikobjekt auf der Form und lasse dieses rotieren. Das mache ich mit einer Matrix. Geht auch ganz gut.
Jetzt möchte ich weitere Grafikobjekte über die Paint-Methode der Form hinzufügen (die Asteroiden, quasi) und nach wie vor nur eines (natürlich das Raumschiff

Code:
private void Form1_Paint(object sender, PaintEventArgs e)
{
Graphics g = e.Graphics;
//Methoden zum Zeichnen der Objekte
}
Mein erster Gedanke, war, dies über GraphicsPath zu realisieren, da ich darauf die Transform der Matrix anwenden kann. GraphicsPath erlaubt es mir aber nicht, ein Bild (Image oder Bitmap) hinzuzufügen, richtig?
Aktuell füge ich alle Bilder mittels:
Code:
g.DrawImage(image, rect);
ein, wobei rect ein Techteck ist, welches image aufnimmt und dieses skaliert-
Code:
Point pt = new Point(rect.X + size.Width / 2, rect.Y + size.Height / 2);
Matrix myMatrix = new Matrix();
myMatrix.RotateAt((float)rotation, pt, MatrixOrder.Append);
g.Transform = myMatrix;
Rotiert wunderbar alle Objekte auf dem Formular. Ich will aber nur ein einziges rotieren lassen.
Wer weiß Rat? Ist wahrscheinlich ganz simpel, kenne mich mit den Grafiksachen halt noch nicht so gut aus.
Vielen Dank für jeden Tipp!