我要发帖 回复

正式会员

10

主题

55

积分

0

专家分

:

私信
发表时间 : 2011-8-25 16:57:47 | 浏览 : 999    评论 : 4
vp中高级培训--数字时钟的sample
上次的培训做了好些sample

其中有一个是对switch的简单应用,做一个数字时钟



[cpp]#include <vuAllocTracer.h>
#include <vuField.h>
#include <vpApp.h>
#include <vpObject.h>
#include <time.h>
#include <vsSwitch.h>
// our main application class
class myApp : public vpApp {

public:

        myApp()
    {}

   
    ~myApp()
    {
      
    }
   
   
    int configure() {

        
        vpApp::configure();


                m_pObj=vpObject::find("time");
                assert(m_pObj);

                hur1= (vsSwitch *) m_pObj->find_named("hour1");
                assert(hur1!=NULL);
                hur2= (vsSwitch *) m_pObj->find_named("hour2");
                assert(hur2!=NULL);
                min1= (vsSwitch *) m_pObj->find_named("min1");
                assert(min1!=NULL);
                min2= (vsSwitch *) m_pObj->find_named("min2");
                assert(min2!=NULL);
                sec1= (vsSwitch *) m_pObj->find_named("sec1");
                assert(sec1!=NULL);
                sec2= (vsSwitch *) m_pObj->find_named("sec2");
                assert(sec2!=NULL);

               

                       
        return vsgu::SUCCESS;

    }
        virtual void onKeyInput(vrWindow::Key key, int mod)
        {
                vpChannel *channel = *vpChannel::begin();

                switch (key) {

                                case vrWindow::KEY_F1:
                                
                                        break;
                                

                                default:
                                        vpApp::onKeyInput(key, mod);
                                        break;

                }

        }
        virtual int endFrame(void) const
        {      
               
                //获取当前时间
                tm *newtime;
                time_t ltime;

                time( &ltime );
                newtime = localtime( &ltime );


    //这里的setActiveMask函数的作用是什么??            

       hur1->setActiveMask(int(newtime->tm_hour/10));
                hur2->setActiveMask(int(newtime->tm_hour%10));
                min1->setActiveMask(int(newtime->tm_min/10));
                min2->setActiveMask(int(newtime->tm_min%10));
                sec1->setActiveMask(int(newtime->tm_sec/10));
                sec2->setActiveMask(int(newtime->tm_sec%10));
                return vpApp::endFrame();

        }
        


private:

        vpObject*   m_pObj;

        vsSwitch* hur1;
        vsSwitch* hur2;
        vsSwitch* min1;
        vsSwitch* min2;
        vsSwitch* sec1;
        vsSwitch* sec2;

   
        

};

int main(int argc, char *argv[])
{

        // initialize vega prime
        vp::initialize(argc, argv);

        // create my app instance
        myApp *app = new myApp;

        // load the acf file
        if (argc <= 1)
                app->define("pipeuv.acf");
        else app->define(argv[1]);

        // configure my app
        app->configure();

        // execute the main runtime loop
        app->run();

        // delete my app instance
        app->unref();

        // shutdown vega prime
        vp::shutdown();

        return 0;


}
[/cpp]

最近VR访客

huahuaxia 评论于2011-8-30 09:38:50
学习学习一下
jpucnpczjx 评论于2011-9-27 10:07:55
不太明白。
obuil 评论于2011-9-27 10:21:26
这个是  switch节点的功能

事先在switch节点下 挂上好多种节点,并控制好 每个子节点的 显隐状态

比如:
将 第1个 节点  显   和第3个节点  显  其余 为 隐藏————作为状态0   索引号为: 0
将 第2个 节点  显   和第4个节点  显  其余 为 隐藏————作为状态1   索引号为:1

那么 setActiveMask(0); 则 表示   切换到 状态0 的情况
那么 setActiveMask(1); 则 表示   切换到 状态1 的情况
UE4   |   虚幻引擎   |   Unity VR    |    Hololens
cyscsharp 评论于2011-11-2 14:37:32
恩,明白了,非常感谢!

手机版|VR开发网 统计 津ICP备18009691号
网安备12019202000257

GMT+8, 2022-8-10 07:33 AM

返回顶部