Vlákno názorů k článku SDL: Hry nejen pro Linux (13) od esmeralda - V prikladu pri obsluze zpravy MOUSEMOTION je napsano,...

  • Článek je starý, nové názory již nelze přidávat.
  • 14. 7. 2005 9:20

    esmeralda (neregistrovaný)
    V prikladu pri obsluze zpravy MOUSEMOTION je napsano, ze by zde bylo vhodne zavolat SDL_WarpMouse, ale ze je pak problem se zacyklenim. Problem lze vyresit jednoduse. V dane metode si nadefinujeme statickou promenou:
    static BOOL bWarpCalled = FALSE;

    pokud nekd v metode zavolame SDL_WarpMouse tak tuto promenou nastavime na TRUE. Zacatek obsluhy udalosti MOUSEMOTION by pak vypadal nasledovne:

    case SDL_MOUSEMOTION:
    if(bWarpCalled)
    {
    bWarpCalled = FALSE;
    return TRUE;
    }
    ....
    break;
  • 11. 8. 2005 19:43

    Michal Turek
    V podstate to same je i v prikladu ve clanku akorat se nepouziva promenna, ale testuje se poloha mysi - predpoklada se presouvani vzdy na stejne misto.

    Vase reseni nepocita se dvema validnimi udalostmi ve fronte - tj. prvni (validni) se osetri, druha (validni) se bude ignorovat a treti (nevalidni, vlivem osetreni prvni) bez problemu projde. Mozna by to chtelo vytvorit program a odzkouset pri praktickem provozu, ale moc bych na uspech nevsazel, udalosti pohybu mysi se generuji hodne casto. A bude-li se predpokladat trochu narocnejsi hra, domyslete si sami...