AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Delphi fortlaufende Animationen - ohne Freeze
Thema durchsuchen
Ansicht
Themen-Optionen

fortlaufende Animationen - ohne Freeze

Ein Thema von Muellermilchtrinker · begonnen am 12. Feb 2012 · letzter Beitrag vom 13. Feb 2012
Antwort Antwort
Benutzerbild von Muellermilchtrinker
Muellermilchtrinker

Registriert seit: 1. Aug 2009
447 Beiträge
 
Delphi 2009 Professional
 
#1

fortlaufende Animationen - ohne Freeze

  Alt 12. Feb 2012, 16:43
Hallo alle miteinander,

ich programmiere gerade (mal wieder?) einen LED Cube Simulator mit OpenGL. Dies soll einfach dazu da sein um ein paar Animation auf einem großen LED Cube (12³) darzustellen. Diese sollen dann später mal auf einem echten LED Cube in der Größe dargestellt werden.

Nun habe ich bis jetzt folgendes: OpenGL Ausgabe steht und der LED Cube steht selber in einem Array dar. Nun geht es aber darum die Animation drauf abzuspielen. Diese sollten natürlich auch pausierbar sein. Nun wollte ich einen Timer verwenden und dann, je nachdem welche Animation ausgewählt ist, eine procedure aufrufen. Der Timer sollte dafür da sein, um die Animationen fortlaufend zu haben.

Jetzt ist aber das Problem, dass wenn ich Sleep anwenden möchte sich das ganze Programm festhängt. Ich habe nun ein einfaches Blinken hinbekommen in dem ich in der Prozedur eine Variable hochzähle und dann je nach dem ob an oder aus den LED Cube aus oder an schalte. Dies müsste dann mit globalen Variablen geschehen, weil man ja Variablen nicht so direkt in einem Timer initialisieren kann.

Meine Frage nun, wie ich das am elegantesten lösen kann, dass ich eine fortlaufende Animation habe, die den das Programm nicht festhängen lasse und gleichzeitig auch Sleep unterstützen und am besten mit wenig globalen Variablen auskommt.
Chuck Norris doesn't need backups. He just uploads his files and lets the world mirror them.
  Mit Zitat antworten Zitat
Benutzerbild von MGC
MGC

Registriert seit: 15. Mai 2008
Ort: Helsa
106 Beiträge
 
Turbo Delphi für Win32
 
#2

AW: fortlaufende Animationen - ohne Freeze

  Alt 12. Feb 2012, 17:10
Wozu benötigst Du denn Sleep, etwa zum Pausieren der Animation?
Wenn Du die Animation angehalten hast, kannst Du ja entweder den Timer anhalten oder falls dieser noch weitere Aufgaben erfüllt eine Bool'sche Variable verwenden die bei jedem Timer-Ereignis abgefragt wird und entsprechend die Animation dargestellt wird oder auch nicht.
Marc
Programmieren ist wie Chemie:
1. Wenn man alles einfach nur zusammenschmeisst kommt es zu unerwarteten Reaktionen.
2. Wenn es plötzlich anfängt zu qualmen, muss man eben noch mal von vorn anfangen.
  Mit Zitat antworten Zitat
Benutzerbild von Muellermilchtrinker
Muellermilchtrinker

Registriert seit: 1. Aug 2009
447 Beiträge
 
Delphi 2009 Professional
 
#3

AW: fortlaufende Animationen - ohne Freeze

  Alt 12. Feb 2012, 17:59
Sleep dafür, um das aktuelle Bild anzuzeigen.
Beispiel:
Delphi-Quellcode:
LED Cube an
500ms warten
LED Cube aus
500ms warten
Und das halt im Timer, und damit dann pausieren oder fortsetzen.
Chuck Norris doesn't need backups. He just uploads his files and lets the world mirror them.
  Mit Zitat antworten Zitat
Benutzerbild von MGC
MGC

Registriert seit: 15. Mai 2008
Ort: Helsa
106 Beiträge
 
Turbo Delphi für Win32
 
#4

AW: fortlaufende Animationen - ohne Freeze

  Alt 13. Feb 2012, 08:32
und warum stellst Du den Timer nicht auf 500 ms und verwendest ein Flag das Dir angibt ob die LED an, bzw. aus ist oder ob die Animation pausiert ist?
Marc
Programmieren ist wie Chemie:
1. Wenn man alles einfach nur zusammenschmeisst kommt es zu unerwarteten Reaktionen.
2. Wenn es plötzlich anfängt zu qualmen, muss man eben noch mal von vorn anfangen.
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#5

AW: fortlaufende Animationen - ohne Freeze

  Alt 13. Feb 2012, 09:33
Es ist schon komisch, dass Delphi-Referenz durchsuchenSleep den aktuellen Thread schlafen legt
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Benutzerbild von MGC
MGC

Registriert seit: 15. Mai 2008
Ort: Helsa
106 Beiträge
 
Turbo Delphi für Win32
 
#6

AW: fortlaufende Animationen - ohne Freeze

  Alt 13. Feb 2012, 11:22
Es ist schon komisch, dass Delphi-Referenz durchsuchenSleep den aktuellen Thread schlafen legt
Diese Doppeldeutigkeit ist herrlich.

//Edit:
Eigentlich wollte ich an dieser Stelle noch einen Vorschlag zu den oben von mir vorgeschlagenen Flags machen. Bitte jetzt nicht alles in wilden globalen Variablen unübersichtöich anlegen, sondern lieber eine gut durchdachte Bitmaske nutzen. Wie's geht findet man hier.
Marc
Programmieren ist wie Chemie:
1. Wenn man alles einfach nur zusammenschmeisst kommt es zu unerwarteten Reaktionen.
2. Wenn es plötzlich anfängt zu qualmen, muss man eben noch mal von vorn anfangen.

Geändert von MGC (13. Feb 2012 um 11:42 Uhr)
  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 14:19 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz