Einzelnen Beitrag anzeigen

Rollo62

Registriert seit: 15. Mär 2007
3.898 Beiträge
 
Delphi 12 Athens
 
#10

AW: FMX : Karte umdrehen als Animation

  Alt 25. Sep 2020, 16:01
Eigentlich sollte es gleich sein, das stimmt.
Aber oft verhält es sich dann doch Anders als gedacht.

Ich habe mal ein bischen damit rumgespielt, und dein Projekt leider etwas verunstaltet.
So geht es aber bei mir.
  1. Du hattest TImage als Container für die Bilder und als Anzeige benutzt.
    Ich habe jetzt das TImage nur als Container für die Bilder benutzt.
  2. Das ViewPort3D war on-the-fly erzeugt, ich habe hier das einmalig auf die Form gelegt und benutzt
  3. Die Objekte für das ViewPort3D erzeuge ich jetzt auch nur einmalig
  4. Nach dem Flip hattest Du das TImage überschrieben, was natürlich etwas überschrieben hat.
    (Deshalb TImage jetzt nur als Container, und ViewPort nur als Anzeige)
  5. Natürlich sollte man das on-the-fly machen können, aber ich habe ja nach der Ursache gesucht, und deshalb umgebaut.
  6. Das Rectangle im Vieport3D war nicht zentriert, wurde deshalb womöglich nicht angezeigt.
    Habe Folgendes eingebaut:
    R.Position.X := VP.Width / 2; //ADD:
    R.Position.Y := VP.Height / 2; //ADD:
  7. Ursächlich für die fehlende Animation war wohl das R.AnimateFloatWait(, die habe ich durch R.AnimateFloat( ersetzt.
    In FMX sollte möglichst Alles nebenläufig sein, deshalb hat das nicht funktioniert.
  8. Die Elemente habe ich mit Align und TLayout reingesetzt, damit immer der optimale Screenbereich angezeigt wird.
    Bei Position mit X/Y kann es durch Scaling und andere Effekte in die Hose gehen, ich nutze immer nur Align.Client, Top, Bottom, etc.
  9. Ich habe dir noch den Flip vor und zurück reingebaut, zum Test.

Sonst habe ich nicht weiter reingeschaut, ich denke das sollte man vielleicht noch etwas umbauen, um es wieder on-the-fly zu bekommen.
Habe aber ekeine Zeit mehr dafür.

(*) Änderungen mit //OFF: oder //ADD: markiert (ich hoffe Alle)
Angehängte Dateien
Dateityp: zip T368_CarFlip.zip (209,5 KB, 6x aufgerufen)
  Mit Zitat antworten Zitat