c++ - Cocos2d-x 3.0 - 新类的 DrawNode()

标签 c++ cocos2d-x cocos2d-x-3.0

我会尽我所能解释它。我必须创建一类具有尺寸、颜色、 Action 序列和一些 bool 值等属性的点,因此我创建了一个 Dot.h 文件:

#include "cocos2d.h"
USING_NS_CC;
class Dot : public cocos2d::Layer{
public:
    virtual bool init();
    CREATE_FUNC(Whites);
private:
    bool circumstanceA = 1;
    bool circumstanceB = 0;
};

和一个 Dot.cpp 文件:

#include "Dot.h"
USING_NS_CC;
bool Dot::init()
{
    if ( !Layer::init() )
        return false;
    Size visibleSize = Director::getInstance()->getVisibleSize();
    Vec2 origin = Director::getInstance()->getVisibleOrigin();

    auto scale = ScaleTo::create(0.5, (visibleSize.height / 6) + (arc4random() % (visibleSize.height / 15)) - visibleSize.height /30);
    auto scale_ease = EaseBackOut::create(scale->clone());
    return true;
}

现在,这就是我被困的地方。我是 Cocos2d-x 语法的新手,作为一名程序员也是初学者,所以如果我的问题对你来说可能显得平庸,我很抱歉,但我是来学习的。

我需要的是能够像处理普通 Sprite 一样处理此类中的对象。

首先,我怎么说程序必须为每个 Dot 对象绘制一个点以“附加”到该对象?就像一个 Sprite 。只需添加类似

的内容
drawDot(Vec2((arc4random() % (int)(visibleSize.width - visibleSize.width / 6)) + visibleSize.width / 12, (arc4random() % (int)(visibleSize.width - visibleSize.width / 3.5)) + visibleSize.width / 7), 0, Color4F(255,255,255,255));

在 Dot.cpp 的 init() 中会太简单了:/

(我用来创建点的函数是正确的吗?我在网上找到了很多,但不知道哪个是最好的/最新的...)

当我声明一个新对象时,我应该在我的场景中这样做吗?喜欢

Dot *myDot = Dot::create();
myDot->drawDot(Vec2((arc4random() % (int)(visibleSize.width - visibleSize.width / 6)) + visibleSize.width / 12, (arc4random() % (int)(visibleSize.width - visibleSize.width / 3.5)) + visibleSize.width / 7), 0, Color4F(255,255,255,255));

但是这样编译不通...

我需要一个基础开始,请告诉我我走的路是否正确,或者我是否必须以不同的方式重新开始才能获得我的点对象...

非常感谢!

最佳答案

我在这里发现了我的错误:

http://discuss.cocos2d-x.org/t/how-to-properly-subclass-drawnode/19090

我只需要替换 Dot.h 中类声明中的实现

来自

class Dot : public cocos2d::Layer

class Dot : public cocos2d::DrawNode

还是谢谢! :)

关于c++ - Cocos2d-x 3.0 - 新类的 DrawNode(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30174759/

相关文章:

c++ - Qt设置QLineEdit的背景颜色

cocos2d-iphone - 传统的 update-render-loop 方法对 cocos2d/cocos2dx 来说是否过大?

c++ - cocos2d-x:无法从另一个线程加载 Sprite ,任何模式?

c++ - 如何在不干扰滚动的情况下创建带有按钮的 ScrollView ?

C++ 在 while 循环中使用 switch 时输出相同

java - 如何从 C 调用 Java 函数

c++ - 如何根据模板类中的 T 初始化类型的静态 const 成员?

compilation - 如何用 Marmalade 编译 Cocos2d-X?

android - Cocos2d-x onTouchMoved 在没有移动发生时调用

android - 在 cocos2d-x 中监听 Android 后退按钮