Suchergebnisse
Suchergebnisse 1-21 von insgesamt 21.
Hier erfahren Sie, wie einfach Sie Ihren Browser aktualisieren können.
-
ich bin ja immer sehr mißtrauisch gegenüber dem Interface-Kult, den c#-ler so gerne treiben. Nach meiner Erfahrung meist ein Verstoß gegen das Kiss-Prinzip, also eine unnötige Verkomplizierung. ZB solange es nur eine einzige Implementierung eines Interfaces gibt, darf es ühaupt kein Interface geben. Ein Interface darf man erst extrahieren, wenn tatsächlich eine alternative Strategie für dieselbe Funktionalität implementiert wird (etwa, wenn einer hergeht, und einen DirectX- oder OpenGL-Renderer …
-
Abstrahieren ist kein Selbstzweck. Zum Abstrahieren muß man mehrere Strategien haben, die man betrachtet. Und dann findet man gleiche Strukturen, sodass man Code schreiben kann, der diese Gleichheiten über einen Kamm schert. Das Herausarbeiten dieser Gleich-Strukturen kann aber erst erfolgen, wenn man mehrere Strategien hat, die man vergleichen kann. Du kennst derzeit scheinbar nur die GDI-Strategie, wie gezeichnet wird, und denkst dir, DirectX wird iwie schon genauso ticken. Damit wirst du aber…
-
jetzt nochmal im Detail. sowas ist pseudoPolymorph:C#-Quellcode (10 Zeilen)scheinbar wird gegen ein Interface geproggt, aber praktisch wird auf die konkrete Klasse getestet und gecastet, und am schlimmsten ist vlt. noch, dass wenn der cast gelingt, dass dann zusätzlich auch noch das gewrapperte Objekt ausgepuhlt wird. Da kannst du wirklich gleich von Anfang an eine Drawing.Bitmap reingeben, und alles ist ganz klar, unds gibt nur eine einzige Zeile. richtige Polymorphie wäre, wenn die IBitmap sic…
-
wassis mit Drawing.Drawing2D.Matrix und Drawing.Drawing2D.GraphicsPath? Gibts dergleichen auch in DirectX2D? Bei meinen Zeichnungs-Übungen hat sich ergeben, dassich nix anneres brauche: Nur .DrawImage(Bitmap) und .DrawPath(GraphicsPath) Keine Rectangles, Lines, Texts - das kannich alles mit GraphicsPath darstellen. gugge Gezieltes OwnerDrawing Ansonsten - wie gesagt: nix inkompatibles zusammenrühren. Da würdich eher immer 2 Überladungen proggen, eine für GDI, eine für DirectX2D, und jeweils auf …
-
ich würd nur dann einen eigenen Destruktor coden, wenn ich auch selbst iwelches unmanaged Zeugs in die Klasse hineinbringe. Da FileStream bereits ein managed Dispose hat, gehe ich davon aus, es hat auch den geeigneten Destruktor - oder überseh ich was? zum Schließen fällt mir noch ein, man könnte doch das RenderWindow ganz normal im Application.Run(mainWindow) angeben. Dann braucht man halt ieinen Input, der "Schließen" beauftragt, und da wird dann aufgeräumt, und am Schluß auch das RenderWindow…
-
Hab jetzt mal die TestApp ausprobiert - immerhin ein Rechteck zu sehen. Nu wollte ich machen, dass es sich auch bewegt, und finde, die Engine unterstützt einen ühaupt nicht darin. Also von einer Engine täte ich mindestens erwarten, dass ich mit Tastatur die Richtung und Geschwindigkeit bewegter Objekte beeinflussen kann. Gerne auch, dass ich Objekte selektieren kann, drehen, oder auch ein Kollisionens-Ereignis bekomme.
-
Ah - jetzt habichs erfolgreich auf 2010 runterschrauben - nun kann man ja schon was sehen Und dann kannman auch den Plan dahinter verstehen, und versuchen zu erklären: Also Kern eines Spiels ist das GameLoop - Objekt. Da hinein tut der SpieleEntwickler seine SpielObjekte. Der Gameloop tut nix als vonne SpielObjekte immer .Update() und .Render(IRenderer renderer) aufzurufen, also ein SpielObjekt, was sichtbar sein soll, muß IRenderable implementieren, und wenns auch noch beweglich ist, oder sonst…
-
Zitat von Artentus: „Dieses Interface ist dafür da, IRenderables und IUpdateables in ein und der selben Liste halten zu können, damit ich nicht Klassen, die beides implementieren, einmal zur Renderer-Liste und einmal zur Update-Liste hinzufügen muss.“also bei so ganz schrägen Code-Stücke, wie dem hier - da bin ich wieder ganz entschieden für bisserl Kommentation. Aber was hälste von solch Add-Methoden:C#-Quellcode (5 Zeilen)Da kannst du die Dinge sogar in verschiedene Listen räumen, was die Loop…
-
kapier ich nix von - scheinbar sollen gewisse Changes erst verzögert zur Wirkung kommen - k.A., ob das sinnvoll ist. ich schnall ja schon hierbei ab:C#-Quellcode (7 Zeilen)Bist du dir sicher, dass Locking so kompliziert sein muss? Und ist doch auch sinnlos, falls die Komponente garnet IUpdateable ist. Also da sehe ich keinen Grund, nicht 2 verschiedene Listen zu verwenden. Und noch genauer hingeguckt: Diese Synchronisation soll ja glaub verhindern, dass ein Objekt gerendert wird und gleichzeitig…
-
Mir gefällt das Design für den SpieleEntwickler nicht sonderlich. Dieses PhysicTester-Monstrum - da ist mir viel zuviel drin. Ich würde was bevorzugen mit ZeichenObjekten, die selbst wissen, wie sie sich zeichnen sollen. - guck: ich hab ein Polygon gemacht, was sich zeichnen kann, und auch seinen Namen schreiben:C#-Quellcode (24 Zeilen)Die Texte wabern übrigens ziemlich eigentümlich herum. Auch Verschachtelung habich reduziert - Verschachtelung ab einem bestimmten Grad erschwert ziemlich die Les…
-
na, dassis schon ziemlich missbräuchlich - aber wenns um praktischen Code geht, kennich keine Moral :):C#-Quellcode (17 Zeilen)Also ein überladener List<Vector2> - Indexer, was ja eiglich ein Getter ist, wird gewissermaßen als Setter missbraucht, nämlich, um aus den Indizees Vectoren zu bilden und zu adden, und Rückgabewert ist immer der Initer selbst, sodass man weitere indizierte Zugriffe treiben kann.
-
was soll das? Ein Testprojekt, was nicht lauffähig ist, und FillTheRow gibts nur als Exe? Also wenn qualifiziertes Feedback dich interessiert, sollteste gucken, dass man dein Projekt auch testen kann. naja - vmtl. stell ich mich malwieder nur doof an. Also in FillTheRow finde ich kein SolutionFile, daher weiß ich nicht, wieso du das als OpenSource bezeichnest. ah - Github. Hmm - da kann ich was downloaden, aber dann fehlen alle möglichen Verweise vb-paradise.de/index.php/Attachment/26327/ also n…