2D Engine



  • Hi!

    Vor einer Weile bin ich auf die Idee gekommen eine 2D-Engine zu schreiben.
    Hab jetzt auch schon ein bisschen mit DirectX 9 rumgespielt, das Problem war das ich dort die Bitmaps als Texturen geladen habe, und die müssen ja immer eine Potenz von 2 sein, ansonsten werden sie hässlich verzerrt. Jetzt wollt ich fragen ob es eine Möglichkeit gibt Bitmaps beliebiger Größe (z.b. 37 x 39) darzustellen ohne Verzerrung? Oder sollte ich lieber auf OpenGl (oder anderes) umsteigen?

    Schonmal danke im voraus!



  • Texturkoordinaten benutzen. Oder doch DDraw?

    Bye, TGGC



  • Danke für die schnelle Antwort!

    Wollte eigentlich schon bei Direct 3D bleiben, da DDraw ja nicht mehr weiterentwicklt wird (glaub ich zumindest... 🙄 )

    Und wie genau funktioniert des mit den Texturkoordinaten?



  • Wär aber besser für dich.
    Viele Begriffe von DirectGraphics finden ihre Wurzeln in DirectDraw.
    Es ist einfacher zu beherschen und schafft Grundlagenwissen.

    Die Doku zur 7'er und den Nachfolgern findest du im MSDN Online Archive.



  • ➡ Andererseits wird von MS empfohlen DirectDraw *nicht* mehr zu verwenden und statt dessen auch für 2D auf DirectGraphics umzusteigen.

    MfG SideWinder



  • SideWinder schrieb:

    ➡ Andererseits wird von MS empfohlen DirectDraw *nicht* mehr zu verwenden und statt dessen auch für 2D auf DirectGraphics umzusteigen.

    LoL. Na dann. 💡
    http://www.it-news.de/0401/29537.html



  • @Phalaris Also auf OpenGL umzusteigen würde an deinem Problem nicht das geringste ändern. Wie TGGC schon sagte muss du entweder auf DDraw umsteigen (sehr einfach und gut für den Einstieg geeignet, wenn hier auch die Hardware-Unterstützung fehlt soweit ich weiß) oder das mit den Textur-Koordinaten machen.
    Das heißt konkret, du erstellst zB. eine 512x512 Pixel große Textur und packst dort soviel von deinen zu ladenen (kleineren) Texturen wie möglich nebeneinander rauf.
    Später im Spiel selbst verwendest du dann nicht die gesamte Textur sondern nur Teile davon mit den entsprechenden eigentlichen Texturen.

    Übrigens ist vielleicht folgendes für dich interessant: http://www.spieleprogrammierer.de/index.php?option=content&task=view&id=34&Itemid=2



  • es gibt meineswissens erstmal zwei möglichkeiten, sprites anzuzeigen (das sind so kleine bildchen). DIe erste ist ID3DXSprite zu verwenden, aber ich glaub das ist ziemlich langsam. DIe zweite ist, transformierte vertizes zu zeichnen, und diese mit einer textur zu überziehen. Die vertices müssen dann u und v-werte haben, womit du die textur-position einstellen kannst. u und v liegt dabei aber zwischen 0 und 1 und nicht zwischen 0 und der texturgröße.



  • ID3DXSprite ist eigentlich sehr brauchbar und ich habe das einige Zeit verwendet. Schwieriger, als DDraw zu verwenden ist es auch nicht, also gibt es keinen Grund für DirectDraw.


Anmelden zum Antworten