schachbrett - langsam beim neuzeichnen
-
hallo,
ich habe ein schachbrett mit buttons programmiert.
beim ändern der fenstergröße dauert es aber relativ lange, bis alle buttons neu gezeichnet werden. gibt es alternativen zu buttons, irgendwas, was schneller gezeichnet wird?
-
WinForms? WPF? Was für Buttons überhaupt? Wird beim Neuzeichnen noch was anderes frisch berechnet etc?
-
OnPaint(...)
überschreiben und alle Flächen selber Zeichnen.
Oder Mindestgröße des Spielfeldes und diese Konstant halten.Edit: Icht Tippe mal auf Winforms und TableLayout sonst würde es nicht so lange daueren, vor allem bei Fenstergrößenänderungen.
-
ja, windows forms und table layout, hätte ich vllt noch dazu schreiben sollen.
also, hmm... wenn ich OnPaint überschreibe, das bringt viel?
-
swchach matt schrieb:
ja, windows forms und table layout, hätte ich vllt noch dazu schreiben sollen.
also, hmm... wenn ich OnPaint überschreibe, das bringt viel?Jedoch zeichnest du dann alles selber und musst auch alles selber machen (Position der Felder, Hover oder sonstige Effekte ...)
Dann kannst du auch nicht mehr direkt auf die einzelnen Felder zugreifen. Im Gegensatz zu den Buttons.
Es ist eine etwas andere Herangehensweise als mit Buttons zu programmieren.Von der Geschwindigkeit ist da deutlich mehr Potential als bei Buttons! (Natürlich kann man es auch verdammt vergeigen
)
-
klickereignisse, also welches feld angeklickt wurde usw. bekommt man dann wohl auch nicht frei haus serviert, nehme ich an? hmmm..das ist aber ein haufen mehr arbeit !
-
Ach, stell' Dich nicht so an!
Das Panel, auf dem Du zeichnest stellt immernoch OnClick() zur Verfügung. Du kannst anhand der Koordinaten errechnen, auf welches Feld geklickt wurde.
-
Er kann sich auch ne Klasse MyField erstellen, der er das Ereignis gibt.
Das Spielbrett besteht dann eben aus x-MyField Objekten.
Bei Klick auf das Spielbrett errechnet er die Position und ermittelt das MyField Objekt das ausgewählt wurde. Anschließend kann das MyField Objekt ja das Event werfen.