Mit C# musst du schon klar kommen, wenn du ne 3rd-Party-Engine verwenden willst, mir ist keine einzige bekannt, die in VB geschrieben wäre, und die Samples sind auch immer C#. Also das Grundprinzip eines Spiels ist die Trennung von Update- und Renderlogik. Das würde z.B. in diesem speziellen Fall bedeuten, bewegt wird nur beim Update, beim Zeichnen wird auch wirklich nur gezeichnet, nicht bewegt. Das sind dann für gewöhnlich zwei verschiedene Threads, die in nem Loop laufen und Update bzw. Rende…
Nanana, du denkst ganz und gar nicht objektorientiert. Die einzelnen Spielobjekte zeichnen sich alle selber, im Render-Zyklus werden lediglich die einzelnen Render-Methoden der Objekte aufgerufen. Schau dir mal das hier an: [C#] [OpenSource] GameUtils Bzw. speziell das: github.com/Artentus/GameUtils/…ter/GameUtils/GameLoop.cs
GDI und ne PictureBox passen nicht zusammen. Wenn wir hier von GDI sprechen, dann meinen wir keine Controls sondern dass alles auf ein und den selben Zeichengrund gemalt wird.
Vom Prinzip her siehts so aus: VB.NET-Quellcode (11 Zeilen)Nur hab ich das in meiner Engine natürlich enorm abstrahiert und mit mehr Möglichkeiten versehen. Edit: du kannst dir den ganzen Code auch auf GitHub ansehen (siehe zweiter Link).
Hm, also ein Interface ist halt so die mit Abstand beste Methode das umzusetzen. Kann aber sein, dass du recht hast und ich schon wieder Astronaut spiele.
Die Klassen erben nicht von Picturebox, sondern implementieren das IRenderable-Interface. Sie brauchen dann natürlich alle noch ne Location-Property, weil die ja nicht mehr vorhanden ist.