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

    发现问题:update()函数不能用virtual前缀

    主:

    bool HelloWorld::init()

    {

        if ( !LayerColor::initWithColor(Color4B(255,255,255,255)))

        {

            return false;

        }

        

        for (int i=0;i<10;i++) {

            auto b=Ball::create();

            b->setPosition(CCRANDOM_0_1()*200+400,CCRANDOM_0_1()*200+400);

            addChild(b);

        }

        

        return true;

    }

    hpp:

    #include <stdio.h>

    #include "cocos2d.h"

    using namespace cocos2d;

    class Ball:public Sprite

    {

    public:

        virtual bool init();

        void update(float dt);

        CREATE_FUNC(Ball);

    private:

        float speedX,speedY;

        Size visibleSize;

    };

    cpp:

    #include "Ball.hpp"

    bool Ball::init(){

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

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

        speedX=CCRANDOM_0_1()*10-5;//-5到5之间

        speedY=CCRANDOM_0_1()*10-5;

        

        scheduleUpdate();

        return true;

    }

    void Ball::update(float dt){

        setPosition(getPositionX()+speedX,getPositionY()+speedY);

        

        if (getPositionX()<getContentSize().width/2) {

            speedX=fabs(speedX);

        }

        if (getPositionX()>visibleSize.width-getContentSize().width/2) {

            speedX=-fabs(speedX);

        }

        if (getPositionY()<getContentSize().height/2) {

            speedY=fabs(speedY);

        }

        if (getPositionY()>visibleSize.height-getContentSize().height/2) {

            speedY=-fabs(speedY);

        }

    }

  • 相关阅读:
    .net winForm 实现类似qq 弹出新闻
    创业11年,我填过的5个大坑!(转)
    java中基本类型封装对象所占内存的大小(转)
    Java中如何创建进程(转)
    javac
    深入剖析Java中的装箱和拆箱(转)
    敏捷开发流程总结
    解决ccSvcHst.exe CPU占用超50%的问题,及其缘由
    JSP/ Servlet常见的中文乱码原因
    黑马程序猿-面向对象-多态
  • 原文地址:https://www.cnblogs.com/daochong/p/5257060.html
Copyright © 2011-2022 走看看