cocos2dx 3.x(绘制线条)
//
// 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(绘制线条)的更多相关文章
- iOS 动画绘制线条颜色渐变的折线图
效果图 .................... 概述 现状 折线图的应用比较广泛,为了增强用户体验,很多应用中都嵌入了折线图.折线图可以更加直观的表示数据的变化.网络上有很多绘制折线图的demo,有 ...
- 使用html5 Canvas绘制线条(直线、折线等)
使用html5 Canvas绘制直线所需的CanvasRenderingContext2D对象的主要属性和方法(有"()"者为方法)如下: 属性或方法 基本描述 strokeSty ...
- GDI基础(1):绘制线条和图形
1. 绘制一个像素点:SetPixel(). 绘制直线:MoveTo(),LineTo(). 绘制多个首尾相连的线:Polyline(). 绘制矩形:FrameRect(),Rectangle(),F ...
- html5的canvas绘制线条,moveTo和lineTo详解
今天在看html5,里面新增的属性有一个canvas,它相当于一个画布你可以用js在里面画你想要的效果!我在w3c的手册里面看到用moveTo和lineTo绘制线条讲的不是很清楚,尤其是moveTo和 ...
- canvas绘制线条详解
canvas详解----绘制线条 <!DOCTYPE html> <html> <head> <title>canvas详解</title> ...
- Python:matplotlib绘制线条图
线型图是学习matplotlib绘图的最基础案例.我们来看看具体过程: 下面我们将两条曲线绘制到一个图形里: 可以看到这种方式下,两个线条共用一个坐标轴,并且自动区分颜色. plot方法的核心是 ...
- HTML5<canvas>标签:使用canvas元素在网页上绘制线条和圆(1)
什么是 Canvas? HTML5 的 canvas 元素使用 JavaScript 在网页上绘制图像. 画布是一个矩形区域,您可以控制其每一像素. canvas 拥有多种绘制路径.矩形.圆形.字符以 ...
- canvas基础入门(二)绘制线条、三角形、七巧板
复杂的内容都是有简单的线条结合而成的,想要绘制出复杂好看的内容先从画直线开始 canvas绘制直线先认识几个函数 beginPath():开始一条路径,或重置当前的路径 moveTo(x,y):用于规 ...
- canvas详解----绘制线条
<!DOCTYPE html> <html> <head> <title>canvas详解</title> </head> &l ...
随机推荐
- 洛谷 P1223排队接水【贪心】
题目描述 有n个人在一个水龙头前排队接水,假如每个人接水的时间为Ti,请编程找出这n个人排队的一种顺序,使得n个人的平均等待时间最小. 输入输出格式 输入格式: 输入文件共两行,第一行为n:第二行分别 ...
- [No0000159]C# 7 中的模范和实践
关键点 遵循 .NET Framework 设计指南,时至今日,仍像十年前首次出版一样适用. API 设计至关重要,设计不当的API大大增加错误,同时降低可重用性. 始终保持"成功之道&qu ...
- centos7安装Apache
1.下载安装包wget http://mirrors.hust.edu.cn/apache/httpd/httpd-2.4.37.tar.gz 2.解压tar zxvf httpd-2.4.37.ta ...
- jcgrid
1.jcgrid实现 <span class="JcGrid" id="MyGrid" listdata="Rds.List.UserList& ...
- 【编译原理】c++实现自下而上语法分析及中间代码(四元式)生成
写在前面:本博客为本人原创,严禁任何形式的转载!本博客只允许放在博客园(.cnblogs.com),如果您在其他网站看到这篇博文,请通过下面这个唯一的合法链接转到原文! 本博客全网唯一合法URL:ht ...
- Win10+Ubuntu18.04 UEFI启动模式SSD+HDD
新手操作徒手安装Ubuntu,踩坑无数. 分享一篇好的经验:https://blog.csdn.net/xrinosvip/article/details/80428133(下附原博客) 踩坑大集合: ...
- [ovs] openvswitch 入门
https://www.sdnlab.com/sdn-guide/14747.html http://sdnhub.cn/index.php/openv-switch-full-guide/ http ...
- linux下nodejs的安装
一.下载 https://nodejs.org/en/download/ 然后,解压 二.配置环境变量 配置环境变量:在/etc/profile文件新增:export NODE_HOME=/usr/l ...
- 修改.net core MVC默认端口
默认端口是5000,更改端口修改launchSettings.json.如图:
- 【PyQt5-Qt Designer】浅谈关闭窗口
1.关闭全部窗口(主窗口+所有的子窗口) 在逻辑界面中写入 sys.exit(0) 2.关闭子窗口(其他窗口不关闭) self.close()