为什么用cocos2d-x在白色背景图层上绘制红色矩形Sprite如此困难?

纳雷克

该死的!我想通过cocos2d-x做世界上最简单的事情,但是我遇到了问题。我需要在一个红色矩形上放置一个白色图层。首先,我找到以便为必须从中派生的图层着色cocos2d::LayerColorLayerColor::initWithColor(Color4B(255, 255, 255, 255))然后我了解到要绘制矩形,我应该重写这样的draw方法:

void HelloWorld::draw()
{
DrawPrimitives::setDrawColor4F(1.0f, 0.0f, 0.0f, 1.0f);
DrawPrimitives::drawRect(Point(100,100), Point(400,400));
}

这些东西是分开工作的,但是它们不能一起工作。我猜想当我覆盖绘图时,所有绘图都会减少到这两个函数调用,因此图层的背景会变成黑色。这个最简单的事情的解决方案在哪里?

编辑:

我试图LayerColor::draw像这样调用覆盖的对象:

void HelloWorld::draw()
{
    LayerColor::draw();
DrawPrimitives::setDrawColor4F(1.0f, 0.0f, 0.0f, 1.0f);
DrawPrimitives::drawRect(Point(100,100), Point(400,400));
}

没有帮助。试图从sprite和addChild派生到这样的层:

class BoardView : public Sprite 
{
public:
    BoardView() : Sprite() 
    {

    }

    virtual void draw() override 
    {
        DrawPrimitives::setDrawColor4F(1.0f, 0.0f, 0.0f, 1.0f);
        DrawPrimitives::drawRect(Point(100,100), Point(400,400));
    }
};

但这也不起作用!我该怎么做最简单的事情?我错过了什么?

老虎编码

我在这里找到了测试版的测试:http : //www.cocos2d-x.org/reference/native-cpp/V3.0alpha0/d1/d89/namespacecocos2d_1_1_draw_primitives.html#a196155c1b3410485d0b77379acf22e64

我创建了一个简单的测试类来对其进行测试:

#ifndef __ccxtest__DrawTest__
#define __ccxtest__DrawTest__

#include <iostream>
#include "cocos2d.h"

class DrawTestLayer : public cocos2d::Layer
{
public:
    CREATE_FUNC(DrawTestLayer);

protected:
    void draw();
};

#endif /* defined(__ccxtest__DrawTest__) */

并执行:

#include "DrawTest.h"

USING_NS_CC;

void DrawTestLayer::draw()
{
glLineWidth(1);
DrawPrimitives::setDrawColor4B(255,255,255,255);
DrawPrimitives::setPointSize(1);

// Anti-Aliased
glEnable(GL_LINE_SMOOTH);

// filled poly
glLineWidth(1);
Point filledVertices[] = { Point(10,120), Point(50,120), Point(50,170), Point(25,200), Point(10,170) };
DrawPrimitives::drawSolidPoly(filledVertices, 5, Color4F(0.5f, 0.5f, 1, 1 ) );
}

最后在父场景/图层的初始化中:

auto myLayer = DrawTestLayer::create();
this->addChild(myLayer);

结果是一个5点多边形。我在一个通用的hello world项目中对此进行了测试,并显示了背景图像,颜色,字体等。

编辑:如何显示/隐藏图形:

void DrawTestLayer::draw()
{
    if ( drawFlagBoolean ) // controlled by timer or scheduled action
    {
        // draw code here
        // every frame primitives are drawn
    }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

为什么用cocos2d-x在白色背景图层上绘制红色矩形Sprite如此困难?

来自分类Dev

为什么不能覆盖cocos2d :: sprite的draw方法?

来自分类Dev

cocos2d sprite永远重复播放动画

来自分类Dev

Cocos2d Sprite工作表占用大量内存

来自分类Dev

Sprite框架动画Cocos2d 3.0

来自分类Dev

重复使用相同的Sprite Cocos2d 3.0

来自分类Dev

Sprite Kit的size属性的Cocos2d等效项

来自分类Dev

Cocos2d v3:如何绘制圆弧?

来自分类Dev

从背景返回时,cocos2d动画停止

来自分类Dev

如何播放背景音乐(Cocos2d iOS)

来自分类Dev

Cocos2D schedule更新SpriteKit上的CCNode

来自分类Dev

新的Cocos2D 3.x API?

来自分类Dev

新的Cocos2D 3.x API?

来自分类Dev

在Sprite Cocos2d上添加box2d主体

来自分类Dev

为什么用matplotlib.imshow绘制的matplotlib 2D直方图/热图与我的坐标轴不匹配?

来自分类Dev

在matplotlib中,为什么用细线绘制更快?

来自分类Dev

在Coco2d-x(c ++)上重写Cocos2d(objective-c)

来自分类Dev

为什么用numpy计算2 x 2矩阵的特征向量会使我的Python会话崩溃?

来自分类Dev

“如何使用Cocos2D 2.X制作基于图块的游戏”使用cocos2d V3制作本教程

来自分类Dev

Cocos2d 2.x:我似乎无法更改3GS的启动图像!它仍然显示Cocos2d橙色默认图像

来自分类Dev

Cocos2d x如何在不同的CCNods上同时对动作进行排序?

来自分类Dev

迁移到cocos2d v3后,背景图片缩放2倍

来自分类Dev

暂停的Cocos2d实现-游戏场景/图层问题

来自分类Dev

如何在cocos2d中拍摄用户定义的矩形区域的屏幕截图

来自分类Dev

Swift版本的Cocos2d代码:sprite1.colorRGBA

来自分类Dev

在Cocos2D V3中单击时展开的Sprite按钮

来自分类Dev

如何通过SpriteKit(如Cocos2D)使Sprite倾斜/剪切?

来自分类Dev

不断向上和向下移动Sprite Cocos2d 3.0

来自分类Dev

Cocos2d:组成将包含多个Sprite的对象的最佳方法

Related 相关文章

  1. 1

    为什么用cocos2d-x在白色背景图层上绘制红色矩形Sprite如此困难?

  2. 2

    为什么不能覆盖cocos2d :: sprite的draw方法?

  3. 3

    cocos2d sprite永远重复播放动画

  4. 4

    Cocos2d Sprite工作表占用大量内存

  5. 5

    Sprite框架动画Cocos2d 3.0

  6. 6

    重复使用相同的Sprite Cocos2d 3.0

  7. 7

    Sprite Kit的size属性的Cocos2d等效项

  8. 8

    Cocos2d v3:如何绘制圆弧?

  9. 9

    从背景返回时,cocos2d动画停止

  10. 10

    如何播放背景音乐(Cocos2d iOS)

  11. 11

    Cocos2D schedule更新SpriteKit上的CCNode

  12. 12

    新的Cocos2D 3.x API?

  13. 13

    新的Cocos2D 3.x API?

  14. 14

    在Sprite Cocos2d上添加box2d主体

  15. 15

    为什么用matplotlib.imshow绘制的matplotlib 2D直方图/热图与我的坐标轴不匹配?

  16. 16

    在matplotlib中,为什么用细线绘制更快?

  17. 17

    在Coco2d-x(c ++)上重写Cocos2d(objective-c)

  18. 18

    为什么用numpy计算2 x 2矩阵的特征向量会使我的Python会话崩溃?

  19. 19

    “如何使用Cocos2D 2.X制作基于图块的游戏”使用cocos2d V3制作本教程

  20. 20

    Cocos2d 2.x:我似乎无法更改3GS的启动图像!它仍然显示Cocos2d橙色默认图像

  21. 21

    Cocos2d x如何在不同的CCNods上同时对动作进行排序?

  22. 22

    迁移到cocos2d v3后,背景图片缩放2倍

  23. 23

    暂停的Cocos2d实现-游戏场景/图层问题

  24. 24

    如何在cocos2d中拍摄用户定义的矩形区域的屏幕截图

  25. 25

    Swift版本的Cocos2d代码:sprite1.colorRGBA

  26. 26

    在Cocos2D V3中单击时展开的Sprite按钮

  27. 27

    如何通过SpriteKit(如Cocos2D)使Sprite倾斜/剪切?

  28. 28

    不断向上和向下移动Sprite Cocos2d 3.0

  29. 29

    Cocos2d:组成将包含多个Sprite的对象的最佳方法

热门标签

归档