Einzelnen Beitrag anzeigen

Benutzerbild von igel457
igel457

Registriert seit: 31. Aug 2005
1.622 Beiträge
 
FreePascal / Lazarus
 
#9

Re: [Andorra] GUI wird nicht richtig dargestellt

  Alt 7. Sep 2008, 21:14
Komisch... Dein Code würde mich wirklich mal interessieren. Ich arbeite gerade auch an einem Tile-Basierten spiel mit der SpriteEngineEx und habe hinsichtlich der Darstellungsfehler ähnliche Probleme wie du.

Schau mal was passiert wenn du die folgende Routine in AdDraws.pas austauschst:

Delphi-Quellcode:
procedure TAdCustomImage.SetSrcRegion;
var
  texw, texh: integer;
  rectw, recth: integer;
  mat: TAdMatrix;

const
  add = 0.5;
  
begin
  texw := Texture.Texture.Width;
  texh := Texture.Texture.Height;

  rectw := FSrcRect.Right - FSrcRect.Left;
  recth := FSrcRect.Bottom - FSrcRect.Top;

  mat := AdMatrix_Identity;

  //Scale the texture
  mat[0,0] := (rectw) / texw;
  mat[1,1] := (recth) / texh;

  //Translate the texture
  mat[2,0] := (FSrcRect.Left + add) / texw;
  mat[2,1] := (FSrcRect.Top + add) / texh;

  AdMesh.TextureMatrix := mat;
end;
Edit: Spiele am besten auch mal ein wenig mit der Konstante "Add" herum - auch negative Werte.
Edit2: Entferne add aus dem Skalierungsteil der Matrix. Habs im Code gemacht.
Andreas
"Sollen sich auch alle schämen, die gedankenlos sich der Wunder der Wissenschaft und Technik bedienen, und nicht mehr davon geistig erfasst haben als die Kuh von der Botanik der Pflanzen, die sie mit Wohlbehagen frisst." - Albert Einstein
  Mit Zitat antworten Zitat