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

        }

    }

  • 相关阅读:
    c# linq.Where+Func<object,bool>筛选数据
    【转】深入线程安全容器的实现方法
    c# 泛型+反射
    c# List<接口>小技巧
    winfrom的右击菜单项事件中如何获取关联控件的引用
    ASP.NET 1.0
    让包含GridView的div或panel的滚动条自己拉到底部怎么做?
    微软的IE中调试JavaScript的工具下载链接
    ASP.NET调试启动默认浏览器如何设置
    C# WinForm的PictureBox控件图片的拉伸或收缩方式跟随着控件的大小
  • 原文地址:https://www.cnblogs.com/daochong/p/5255540.html
Copyright © 2011-2022 走看看