Hallo,
da ich mit meinem
Spiel die absoluten Grenzen von DelphiX erreicht habe, schreibe ich gerade an einer neuen 2D Engine, welche
DirectX 9 verwendet.
Ich setze die VIEW und die PROJECTION Matrix am anfang meines Programmes mit folgenden Zeilen:
Delphi-Quellcode:
procedure SetupScene(Appl:TAndorraApplication;AWidth,AHeight:integer);
var centerx,centery:single;
pos, dir, up : TD3DXVector3;
matView, matProj: TD3DXMatrix;
begin
if Appl <> nil then
begin
with TAndorraApplicationItem(Appl) do
begin
pos := D3DXVector3 (Awidth/2,AHeight/2,-10);
dir := D3DXVector3 (Awidth/2,AHeight/2,0);
up := D3DXVector3 (0,1,0);
D3DXMatrixLookAtLH( matView, pos, dir, up);
Direct3d9Device.SetTransform(D3DTS_VIEW, matView);
D3DXMatrixOrthoLH( matProj, Awidth, Aheight, 0,100);
Direct3d9Device.SetTransform(D3DTS_PROJECTION, matProj);
end;
end;
end;
Problem ist nun, dass der Koordinatenursprung nun links unten und nicht links oben liegt.
Wie kann ich die Y Achse umdrehen?
Ich habe schon stundenlang gesucht aber nichts (brauchbares) gefunden (Mal abgesehen von einigen Leuten, die das selbe Problem, aber keine Lösung hatten. Das einzige war das folgende...
http://209.85.135.104/search?q=cache:aI4kwcynbfUJ:discuss.microsoft.com/SCRIPTS/WA-MSD.EXE%3FA2%3Dind0303c%26L%3Ddirectxdev%26D%3D1%2 6P%3D14229%26F%3DP+D3DXMatrixOrthoLH+origin&hl=de& amp;gl=de&ct=clnk&cd=10&lr=lang_de|lan g_en
doch ich bekomme den Code nicht so richtig zum Funktionieren...
Im Anhang befindet sich mal noch ein Bild, wie es aussieht und wie es eigentlich aussehen sollte.
Schon mal Danke,
Igel457
PS: Ich möchte ID3DXSprite nicht verwenden.