Einzelnen Beitrag anzeigen

Florian H

Registriert seit: 30. Mär 2003
Ort: Mühlacker
1.043 Beiträge
 
Delphi 6 Professional
 
#200

Re: [Spiel] Flos DrawBall [neue Version: 06.01.09]

  Alt 6. Jan 2009, 18:02
Danke dir!

Die Lava ist ein Graus, ich hab da schon stundenlang rumprobiert, aber es ist mir nicht gelungen, animierte Lava zu erstellen, die realistisch aussieht, nicht auf jedem Tile gleich und einen hübschen weichen Übergang nach außen hin hat ... werds aber auf jeden Fall weiter versuchen

Hm, das ist wirklich komisch mit opengL/DirectX.
Habe es bisher nur auf dem Rechner meiner Mutter getestet, da war das Verhalten wie bei mir (openGL ok, directX Grafikfehler/Schmierer durch leeres TexureSurface).

Ich habe auch schon Ewigkeiten im Code nach irgendwelchen Besonderheiten oder Abweichungen von der TextureSurface-Demo geschaut, aber ich mache eigentlich nichts seltsames.

Also mal konkret:

Mein Code, der mit openGL funktioniert, sieht so aus (gekürzt auf wesentliche Stellen, die direkt mit dem TextureSurface oder AdDraw zutun haben):
Delphi-Quellcode:
  
// onCreate
AdDraw := TAdDraw.Create(self);
AdDraw.DllName := 'AndorraOGL.dll';

if not AdDraw.Initialize then
  halt;
 
adTextureSurface := TAdTextureSurface.Create(addraw);
adTextureSurface.SetSize(768, 596);
//// Stelle 1 ////
adTextureSurface.ClearSurface(0);

// ... onIdle / Zeichenroutine
AdDraw.BeginScene;

if backgroundRedraw then // Hintergrund wurde geändert -> neu zeichnen
begin
  adTextureSurface.ClearSurface(0);
  menuImages.Items[0].Draw(adTextureSurface, 96, 96, 0);
  // usw...
  backgroundReDraw := false;
end;

adTextureSurface.Image.Draw(adDraw, 0, 0, 0);

// andere Zeichenoperationen direkt aufs adDraw

AdDraw.EndScene;
AdDraw.Flip;

Probleme:
Wenn ich einfach die openGL-DLL durch die DX-Dll ersetze, erhalte ich sowas wie in Bild 1: kompletter Müll im TS, ich kann dort auch nicht zeichnen.
Wenn ich an //// Stelle 1 //// allerdings adBackground.Texture.Clear; einfüge, erhalte ich zumindest das Ergebnis aus Bild 2: ich kann zeichnen und es wird angezeigt, allerdings nur genau in dem Zeichenschritt, wo ich auch auf das TS male. Danach ist das TS offenbar wieder leer/transparent, dadurch zieht alles Schlieren.


Hoffe, das hilft dir irgendwie weiter :/
Miniaturansicht angehängter Grafiken
fehler2_191.jpg   fehler1_721.jpg  
Florian Heft
  Mit Zitat antworten Zitat