Coscos2d初学的一些知识点01

来源:互联网 发布:js随机数1到22 编辑:程序博客网 时间:2024/06/10 23:30

1.关于迪卡尔坐标系的计算例子

    

    //正方形

    auto rect=DrawNode::create();

    rect->drawRect(Vec2(0,0), Vec2(100,100), Color4F(1.0, 0, 0, 1.0));

    

    //

    auto dot=DrawNode::create();

    dot->drawDot(Vec2(0,0), 5, Color4F(1.0, 1.0, 1.0, 1.0));

    rect->addChild(dot);

    addChild(rect);

    

    rect ->setPosition(visibleSize/2);

    dot ->setPosition(Vec2(1,1));//本地空间

    

    //设置中心旋转

    rect->setContentSize(Size(100,100));

    rect->setAnchorPoint(Vec2(1,1));

    

    //旋转

    schedule([dot,rect](float f){

        rect ->setRotation(rect->getRotation()+1);

        auto p=dot->convertToWorldSpace(Vec2(0,0));

        CCLOG("%f,%f",p.x,p.y);

    },"Test");

2.关于三角函数的例子

      

/*

    _angle =0;

    

    auto dot=DrawNode::create();

    dot->drawDot(Vec2(0,0), 5, Color4F(1.0, 1.0, 1.0, 1.0));

    addChild(dot);

    

    dot->setPosition(visibleSize/2);

    

    //

    

    schedule([dot,this,visibleSize](float f){

        dot->setPositionY(visibleSize.height/2+sin(_angle)*100.0);

                          _angle+=0.1;

        dot->setPositionX(visibleSize.width/2+cos(_angle)*100.0);

                         },"Test");

    */




3.关于向量的例子

       

_direction.set(random(-1.0f,1.0f),random(-1.0f,1.0f));

    _direction.normalize();

    

    auto dot=DrawNode::create();

    dot->drawDot(Vec2(0,0),5,Color4F(1.0,1.0,1.0,1.0));

    addChild(dot);

    

    dot->setPosition(visibleSize/2);

    

    schedule([dot,this,visibleSize](float f){

        auto p=dot->getPosition();

        

        if(p.x<-0||p.x>visibleSize.width){

            _direction.x*=-1;

        }elseif(p.y<0||p.y>visibleSize.height){

            _direction.y*=-1;

        }

        

        dot->setPosition(p+_direction*10);

        

    },"Test");



原创粉丝点击