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

        }

    }

  • 相关阅读:
    Spring 框架学些(二)Spring AOP
    Spring框架学习(一)
    java spring框架的HelloWord
    Windows下查看进程执行参数
    js的code标签显示插件
    初接触hbase数据库
    gpg加密使用
    .net core全球化配置、使用
    CSS添加本地字体
    2011年NOIP普及组复赛题解
  • 原文地址:https://www.cnblogs.com/daochong/p/5255540.html
Copyright © 2011-2022 走看看