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);

        }

    }

  • 相关阅读:
    非root用户在linux下安装多个版本的CUDA和cuDNN(cuda 8、cuda 10.1 等)
    python相关总结
    可视化滤波器
    Ubuntu 和windows程序区别
    远程服务器运行代码相关
    Ubuntu
    jmeter学习(1)基础支持+安装部署
    python中eval方法的使用
    mysql学习(4)python操作数据库
    mysql学习(3)10045错误,连接不上数据库
  • 原文地址:https://www.cnblogs.com/daochong/p/5255540.html
Copyright © 2011-2022 走看看