Sleep()



  • hallo zusammen,

    möchte gerne eine Animation programmieren. Benutze dazu die Sleep - Funktion.
    Leider scheint mir diese das ganze System anzuhalten oder zu stören. Sobald man während der "Sleep - Phase" ein Fenster bewegt , bleibt das Programm hängen.

    Kennt jemand eine Alternative zu Sleep ?

    Danke schön



  • Um das blockieren zu verhinmdern, müßtest du das neuzeichnen per WM_TIMER auslösen:

    // definitions 
    const int TimerID_Animation = 1;
    
    // state:
    int m_frame = 0;
    
    // start animation:
    m_frame = 0;
    SetTimer(TimerID_Animation, 50, NULL); // update aller 50ms
    
    // WM_TIMER handler:
    if (id == TRimerID_Animation)
    {
      ++m_frame;
      Invalidate(); 
    }
    
    // WM_PAINT handler:
    DrawAnimationFrame(m_frame);
    

    Das ist aber für viele Anwendungen zu ungenau, und ohne zusätzlichen aufwand wird's auch flackern.

    Es gibt eine Menge andere Möglichkeiten - was für eine Animation soll es denn werden?



  • also ich arbeite hier an einem Lotto Spiel für die Uni. Auf jeden Fall habe ich nun beim Treffen einer Zahl 2 Linien die jeweils senkrecht und waagerecht auf die getroffene Zahl zielen. Die Linien " fahren " an diese Stelle. Das flackern hab ich mit CDC, CClientDC verhindert, also ich erstelle immer ein neues Bild. Nun habe ich das Problem mit der Sleep Funktion. Außerdem muss ich noch einen Timer für eine Art Countdown hinzufügen .



  • Naja, probier's mal mit obigem "Skelett". Könnte dafür gut genug sein.


Anmelden zum Antworten