zoukankan      html  css  js  c++  java
  • cocos2d-x之多个移动的小球

    MoveBalls.hpp:

    #ifndef MoveBalls_hpp

    #define MoveBalls_hpp

    #include <stdio.h>

    #include "cocos2d.h"

    #include "Ball.hpp"

    USING_NS_CC;

    class MoveBalls:public LayerColor{

    public:

        virtual bool init();

        CREATE_FUNC(MoveBalls);

        

        virtual void update(float dt);

        static Scene * createScene();

        

    private:

    //    Ball* ball;

        cocos2d::Vector<Ball*> balls;

        void addBall(float x,float y);

    };

    #endif /* MoveBalls_hpp */

    MoveBalls.cpp:

    #include "MoveBalls.hpp"

    Scene * MoveBalls::createScene(){

        auto s=Scene::create();

        

        auto l=MoveBalls::create();

        s->addChild(l);

        

        return s;

    }

    bool MoveBalls::init(){

        LayerColor::initWithColor(Color4B(255,255,255,255));

        

        addBall(100,100);

        addBall(100,200);

        addBall(100,300);

        addBall(100,400);

        

        scheduleUpdate();

        

        return true;

    }

    void MoveBalls::update(float dt){

    //    ball->move();

        for (auto it=balls.begin();it!=balls.end();it++) {

            (*it)->move();

        }

    }

    void MoveBalls::addBall(float x,float y){

        auto ball=Ball::create();

        ball->setPosition(x,y);

        addChild(ball);

        

        balls.pushBack(ball);

    }

    Ball.hpp:

    #ifndef Ball_hpp

    #define Ball_hpp

    #include <stdio.h>

    #include "cocos2d.h"

    USING_NS_CC;

    class Ball:public Sprite{

    public:

        virtual bool init();

        

        void move();

        

        CREATE_FUNC(Ball);

        

    private:

        float speedX;

        Size visibleSize;

    };

    #endif /* Ball_hpp */

    Ball.cpp:

    #include "Ball.hpp"

    bool Ball::init(){

        Sprite::initWithFile("GOODS_3201_64.png");

        visibleSize=Director::getInstance()->getVisibleSize();

        speedX=3;

        

        return true;

    }

    void Ball::move(){

        setPositionX(getPositionX()+speedX);

        

        if (getPositionX()>visibleSize.width) {

            setPositionX(0);

        }

    }

  • 相关阅读:
    PHP获取指定的时间戳
    Thinkphp实现excel数据的导出
    ThinkPHP按月统计订单总金额
    PHP获取本月起始和终止时间戳
    ThinkPHP 判断一个更新操作是否成功
    js 通过浏览器直接打开应用程序(IOS,Android)并判断浏览器内核
    ThinkPHP 后台管理删除、编辑操作(通过数组传ID)
    PHP面向对象
    【转】Chrome调试鼠标悬停后出现的元素
    【重要】Selenium2+python自动化44-元素定位参数化(find_element)
  • 原文地址:https://www.cnblogs.com/daochong/p/5255540.html
Copyright © 2011-2022 走看看