Hi, ich hoffe ich habe das richtige Forum erwischt, die Suche nach Direct3D hat mich leider nicht wirklich weiter gebracht.
Zuerst eine kurze Vorstellung:
Ich heiße Frederik Auffenberg, bin 20 Jahre alt, studiere momentan Medieninformatik und arbeite nebenbei noch als Software-Entwickler (allerdings dort mit Java).
Meine Programmierkenntnisse sind noch nicht wirklich professionell, aber für ein paar Spielereien mit Direct3D-Sprites reicht es dann doch.
Momentan hänge ich bei einer Belegaufgabe für die Uni fest. Hilfe von außen ist in diesem Fall definitiv erlaubt, da ich bereits über die Aufgabenstellung hinaus entwickle ;) !
Die Aufgabenstellung ist eigentlich ganz einfach: Ein Schachspiel, basierend auf Sprites, in einer MfC-Dialoganwendung erstellen.
Umgebung ist Visual Studio 2010 Ultimate und das DirectX-SDK vom Februar 2010 (allerdings DirectX 9.0c), geschrieben wird in C++.
Ansich ist bereits alles implementiert und funktioniert (bis auf ein paar Fehler mit den Destruktoren) auch prima.
Das eigentliche Problem ist, dass Direct3D die Sprites beim resizen des Fensters automatisch dessen neue Größe anpasst.
Ansich ist das ja ein nettes feature, allerdings nicht, wenn die Auflösung zu klein für die Anwendung ist (diese braucht dummerweise 1150x920px, also theoretisch min. eine Auflösung von 1280x1024).
Sobald die Anwendung nämlich zu klein ist existiert für Direct3D scheinbar nur der sichtbare Bereich. Beim resizen des Fensters werden die Sprites so "verzerrt", dass immer nur der Bereich zu sehen ist, der beim ersten Start zu sehen
war. Der untere Bereich der Anwendung wird also nicht mit angezeigt.
Daher würde ich das anpassen an die Fenstergröße jetzt gerne selbst übernehmen, damit ich bei zu kleiner Auflösung einfach das ganze runterskalieren kann.
Dazu müsste ich jedoch erstmal Direct3D dazu bringen an den Sprites nichts zu ändern. Ist dies möglich? Gibt es vielleicht noch andere, sinnvollere Möglichkeiten? Oder empfiehlt es sich, sich die Arbeit zu machen die Sprites an eine kleinere
Auflösung anzupassen und diese als Mindestauflösung vorrauszusetzen?
Ich hoffe, dass ich das Problem einigermaßen verständlich rüberbringen konnte.
Gruß und schonmal vielen Dank,
Frederk