C
Hallo Leute
Habe mein Pong gespielt und festgestellt, dass die das mit der Auswahl der Spielfeldgröße nicht so funktioniert wie sie sollte.
Ich habe vier Radiobutton, mit denen ich die Spielfeldgröße einstellen kann. Wenn ich die Größe ausgewählt und übernommen habe soll der entsprechende Radiobutton markiert sein und auch markiert bleiben, wenn ich die Einstellungen noch mal aufrufe.
Bei den ersten beiden Button 320 * 200 und 640 * 480 funktioniert das, aber bei 1024 * 768 und Maximal nicht. Außerdem habe ich den Eigenschaften der Form Einstellungen festgelegt, dass der Radiobutton 640 * 480 als Standart markiert sein soll. Das Funktioniert auch nicht. Das heißt wenn ich die Anweisungen
if(breite == 320 && hoehe == 200)
{
radioButton320->Checked = true;
}
else if(breite == 640 && hoehe == 480)
{
radioButton640->Checked = true;
}
else if(breite == 1024 && hoehe == 768)
{
radioButton1024->Checked = true;
}
else
{
radioButtonMaximal->Checked = true;
}
auskommentiere und nur die Anweisungen
Point liefereWert()
{
Point rueckgabe;
if (radioButton320 -> Checked == true)
rueckgabe = Point(320,200);
if (radioButton640 -> Checked == true)
rueckgabe = Point(640,480);
if (radioButton1024 -> Checked == true)
rueckgabe = Point(1024,760);
if (radioButtonMaximal -> Checked == true)
// bitte in einer Zeile eingeben
rueckgabe = Point(Screen::PrimaryScreen -> Bounds.Width, Screen::PrimaryScreen -> Bounds.Height);
return rueckgabe;
}
stehen lasse, dann ist zwar der Radiobutton 640 * 480 markiert, wie es zu Anfang sein soll. doch mit dem ersten oberen Code nicht mehr. Da markiert er ständig Maximal. Wähle ich 1024 * 768 aus dann steht er ebenfalls auf Maximal. Die Auswahl funktioniert nur bei 320 * 200, 640 * 480 und Maximal.
Was läuft da falsch und wie kann das berichtigt werden?
Hier noch mal der Code aus dem Hauptprogramm, an dem das ganze übergeben werden soll.
private: System::Void spielfeldToolStripMenuItem_Click(System::Object^ sender, System::EventArgs^ e)
{
Point neueGroesse;
// bitte jeweils in einer Zeile eingeben
einstellungenDialog4 ^neueWerte = gcnew einstellungenDialog4(this->Width, this->Height, this->rahmenFarbe,this->malen);
// wenn der Dialog über OK beendet wird
if (neueWerte -> ShowDialog() == Windows::Forms::DialogResult::OK)
{
// die neue Größe holen
neueGroesse = neueWerte -> liefereWert();
spielfeld->BackColor = neueWerte->liefereBackColor();
rahmenFarbe = neueWerte->liefereRahmenColor();
// den Dialog wieder schließen
neueWerte -> Close();
// das Formular ändern
this -> Width = neueGroesse.X;
this -> Height = neueGroesse.Y;
// neu ausrichten
// bitte jeweils in einer Zeile eingeben
this -> Left = (Screen::PrimaryScreen -> Bounds.Width - this -> Width) / 2;
this -> Top = (Screen::PrimaryScreen -> Bounds.Height - this -> Height) / 2;
// die Zeichenfläche neu beschaffen
zeichenflaeche = spielfeld -> CreateGraphics();
// das Spielfeld neu setzen
setzeSpielfeld();
// Spielfeld löschen
zeichenflaeche -> Clear(spielfeld -> BackColor);
zeichneSpielfeld();
zeichnePunkte("0");
zeichneZeit("0");
// und einen neuen Ball und Schläger zeichnen
neuerBall();
}
};
Lieben Dank für Eure Hilfe und liebe Grüße
champman