位置: 编程技术 - 正文

cocos2D-x初探学习笔记(31)2.1新特性CCPhysicsSprite(cocos2dx官方教程)

编辑:rootadmin

推荐整理分享cocos2D-x初探学习笔记(31)2.1新特性CCPhysicsSprite(cocos2dx官方教程),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:cocos2dx4.0入门,cocos2dx官方教程,cocos2dx官方教程,cocos2dx官方教程,cocos2d-x教程,cocos2dx4.0教程,cocos2dx入门,cocos2dx入门,内容如对您有帮助,希望把文章链接给更多的朋友!

本篇文章继续介绍cocos2D-x 2.1的新特性:CCPhysicsSprite 和CCPhysicsDebugNode,从名称上就可以看出来这两个类是和物理引擎相关的类,和之前介绍的CCDrawNode一样,CCPhysicsSprite 没有提供新功能,而是对之前功能的一个封装。

CCPhysicsSprite 定义一个物理类绑定的精灵,它继承自CCSprite精灵类,它的使用来看一下TestCpp项目,CCPhysicsSprite 支持目前cocos2D-x中的box2D和chipmunk两个物理引擎,但是你只能使用定义预编译的宏变量CC_ENABLE_CHIPMUNK_INTEGRATION 或CC_ENABLE_CHIPMUNK_INTEGRATION中的一个来使用box2D或chipmunk其中的一个,你可以通过两种方式来设置CC_ENABLE_CHIPMUNK_INTEGRATION 或CC_ENABLE_CHIPMUNK_INTEGRATION的值,一种是在xcode的building setting中设置,如图所示

另一种是在Config.h文件中设置,如图所示

对于TestCpp这个项目,这里需要说一句就是把引擎变成box2D后编译项目会报错,是因为没有对ChipmunkTest项目加入预编译的判断,对于该部分,我做了修改,下载地址: 和CCPhysicsDebugNode的使用,CCPhysicsSprite 只需要按照CCSprite的方法定义,然后将之前按照Chipmunk方式定义的body设置给精灵就可以了,代码如下:

CCPhysicsSprite *sprite = CCPhysicsSprite::createWithTexture(m_pSpriteTexture, CCRectMake(posx, posy, , ));

parent->addChild(sprite);

sprite->setBody(body);

sprite->setPosition(pos);

可以打开2.1 之前的版本的相同位置的文件(名称可能不同),可以看到当时我们要自己定义一个精灵类并且完成坐标的对应,有了CCPhysicsSprite之后就会更方便的使用。

CCPhysicsDebugNode是为了更方便debug的类,将它设置为显示之后,在场景内定义的精灵的碰撞形状块就显示出来了,如图所示

在这个例子中,点击Toggle debug就可以切换CCPhysicsDebugNode的显示和隐藏,定义CCPhysicsDebugNode的代码如下:

cocos2D-x初探学习笔记(31)2.1新特性CCPhysicsSprite(cocos2dx官方教程)

m_pDebugLayer = CCPhysicsDebugNode::create(m_pSpace);

this->addChild(m_pDebugLayer, Z_PHYSICS_DEBUG);

传入的参数是cpSpaceNew类实例,默认创建的一个CCPhysicsDebugNode是显示的,可以通过setVisible函数来控制它的显示与隐藏,需要说明的是CCPhysicsDebugNode目前只支持Chipmunk。

CCPhysicsSprite在Box2D中的使用和Chipmunk类似(在TestCpp中的Box2DTest中),只是多了一个函数需要设置,就是PTMRatio,即“cocos2D-x中的像素到box2D中的meters单位的转换比率”

CCPhysicsSprite *sprite = CCPhysicsSprite::createWithTexture(m_pSpriteTexture,CCRectMake( * idx, * idy,,));

parent->addChild(sprite);

sprite->setBody(body);

sprite->setPTMRatio(PTM_RATIO);

sprite->setPosition( ccp( p.x, p.y) );

在Box2DTest中还保留着之前为了使用box2D而定义的精灵类的代码,可以对比一下现在的使用,确实是方便很多了

对于CCPhysicsSprite的使用,有一些限制:

1)Scale 和Skew属性是忽略的,也就是说setScale或者setSkew后碰撞的形状块大小等不会改变。

2)Position 和rotation属性是有效的,如果你手动设置Position 和rotation,负责控制碰撞的形状块的位置和旋转角度会改变。

3)一个项目中同时只能支持Chipmunk和Box2D中的一个

如有错误,请多多指教,欢迎大牛拍砖

cocos2D-x初探学习笔记()-cocos2d-x & javascript跨平台初体验 近日,cocos2d家族开始了版本的联合发布,也就是说从cocos2d-x的2.1版本开始,终于可以实现广大开发者期盼已久的一套代码横跨ios,android和html5的梦想了

cocos2D-X源码分析之从cocos2D-X学习OpenGL(2)----QUAD_COMMAND 个人原创,欢迎转载,转载请注明原文地址

cocos2D-X源码分析之从cocos2D-X学习OpenGL(1)----cocos2D-X渲染结构 个人原创,欢迎转载,转载请注明原文地址

标签: cocos2dx官方教程

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

上一篇:cocos2d-x初探学习笔记(30)2.1新特性之CCClippingNode(cocos2dx官方教程)

下一篇:cocos2D-x初探学习笔记(32)-cocos2d-x & javascript跨平台初体验(cocos 2d x)

  • 收到所得税汇算退税计入补贴收入
  • 外贸企业的出口收入免征其地方水利建设基金
  • 采购的固定资产验收无误后直接安装使用
  • 工业企业会计怎么结转成本
  • 海关增值税进项转出
  • 年终奖金怎么发放
  • 预警税负率表
  • 个体工商户税收怎么算
  • 支付的租金计入什么会计科目
  • 财务报表批准日是哪一天
  • 借用别人的公司经营
  • 一般纳税人增值税结转账务处理
  • 开票收入怎么理解
  • 苹果手机miracast在哪里找到
  • 上市公司发行债券股价会涨吗
  • window10切换win7
  • 关闭系统自动调屏幕亮度
  • 右键菜单里的快捷键
  • 差旅费津贴个人所得税题目
  • 折扣促销方式
  • php是基于
  • 非货币性资产投资个人所得税
  • 当月预交的增值税在申报期内可以填报进去抵扣
  • php实现留言板功能怎么用
  • 程序员神器
  • 2023华为OD机试题
  • 人体姿态识别国内外研究现状
  • java基础网络编程
  • ps怎么弄树
  • 处置固定资产涉税
  • 存在现金折扣的会计核算
  • 天然气零售企业
  • 物流公司的会计好干吗
  • 个人佣金收入怎样交税
  • wordpress全站伪静态
  • 企业报废原材料如何处理
  • 职工保险报账
  • 确认收入时还没交税
  • 2021年发票认证期限为多少天
  • 残保金的滞纳金怎么算
  • 增值税专用发票丢了怎么补救
  • 企业出租房产增值税怎么计算
  • 汇算清缴要求
  • 离职补偿金的计算基数
  • 一般纳税人取得普票怎么做账
  • 一般纳税人房租租赁费的税率
  • 明细分类核算的依据是什么
  • 个税专项扣除住房租金标准
  • 营业外支出的性质
  • 国有资本金是什么意思
  • 饭店的会计做账怎么做
  • 事业单位私车公用如何处罚
  • 流动比率越高越好吗
  • sqlserver游标的使用
  • mysql查看查询耗时
  • centos6.9 yum
  • windows8.
  • fedora linux安装教程
  • 配置windows server 2008
  • win8.1文件夹选项
  • WIN7系统如何设置自动关机
  • 查看linux系统日志命令
  • centos7搭建frp
  • win10周年纪念版
  • linux apache 启动
  • Win10 Mobile 10586.164上手体验视频评测
  • win7操作系统的主要功能
  • ExtJs 3.1 XmlTreeLoader Example Error
  • jQuery实现别踩白块儿网页版小游戏
  • JS 中document.write()的用法和清空的原因浅析
  • 对于不回微信的人,这样做,尽显高情商!
  • 批处理文件可用记事本
  • jquery中的$是什么
  • 安卓layout布局
  • javascript的基本规范
  • jquery通过id赋值
  • 用javascript写简单网页
  • 陕西省税务局机关服务中心
  • 拆迁补偿的房子是什么性质
  • 紧缩性财政政策有哪些
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设