cocos2d-x 让多个小球边界碰撞

cocos2d-x 让多个小球边界碰撞,第1张

概述上一篇博客写的是一个小球边界碰撞,这个博客是讲的是多个小球边界碰撞。 我们自己写一个class class ball :public Sprite{// :warning ball后面有,public后面没有(这里千万不要看)public: virtual bool init(); CREATE_FUNC(ball); virtual void update(fl

上一篇博客写的是一个小球边界碰撞,这个博客是讲的是多个小球边界碰撞。

我们自己写一个class

class ball :public   Sprite{// :warning ball后面有,public后面没有(这里千万不要看)public:    virtual bool init();    CREATE_FUNC(ball);    virtual voID update(float dt);//我们依然重写update函数达到我们自己需要的private:    float speedX,speedY;    Size  visibleSize;//这里是速度,和可视窗口的大小};

我们重写的函数

voID ball::update(float dt){    setposition(getpositionX()+speedX,getpositionY()+speedY);//我们先让小球运动这一次,其实我觉得应该在运动前判断是否越界的    float sw = visibleSize.wIDth,sh = visibleSize.height,bw = getContentSize().wIDth/@H_502_60@2,bh= getContentSize().height/@H_502_60@2;    float bx = getpositionX(),by = getpositionY();//我们把参数先保存起来    //判断是否越界,越界之后我们只需要把速度取负    if (bx <= bw || bx >= (sw - bw)){        speedX = -(speedX);    }    else if (by<=bh || by>=(sh-bh)){        speedY = -(speedY);    }

还有我们创建的球

bool ball::init(){

Sprite::initWithfile("ball.png");visibleSize = Director::getInstance()->getVisibleSize();//获得可视窗口的大小speedX = CCRANDOM_0_1() * 10 - 5;speedY= CCRANDOM_0_1() * 20- 5;//随机生成小球的位置scheduleUpdate();//更新return true;

}

bool HelloWorld::init(){    if (!Layercolor::initWithcolor(color4B(@H_502_60@155,@H_502_60@199,@H_502_60@255,@H_502_60@255)))    {        return false;    }   Size  visibleSize = Director::getInstance()->getVisibleSize();    Vec2 origin = Director::getInstance()->getVisibleOrigin();    for (int i = @H_502_60@0; i < @H_502_60@15; i++){        auto b = ball::create();        b->setposition(CCRANDOM_0_1() * @H_502_60@100 + @H_502_60@100 + CCRANDOM_0_1() * @H_502_60@100,CCRANDOM_0_1() * @H_502_60@200 + @H_502_60@100);        addChild(b);    }    return true;}
总结

以上是内存溢出为你收集整理的cocos2d-x 让多个小球边界碰撞全部内容,希望文章能够帮你解决cocos2d-x 让多个小球边界碰撞所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1078705.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-27
下一篇 2022-05-27

发表评论

登录后才能评论

评论列表(0条)

保存