位置: 编程技术 - 正文

cocos2d::DrawPrimitives和DrawNode分别实现画板功能

编辑:rootadmin

推荐整理分享cocos2d::DrawPrimitives和DrawNode分别实现画板功能,希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:,内容如对您有帮助,希望把文章链接给更多的朋友!

才开始了解cocos2dx几天,只是觉得学习还是得边用边学,所以才想实现点什么,下面提到的有什么问题请指出,谢谢

我想实现简单的画板功能,就看了官方cpp_test的Node:Draw测试代码,遗憾的是我先看到的是DrawPrimitives,所以就研究了一下,简单的实现了我的功能,当我写的差不多的时候才发现DrawPrimitives应该尽量不再使用,而使用DrawNode来实现。

代码都写的差不多了,而且测试效果感觉还特别好,还是在这里留存一下吧:

之后代码统一换成DrawNode实现,代码竟然精简了如此之多,基本没有什么逻辑:

这里作一下对比,这里需要提到两个指标,GL Verts 和 GL Calls,概念的含义也是我朋友给我说的,前者是绘图的顶点数量,后者是opengl的调用次数,朋友还特意给我说了这两个&#;都是越小越好。

cocos2d::DrawPrimitives和DrawNode分别实现画板功能

当我使用DrawPrimitives实现画板的时候,我每画一个点,GL Verts &#;加1,GL Calls &#;加1,我每画一条线,GL Verts &#;加2(两个顶点),GL Calls &#;加1。

当我使用DrawNode实现的时候,我每画一个点,GL Verts &#;加1,我每画一条线,GL Verts 这个&#;是一直累加的(每次累加),GL Calls &#;始终为1。

可能这里也就从一定层面上说明DrawNode早晚会取代DrawPrimitives的原因,DrawPrimitives迟早会被淘汰。

但是这里也有一个疑问是,当使用DrawNode的为什么GL Verts累加的时候每次累加呢,按我上面给出的参数我怎么想都想不到啊?

这里也再多说明一个问题,当使用DrawPrimitives的时候,我是在draw实现绘画功能的,但是draw函数我后来发现是被循环调用的,应该是和刷新频率有关,就像MFC程序一样界面每隔一段时间刷新一次,当然这个时间很短,也也就导致了我看到的GL Verts 和 GL Calls 的&#;永远在我的计算当中,因为每次刷新这两个&#;都应该会重新计算的吧。若是按照刷新次数去计算这两个&#;,只会更大吧。

cocos2dx3.4 Label 创建一个空的Label,具体属性以后再设置staticLabel*create();使用系统API创建一个Label,参数包括一个初始字符串,字体(字体名称或字体文件),字体大小,在分维

[置顶] cocos2d-x 3.5版 关于Console模块 cocos2d-x引擎发展的日益完善,更新了很多小工具。这个Console模块是一个控制台调试工具,可以实现远程调试,用用还是蛮有意思的。看AppDelegate.cpp里面

CCEditBox实现原理 今天使用了EditBox,记录下几点重要的,可以说是CCEditBox实现原理1.CCEditBox继承CCControlButton,CCIMEDelegate2.CCEditBox实现了touchDownAction方法,并在CCEditBox::initWi

标签: cocos2d::DrawPrimitives和DrawNode分别实现画板功能

本文链接地址:https://www.jiuchutong.com/biancheng/368833.html 转载请保留说明!

上一篇:cocos2dx切换场景如何释放内存(cocos2dx怎么用)

下一篇:cocos2dx3.4 Label

  • 教你如何看懂SQL Server查询计划(教你如何看懂标签)

    可以从图片上看到,执行查询后,得到二个表格,上面的表格显示了查询的结果,下面的表格显示了查询的执行过程。相比本文的第一张图片,这张图片可能在直观上不太友好,但是,它能反映更多的信息,而且尤其在比较复杂的查询时,可能看起来更容易,因为对于复杂的查询,【执行计划】的步骤太多,图形方式会造成图形过大,不容易观察。而且这张执行过程表格能反映2个很有价值的数据(前二列)。

    还是来看看这个【执行过程表格】吧。我来挑几个重要的说一下。【Rows】:表示在一个执行步骤中,所产生的记录条数。(真实数据,非预期)【Executes】:表示某个执行步骤被执行的次数。(真实数据,非预期)【Stmt Text】:表示要执行的步骤的描述。【EstimateRows】:表示要预期返回多少行数据。

    在这个【执行过程表格】中,对于优化查询来说,我认为前三列是比较重要的。对于前二列,我上面也解释了,意思也很清楚。前二列的数字也大致反映了那些步骤所花的成本,对于比较慢的查询中,应该留意它们。【Stmt Text】会告诉你每个步骤做了什么事情。对于这种表格,它所要表达的其实是一种树型信息(一行就表示在图形方式下的一个节点),所以,我建议从最内层开始去读它们。做为示例,我来解释一下这张表格它所表达的执行过程。

    第5行:【Clustered Index Seek(OBJECT:([MyNorthwind].[dbo].[Customers].[PK_Customers]), SEEK:([MyNorthwind].[dbo].[Customers].[CustomerID]=[MyNorthwind].[dbo].[Orders].[CustomerID]) ORDERED FORWARD)】,意思是说,SQL Server在对表Customers做Seek操作,而且是按照【Clustered Index Seek】的方式,对应的索引是【PK_Customers】,seek的值来源于[Orders].[CustomerID]

    第4行:【Clustered Index Scan(OBJECT:([MyNorthwind].[dbo].[Orders].[PK_Orders]), WHERE:([MyNorthwind].[dbo].[Orders].[OrderDate]>='-- ::." class="img-responsive" alt="教你如何看懂SQL Server查询计划(教你如何看懂标签)">

    教你如何看懂SQL Server查询计划(教你如何看懂标签)

  • Ubuntu无法进入系统该怎么进入单用户模式?(ubuntu无法进入系统出现uid121)

    Ubuntu无法进入系统该怎么进入单用户模式?(ubuntu无法进入系统出现uid121)

  • linux下svn命令大全(linux svn操作)

    linux下svn命令大全(linux svn操作)

  • javaw.exe是什么进程 javaw进程查询(java.exe是指)

    javaw.exe是什么进程 javaw进程查询(java.exe是指)

  • js限制文本框输入长度两种限制方式(长度、字节数)(js限制输入字符长度)

    js限制文本框输入长度两种限制方式(长度、字节数)(js限制输入字符长度)

  • android:ellipsize的使用(android:ellipsize=

    android:ellipsize的使用(android:ellipsize="marquee")

  • JavaScript 构造函数 面相对象学习必备知识(javascript构造函数创建对象)

    JavaScript 构造函数 面相对象学习必备知识(javascript构造函数创建对象)

  • 装卸费属于什么费用
  • 工会经费按什么比例交
  • 包工包料怎么付款流程
  • 交强险可以打折扣吗
  • 需要安装的固定资产入账价值包括增值税吗
  • 出租土地使用权属于出租不动产吗
  • 什么样的个体需要纳税
  • 取得增值税专用发票要算税吗
  • 免抵退税怎么做账
  • 产品报废怎么做账
  • 第三方付款会计分录
  • 为别人开发票先收的税金怎么入帐?
  • 抵缴以前年度多缴所得税如何做会计分录?
  • 风险溢价包括哪些违约风险溢价 流动性风险溢价
  • 出口当月开票当月申报吗
  • 财产租赁合同印花税申报期限
  • 委托代征申报
  • 食堂费用计入应付职工薪酬吗
  • 房屋修缮费交增值税吗
  • 代扣代缴增值税附加税减免政策
  • 研发费用发票怎么入账
  • 企业所得税分期收款确认收入的时间政策
  • 核定征收的企业可以享受税收优惠吗
  • 生产性生物资产是什么意思
  • 什么情况下征收车船税
  • 所有者权是否益包括未交出资吗?
  • bios里硬盘是哪个
  • 主营业务收到的现金
  • 行纪合同的效力
  • 如何在数据透视表中增加一行
  • 当月收到服务成本票下个月才开出发票
  • 购入的无形资产
  • 公司准备上市到真正上市要多久
  • linux下4种kill某个用户所有进程的方法
  • 偷税漏税如何处罚
  • 发票已付款未认账怎么办
  • linix unix
  • 待摊费用和预提费用属于什么账户
  • 冰上的卷羽鹈鹕,希腊凯尔基尼湖 (© Guy Edwardes/Minden Pictures)
  • php socketio
  • json解析漏洞
  • aida理论包括哪些内容?
  • 一般纳税人只有进项怎么报税
  • 帝国cms建站教程
  • 织梦如何给栏目增加缩略图
  • 所得税汇算清缴需要调增的项目
  • mongodb开启远程连接
  • 担保公司代偿会上征信嘛
  • 以前年度多计提增值税
  • 研发费用凭证是什么样
  • 现代服务包括哪些内容是什么
  • 增值税发票遗失可以补开吗
  • sql2019远程连接
  • 销货方怎么开红字发票
  • sql2008降级2005
  • 劳务公司给包工头转账交税吗
  • 普通发票一般几个点
  • 贷款损失准备的会计核算
  • 工人晚上加班的说说心情
  • 资本公积金转增股本是利好吿
  • 计提社保公积金的账务处理
  • 新税法实施后以前的条例规章作废吗
  • 形成应收账款的会计分录
  • 购货方享受现金折扣增值税
  • 减免所得税优惠政策
  • mysql.sock在哪里
  • mysql文件存储路径设置
  • 安装双系统ubuntu和win
  • 1.cpp执行的是什么文件
  • windows8.1的设置在哪
  • win8.1怎么关闭防火墙
  • linux桌面设置界面在哪
  • cocos2dx用什么ide
  • opengl坐标范围
  • nodejs代码规范
  • 疯狂Android讲义(kotlin版)
  • Zero Clipboard js+swf实现的复制功能使用方法
  • jquery中的each方法
  • python语言及应用
  • 赞美税务干部对联大全集锦
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设