Changeset 1903


Ignore:
Timestamp:
Sep 10, 2012, 1:59:11 PM (7 years ago)
Author:
sam
Message:

neercs: move menu drawing to the game tick instead of draw tick.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/tools/neercs/video/render.cpp

    r1898 r1903  
    560560{
    561561    Entity::TickGame(seconds);
    562 }
    563 
    564 void Render::Pause()
    565 {
    566     m_pause=!m_pause;
    567 }
    568 
    569 void Render::TickDraw(float seconds)
    570 {
    571     /* keyboard manager */
    572     if (Input::WasReleased(Key::Escape))
    573     {
    574         Ticker::Shutdown();
    575     }
    576     if (Input::WasPressed(Key::F1))
    577     {
    578         m_setup = !m_setup;
    579         if (m_setup) setup_n = calc_item_length();
    580         sync_flag = true;
    581         sync_angle = main_angle;
    582     }
    583     if (Input::WasPressed(Key::F2))
    584     {
    585         m_polygon = !m_polygon;
    586         polygon_fillmode = (m_polygon)?GL_FILL:GL_LINE;
    587         glPolygonMode(GL_FRONT, polygon_fillmode);
    588     }
    589    if (Input::WasPressed(Key::Tab))
    590     {
    591         if (m_setup)
    592         {
    593             setup_switch = !setup_switch;
    594             setup_n = calc_item_length();
    595             setup_cursor = (!setup_switch?setup_option_i:setup_item_i) - (!setup_switch?setup_option_p:setup_item_p);
    596         }
    597     }
    598     if (Input::WasPressed(Key::Up))
    599     {
    600         if (m_setup)
    601         {
    602             if (!setup_switch)
    603             {
    604                 if (setup_cursor > 0)
    605                 {
    606                     setup_cursor--;
    607                 }
    608                 else
    609                 {
    610                     if ((setup_option_p > 0) && setup_cursor == 0) setup_option_p--;
    611                 }
    612                 if (setup_option_i > 0)
    613                 {
    614                     setup_option_i--;
    615                 }
    616                 else
    617                 {
    618                     setup_option_i = setup_option_n - 1;
    619                     setup_option_p = setup_option_n - setup_h;
    620                     setup_cursor = setup_h - 1;
    621                 }
    622                 setup_item_i = 0;
    623             }
    624             else
    625             {
    626                 setup_item_i--;
    627                 if (setup_item_i < 0) setup_item_i = setup_n;
    628             }
    629         }
    630     }
    631     if (Input::WasPressed(Key::Down))
    632     {
    633         if (m_setup)
    634         {
    635             if (!setup_switch)
    636             {
    637                 if (setup_cursor < setup_h - 1)
    638                 {
    639                     setup_cursor++;
    640                 }
    641                 else
    642                 {
    643                     if ((setup_option_p + setup_h < setup_option_n) && setup_cursor == setup_h - 1) setup_option_p++;
    644                 }
    645                 if (setup_option_i < setup_option_n - 1)
    646                 {
    647                     setup_option_i++;
    648                 }
    649                 else
    650                 {
    651                     setup_option_i = 0;
    652                     setup_option_p = 0;
    653                     setup_cursor = 0;
    654                 }
    655                 setup_item_i = 0;
    656             }
    657             else
    658             {
    659                 if (setup_cursor < setup_h - 1)
    660                 {
    661                     setup_cursor++;
    662                 }
    663                 else
    664                 {
    665                     if ((setup_item_p + setup_h < setup_n) && setup_cursor == setup_h - 1) setup_item_p++;
    666                 }
    667                 if (setup_item_i < setup_n)
    668                 {
    669                     setup_item_i++;
    670                 }
    671                 else
    672                 {
    673                     setup_item_i = 0;
    674                     setup_item_p = 0;
    675                     setup_cursor = 0;
    676                 }
    677             }
    678         }
    679     }
    680     if (Input::WasPressed(Key::PageUp))
    681     {
    682         if (m_setup)
    683         {
    684             if (!setup_switch)
    685             {
    686                 setup_option_i -= setup_cursor;
    687                 setup_cursor = 0;
    688                 setup_item_i = 0;
    689             }
    690             else
    691             {
    692                 setup_item_i -= setup_cursor;
    693                 setup_cursor = 0;
    694             }
    695         }
    696     }
    697     if (Input::WasPressed(Key::PageDown))
    698     {
    699         if (m_setup)
    700         {
    701             if (!setup_switch)
    702             {
    703                 setup_option_i += setup_h - setup_cursor - 1;
    704                 setup_cursor = setup_h - 1;
    705                 setup_item_i = 0;
    706             }
    707             else
    708             {
    709                 setup_item_i += setup_n - setup_cursor - 1;
    710                 setup_cursor = setup_h - 1;
    711             }
    712         }
    713     }
    714     if (Input::WasPressed(Key::Left))
    715     {
    716         if (m_setup && setup_switch)
    717         {
    718             setup_var[setup_item_key].w -= setup_var[setup_item_key].z;
    719             if (setup_var[setup_item_key].w < setup_var[setup_item_key].x) setup_var[setup_item_key].w = setup_var[setup_item_key].x;
    720             UpdateVar();
    721         }
    722     }
    723     if (Input::WasPressed(Key::Right))
    724     {
    725         if (m_setup && setup_switch)
    726         {
    727             setup_var[setup_item_key].w += setup_var[setup_item_key].z;
    728             if (setup_var[setup_item_key].w > setup_var[setup_item_key].y) setup_var[setup_item_key].w = setup_var[setup_item_key].y;
    729             UpdateVar();
    730         }
    731     }
    732     if (Input::WasPressed(Key::Home))
    733     {
    734         if (m_setup && setup_switch)
    735         {
    736             setup_var[setup_item_key].w = setup_var[setup_item_key].x;
    737             UpdateVar();
    738         }
    739     }
    740     if (Input::WasPressed(Key::End))
    741     {
    742         if (m_setup && setup_switch)
    743         {
    744             setup_var[setup_item_key].w = setup_var[setup_item_key].y;
    745             UpdateVar();
    746         }
    747     }
    748     if (Input::WasPressed(Key::Return))
    749     {
    750         flash_flag = true;
    751         flash_angle = main_angle;
    752     }
    753 
    754     Entity::TickDraw(seconds);
    755 
    756     if (!m_ready)
    757     {
    758         CreateGLWindow();
    759         text_render->Init();
    760         m_ready = true;
    761     }
    762 
    763     // timer
    764     if (!m_pause)
    765     {
    766         timer += seconds;
    767         main_angle = timer * 100.0f * PID;
    768     }
    769     if (sync_flag)
    770     {
    771         angle = (main_angle - sync_angle) * sync_speed;
    772         sync_value = 1.0f - sinf(angle);
    773         if (angle > 90.0f * PID)
    774         {
    775             sync_value = 0;
    776             sync_flag = false;
    777         }
    778     }
    779     if (beat_flag)
    780     {
    781         angle = (main_angle - beat_angle) * beat_speed;
    782         beat_value = 1.0f - sinf(angle);
    783         if (angle > 90.0f * PID)
    784         {
    785             beat_value = 0;
    786             beat_flag = false;
    787         }
    788     }
    789     if (flash_flag)
    790     {
    791         angle = (main_angle - flash_angle) * flash_speed;
    792         flash_value = 1.0f - sinf(angle);
    793         if (angle > 90.0f * PID)
    794         {
    795             flash_value = 0;
    796             flash_flag = false;
    797         }
    798     }
    799     if (fade_flag)
    800     {
    801         angle = (main_angle - fade_angle) * fade_speed;
    802         fade_value = 1.0f - sinf(angle);
    803         if (angle > 90.0f * PID)
    804         {
    805             fade_value = 0;
    806             fade_flag = false;
    807         }
    808     }
     562
    809563    /* draw setup */
    810564    if (m_setup)
     
    879633            }
    880634        }
    881     /* informations */
    882     int w = caca_get_canvas_width(m_caca);
    883     int h = caca_get_canvas_height(m_caca);
    884     caca_set_color_argb(m_caca, 0xfff, 0x000);
    885     caca_printf(m_caca, 0, 0, "%i*%i", w, h);
     635
     636        /* informations */
     637        int w = caca_get_canvas_width(m_caca);
     638        int h = caca_get_canvas_height(m_caca);
     639        caca_set_color_argb(m_caca, 0xfff, 0x000);
     640        caca_printf(m_caca, 0, 0, "%i*%i", w, h);
     641    }
     642}
     643
     644void Render::Pause()
     645{
     646    m_pause=!m_pause;
     647}
     648
     649void Render::TickDraw(float seconds)
     650{
     651    /* keyboard manager */
     652    if (Input::WasReleased(Key::Escape))
     653    {
     654        Ticker::Shutdown();
     655    }
     656    if (Input::WasPressed(Key::F1))
     657    {
     658        m_setup = !m_setup;
     659        if (m_setup) setup_n = calc_item_length();
     660        sync_flag = true;
     661        sync_angle = main_angle;
     662    }
     663    if (Input::WasPressed(Key::F2))
     664    {
     665        m_polygon = !m_polygon;
     666        polygon_fillmode = (m_polygon)?GL_FILL:GL_LINE;
     667        glPolygonMode(GL_FRONT, polygon_fillmode);
     668    }
     669   if (Input::WasPressed(Key::Tab))
     670    {
     671        if (m_setup)
     672        {
     673            setup_switch = !setup_switch;
     674            setup_n = calc_item_length();
     675            setup_cursor = (!setup_switch?setup_option_i:setup_item_i) - (!setup_switch?setup_option_p:setup_item_p);
     676        }
     677    }
     678    if (Input::WasPressed(Key::Up))
     679    {
     680        if (m_setup)
     681        {
     682            if (!setup_switch)
     683            {
     684                if (setup_cursor > 0)
     685                {
     686                    setup_cursor--;
     687                }
     688                else
     689                {
     690                    if ((setup_option_p > 0) && setup_cursor == 0) setup_option_p--;
     691                }
     692                if (setup_option_i > 0)
     693                {
     694                    setup_option_i--;
     695                }
     696                else
     697                {
     698                    setup_option_i = setup_option_n - 1;
     699                    setup_option_p = setup_option_n - setup_h;
     700                    setup_cursor = setup_h - 1;
     701                }
     702                setup_item_i = 0;
     703            }
     704            else
     705            {
     706                setup_item_i--;
     707                if (setup_item_i < 0) setup_item_i = setup_n;
     708            }
     709        }
     710    }
     711    if (Input::WasPressed(Key::Down))
     712    {
     713        if (m_setup)
     714        {
     715            if (!setup_switch)
     716            {
     717                if (setup_cursor < setup_h - 1)
     718                {
     719                    setup_cursor++;
     720                }
     721                else
     722                {
     723                    if ((setup_option_p + setup_h < setup_option_n) && setup_cursor == setup_h - 1) setup_option_p++;
     724                }
     725                if (setup_option_i < setup_option_n - 1)
     726                {
     727                    setup_option_i++;
     728                }
     729                else
     730                {
     731                    setup_option_i = 0;
     732                    setup_option_p = 0;
     733                    setup_cursor = 0;
     734                }
     735                setup_item_i = 0;
     736            }
     737            else
     738            {
     739                if (setup_cursor < setup_h - 1)
     740                {
     741                    setup_cursor++;
     742                }
     743                else
     744                {
     745                    if ((setup_item_p + setup_h < setup_n) && setup_cursor == setup_h - 1) setup_item_p++;
     746                }
     747                if (setup_item_i < setup_n)
     748                {
     749                    setup_item_i++;
     750                }
     751                else
     752                {
     753                    setup_item_i = 0;
     754                    setup_item_p = 0;
     755                    setup_cursor = 0;
     756                }
     757            }
     758        }
     759    }
     760    if (Input::WasPressed(Key::PageUp))
     761    {
     762        if (m_setup)
     763        {
     764            if (!setup_switch)
     765            {
     766                setup_option_i -= setup_cursor;
     767                setup_cursor = 0;
     768                setup_item_i = 0;
     769            }
     770            else
     771            {
     772                setup_item_i -= setup_cursor;
     773                setup_cursor = 0;
     774            }
     775        }
     776    }
     777    if (Input::WasPressed(Key::PageDown))
     778    {
     779        if (m_setup)
     780        {
     781            if (!setup_switch)
     782            {
     783                setup_option_i += setup_h - setup_cursor - 1;
     784                setup_cursor = setup_h - 1;
     785                setup_item_i = 0;
     786            }
     787            else
     788            {
     789                setup_item_i += setup_n - setup_cursor - 1;
     790                setup_cursor = setup_h - 1;
     791            }
     792        }
     793    }
     794    if (Input::WasPressed(Key::Left))
     795    {
     796        if (m_setup && setup_switch)
     797        {
     798            setup_var[setup_item_key].w -= setup_var[setup_item_key].z;
     799            if (setup_var[setup_item_key].w < setup_var[setup_item_key].x) setup_var[setup_item_key].w = setup_var[setup_item_key].x;
     800            UpdateVar();
     801        }
     802    }
     803    if (Input::WasPressed(Key::Right))
     804    {
     805        if (m_setup && setup_switch)
     806        {
     807            setup_var[setup_item_key].w += setup_var[setup_item_key].z;
     808            if (setup_var[setup_item_key].w > setup_var[setup_item_key].y) setup_var[setup_item_key].w = setup_var[setup_item_key].y;
     809            UpdateVar();
     810        }
     811    }
     812    if (Input::WasPressed(Key::Home))
     813    {
     814        if (m_setup && setup_switch)
     815        {
     816            setup_var[setup_item_key].w = setup_var[setup_item_key].x;
     817            UpdateVar();
     818        }
     819    }
     820    if (Input::WasPressed(Key::End))
     821    {
     822        if (m_setup && setup_switch)
     823        {
     824            setup_var[setup_item_key].w = setup_var[setup_item_key].y;
     825            UpdateVar();
     826        }
     827    }
     828    if (Input::WasPressed(Key::Return))
     829    {
     830        flash_flag = true;
     831        flash_angle = main_angle;
     832    }
     833
     834    Entity::TickDraw(seconds);
     835
     836    if (!m_ready)
     837    {
     838        CreateGLWindow();
     839        text_render->Init();
     840        m_ready = true;
     841    }
     842
     843    // timer
     844    if (!m_pause)
     845    {
     846        timer += seconds;
     847        main_angle = timer * 100.0f * PID;
     848    }
     849    if (sync_flag)
     850    {
     851        angle = (main_angle - sync_angle) * sync_speed;
     852        sync_value = 1.0f - sinf(angle);
     853        if (angle > 90.0f * PID)
     854        {
     855            sync_value = 0;
     856            sync_flag = false;
     857        }
     858    }
     859    if (beat_flag)
     860    {
     861        angle = (main_angle - beat_angle) * beat_speed;
     862        beat_value = 1.0f - sinf(angle);
     863        if (angle > 90.0f * PID)
     864        {
     865            beat_value = 0;
     866            beat_flag = false;
     867        }
     868    }
     869    if (flash_flag)
     870    {
     871        angle = (main_angle - flash_angle) * flash_speed;
     872        flash_value = 1.0f - sinf(angle);
     873        if (angle > 90.0f * PID)
     874        {
     875            flash_value = 0;
     876            flash_flag = false;
     877        }
     878    }
     879    if (fade_flag)
     880    {
     881        angle = (main_angle - fade_angle) * fade_speed;
     882        fade_value = 1.0f - sinf(angle);
     883        if (angle > 90.0f * PID)
     884        {
     885            fade_value = 0;
     886            fade_flag = false;
     887        }
    886888    }
    887889
Note: See TracChangeset for help on using the changeset viewer.