AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi Andorra verwackelt Bilder
Thema durchsuchen
Ansicht
Themen-Optionen

Andorra verwackelt Bilder

Ein Thema von Neutral General · begonnen am 26. Jan 2008 · letzter Beitrag vom 10. Apr 2008
Antwort Antwort
Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#1

Andorra verwackelt Bilder

  Alt 26. Jan 2008, 11:48
Hi,

Ich habe ein Sprite erstellt mit Andorra2D und frage im OnMove die Pfeiltasten ab und bewege das Sprite so. Das Problem ist das das Sprite zwischen zwei Zuständen hin und her hüpft. Obwohl ich keine Animation eingestellt habe und nur ein einziges Bild vorliegt.

Im Anhang ist mal ein animiertes GIF bei dem man erkennen kann was passiert.

Gruß
Neutral General
Angehängte Grafiken
 
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."
  Mit Zitat antworten Zitat
Benutzerbild von igel457
igel457

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

Re: Andorra verwackelt Bilder

  Alt 31. Jan 2008, 18:38
Ich kann mir nur vorstellen, das dies durch Fließkomma Ungenauigkeiten bei den Texturkoordinaten/der Position zustande kommt. Sonst sehe ich eigentlich kein Problem.
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
Namenloser

Registriert seit: 7. Jun 2006
Ort: Karlsruhe
3.724 Beiträge
 
FreePascal / Lazarus
 
#3

Re: Andorra verwackelt Bilder

  Alt 10. Apr 2008, 15:57
Hallo,
hat sich da mal was getan? Ich habe das Problem nämlich auch. Und schön ist das nicht grad...
Aber ansonsten ein großes Lob für die Engine!
  Mit Zitat antworten Zitat
Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#4

Re: Andorra verwackelt Bilder

  Alt 10. Apr 2008, 16:17
Hi,

Musst versuchen das die Länge/Breite so einzustellen das es eine 2er Potenz ist.

Gruß
Neutral General
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."
  Mit Zitat antworten Zitat
Namenloser

Registriert seit: 7. Jun 2006
Ort: Karlsruhe
3.724 Beiträge
 
FreePascal / Lazarus
 
#5

Re: Andorra verwackelt Bilder

  Alt 10. Apr 2008, 16:46
Und wie soll ich das machen? Ich dachte, die Engine streckt das ganze automatisch auf ^2-Größen und schneidet es zu. Meine jedenfalls, so eine Stelle im code gesehen zu haben. Muss man dafür vielleicht eine betsimmte Option aktivieren? Mipmaps vielleicht?
  Mit Zitat antworten Zitat
Benutzerbild von igel457
igel457

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

Re: Andorra verwackelt Bilder

  Alt 10. Apr 2008, 17:04
Hallo,

ich kann mir selbst den Fehler nicht erklären. Und wie schon richtig vermutet wurde, streckt Andorra 2D die Grafiken automatisch zu einer 2^n Größe.

Wann genau tritt der Fehler auf?

Edit: Ups...
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
Benutzerbild von 3_of_8
3_of_8

Registriert seit: 22. Mär 2005
Ort: Dingolfing
4.129 Beiträge
 
Turbo Delphi für Win32
 
#7

Re: Andorra verwackelt Bilder

  Alt 10. Apr 2008, 17:06
Du meinst wohl eher 2^n.
Manuel Eberl
„The trouble with having an open mind, of course, is that people will insist on coming along and trying to put things in it.“
- Terry Pratchett
  Mit Zitat antworten Zitat
Namenloser

Registriert seit: 7. Jun 2006
Ort: Karlsruhe
3.724 Beiträge
 
FreePascal / Lazarus
 
#8

Re: Andorra verwackelt Bilder

  Alt 10. Apr 2008, 18:56
Kann es daran liegen, dass ich die Textur sozusagen manuell [edit]reinlade[/edit]? Ich habe nämlich ein eigenes Dateiformat für die Spritelisten, weil ich Zusatzinformationen speichern muss. Daher kann ich die AdImagelist nicht benutzen.

Ich geb dir mal etwas Code, vielleicht kannst du es damit ja reproduzieren oder mir sagen, welche Funktion ich vergessen habe aufzurufen.
Delphi-Quellcode:
procedure TSgMap.LoadSkinsFromFile(const FileName: string);
var
  i: integer;
  tmpabmp: tadbitmap;
begin
  // Skinliste laden
  fskinlist.LoadFromFile(filename);
  if assigned(fparent) then
  begin
    // Temporäres Andorrabitmap erstellen, um die textur zu laden:
    tmpabmp := tadbitmap.Create;
    for i := 0 to fSkinlist.Count - 1 do
    begin
      if not assigned(fskinlist[i].sprite) then
        fskinlist[i].Sprite := TAdImage.Create(fParent.adDraw);

      // fskinlist[i].Image ist ein TBitmap32, das das Sprite enthält (inkl. Alphachannel)
      Bitmap32IntoAndorraBitmap(fskinlist[i].Image,tmpabmp);
      fSkinList[i].Sprite.Texture.Texture.LoadFromBitmap(tmpabmp,
        fParent.adDraw.GetTextureParams(fskinlist[i].Sprite.Texture.BitDepth));
      fskinlist[i].Sprite.Restore;
    end;
    freeandnil(tmpabmp);
  end;
end;

// Code teilweise von Andorra-Units abgeschaut:
procedure Bitmap32IntoAndorraBitmap(aBmp32:TBitmap32;aAndorraBmp:TAdBitmap);
var
  x,y:integer;
  sl1:PColor32;
  sl2:pRGBARec;
begin
  aAndorraBmp.ReserveMemory(aBmp32.width,aBmp32.height);
  sl2 := aAndorraBmp.ScanLine;
  sl1 := @(aBmp32.Bits^[0]);
  for y := 0 to aBmp32.Height-1 do
  begin
    for x := 0 to aBmp32.Width - 1 do
    begin
      tcolor32(sl2^) := sl1^;
      inc(sl2);
      inc(sl1);
    end;
  end;
end;
Achja, übrigens Danke für den bug in deiner Engine, denn das genauere Betrachten des Codes hatte den Nebeneffekt, dass ich Codeteile gefunden habe, die völlig sinnlos waren (ältere Versuche) und konnte so den Code auf c.a. 1/3 reduzieren, würde ich sagen. xD
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:41 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz