//

//  MainScene.hpp

//  helloworld

//

//  Created by apple on 16/9/19.

//

//

#ifndef MainScene_hpp

#define MainScene_hpp

#include <stdio.h>

#include "cocos2d.h"

using namespace cocos2d;

//定义一个场景类

class MainScene : public cocos2d::Layer{

private:

// 成员变量(私有的)

cocos2d::Sprite *sprite;//定义一个精灵成员变量

Size size;

public:

virtual bool init(); // 虚函数,返回值为布尔类型,没有函数

static cocos2d::Scene* createScene();//static是一个类方法返回场景

void menuCallback(Ref* pSender);

CREATE_FUNC(MainScene);

//重载draw方法

virtual void draw(Renderer *renderer, const Mat4 &transform, uint32_t flags) override;

protected:

//自定义draw实现

void onDraw(const cocos2d::Mat4 &transform, bool transformUpdated);

cocos2d::CustomCommand _customCommand;

};

#endif /* MainScene_hpp */

//

//  MainScene.cpp

//  helloworld

//

//  Created by apple on 16/9/19.

//

//

#include "MainScene.hpp"

USING_NS_CC;

Scene * MainScene::createScene()

{

auto scene = Scene::create();

//    CCScene * scene = CCScene::create();// 创建场景

//创建层

MainScene *layer = MainScene::create();

scene->addChild(layer);

return scene;

}

bool MainScene::init(){

if (!Layer::init()) {

return false;

}

//获取屏幕大小

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

//auto size = Director::getInstance()->getWinSize();

return true;

}

void MainScene::draw(Renderer *renderer, const Mat4 &transform, uint32_t flags)

{

_customCommand.init(_globalZOrder);

_customCommand.func = CC_CALLBACK_0(MainScene::onDraw, this, transform, flags);

renderer->addCommand(&_customCommand);

}

void MainScene::onDraw(const cocos2d::Mat4 &transform, bool transformUpdated)

{

//利用Stack缓存

Director *director = Director::getInstance();

//CCASSERT(nullptr != director, "Director is null when setting matrix stack");

director->pushMatrix(MATRIX_STACK_TYPE::MATRIX_STACK_MODELVIEW);

director->loadMatrix(MATRIX_STACK_TYPE::MATRIX_STACK_MODELVIEW, transform);

CHECK_GL_ERROR_DEBUG();

//画边框

DrawPrimitives::setDrawColor4B(255, 255, 255, 255);

glLineWidth(10);

Vec2 vertices[] = {Vec2(100, 100), Vec2(300, 100), Vec2(300, 300), Vec2(100, 300)};

DrawPrimitives::drawPoly(vertices, 4, true);

CHECK_GL_ERROR_DEBUG();

//绘制停止,释放

director->popMatrix(MATRIX_STACK_TYPE::MATRIX_STACK_MODELVIEW);

}

void MainScene::menuCallback(Ref* pSender)

{

}

cocos2dx 3.x(绘制线条)的更多相关文章

  1. iOS 动画绘制线条颜色渐变的折线图

    效果图 .................... 概述 现状 折线图的应用比较广泛,为了增强用户体验,很多应用中都嵌入了折线图.折线图可以更加直观的表示数据的变化.网络上有很多绘制折线图的demo,有 ...

  2. 使用html5 Canvas绘制线条(直线、折线等)

    使用html5 Canvas绘制直线所需的CanvasRenderingContext2D对象的主要属性和方法(有"()"者为方法)如下: 属性或方法 基本描述 strokeSty ...

  3. GDI基础(1):绘制线条和图形

    1. 绘制一个像素点:SetPixel(). 绘制直线:MoveTo(),LineTo(). 绘制多个首尾相连的线:Polyline(). 绘制矩形:FrameRect(),Rectangle(),F ...

  4. html5的canvas绘制线条,moveTo和lineTo详解

    今天在看html5,里面新增的属性有一个canvas,它相当于一个画布你可以用js在里面画你想要的效果!我在w3c的手册里面看到用moveTo和lineTo绘制线条讲的不是很清楚,尤其是moveTo和 ...

  5. canvas绘制线条详解

    canvas详解----绘制线条 <!DOCTYPE html> <html> <head> <title>canvas详解</title> ...

  6. Python:matplotlib绘制线条图

    线型图是学习matplotlib绘图的最基础案例.我们来看看具体过程:  下面我们将两条曲线绘制到一个图形里:   可以看到这种方式下,两个线条共用一个坐标轴,并且自动区分颜色. plot方法的核心是 ...

  7. HTML5<canvas>标签:使用canvas元素在网页上绘制线条和圆(1)

    什么是 Canvas? HTML5 的 canvas 元素使用 JavaScript 在网页上绘制图像. 画布是一个矩形区域,您可以控制其每一像素. canvas 拥有多种绘制路径.矩形.圆形.字符以 ...

  8. canvas基础入门(二)绘制线条、三角形、七巧板

    复杂的内容都是有简单的线条结合而成的,想要绘制出复杂好看的内容先从画直线开始 canvas绘制直线先认识几个函数 beginPath():开始一条路径,或重置当前的路径 moveTo(x,y):用于规 ...

  9. canvas详解----绘制线条

    <!DOCTYPE html> <html> <head> <title>canvas详解</title> </head> &l ...

随机推荐

  1. 洛谷P1908 逆序对【递归】

    题目:https://www.luogu.org/problemnew/show/P1908 题意:给定一个数组,求逆序对个数. 思路: 是一个很经典的题目了.通过归并排序可以求逆序对个数. 现在有一 ...

  2. web标准 浏览器介绍 开发工具介绍 HTML介绍 HTML颜色介绍 规范 HTML结构详解 {前端之前端初识}

    前端之前端初识   前端初识 本节目录 一 web标准 二 浏览器介绍 三 开发工具介绍 四 HTML介绍 五 HTML颜色介绍 六 规范 七 HTML结构详解 一 web标准 web准备介绍: 1. ...

  3. MySQL 聚合函数以及 优先级

    1 from  2 where  3 group by      4 having     5select    6distinct  7 order by  8 limit sum 求和   avg ...

  4. Codeforces 1132C - Painting the Fence - [前缀和优化]

    题目链接:https://codeforces.com/contest/1132/problem/C 题意: 栅栏有 $n$ 个节,有 $q$ 个人可以雇佣来涂栅栏,第 $i$ 个人可以涂第 $l_i ...

  5. arcengine直连sde

    搞了半天,找了好多资料,实验好多次,终于解决.参考资料:http://www.cnblogs.com/gaxin/p/5777864.html

  6. Isomorphism 同构

    小结: 1.两个有限维度的向量空间,在同一数域下,是同构的 等价于 它们维数相等. Isomorphism 同构 0.1.8 Isomorphism. If U and V are vector sp ...

  7. day1_接口测试基础

    一.什么是接口: 接口:一般分为两种,程序内部接口和程序对外接口 系统对外接口:系统与外部沟通,比如我们平时用的app,网站进行数据处理的时候都是通过接口调用后端服务器的数据. 程序内部接口:程序内部 ...

  8. Django 之Redis配置

    目的:访问服务器频繁的读取数据库 ,会耗损服务器性能及降低用户体验,为此引入Redis 1,安装 redis(2.10.6兼容性更好) pip install redis 2,settings.py配 ...

  9. python摸爬滚打之day07----基本数据类型补充, 集合, 深浅拷贝

    1.补充 1.1  join()字符串拼接. strs = "阿妹哦你是我的丫个哩个啷" nw_strs = "_".join(strs) print(nw_s ...

  10. iptables编写规则

    [-t 表名]:该规则所操作的哪个表,可以使用filter.nat等,如果没有指定则默认为filter -A:新增一条规则,到该规则链列表的最后一行 -I:插入一条规则,原本该位置上的规则会往后顺序移 ...