位置: 编程技术 - 正文

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)

  • 税款滞纳金和利息
  • 工资绩效被扣除怎么办
  • 小规模纳税检查怎么做
  • 租赁违法处理
  • 汽车租赁用不用交税
  • 净资产利润率等于净资产收益率吗
  • 计提公司所得税分录
  • 保险公司如何计算车辆折旧
  • 营改增后工程税收怎么计算
  • 防伪税控开票系统SOAP服务端
  • 公司走税,对公司有影响吗
  • 主营业务收入明细账图片
  • 商贸企业固定资产计提折旧吗
  • 电子账册需要缴纳印花税的规定是怎么说?
  • 出租车车票能进高铁站吗
  • 这个月发票没用怎么做账
  • 金税盘发票报送状态未报送
  • 股权代持分红免税吗
  • 删除文件需要管理员权限无法添加怎么办
  • cdr插件哪个最好用
  • 向非绑定账户转账超限是什么意思
  • phpjson
  • macOS 11 Big Sur beta 4值得升级吗?macOS 11 Big Sur beta 4更新详解
  • 小米无线路由器internet黄灯
  • 主营业务收入发生额在哪方
  • 股权转让协议的注意事项
  • 消防器材怎么做?
  • phpstudy的ftp
  • 向境外支付技术服务费怎里面的增值税怎么入账
  • 通过二手车买进套现
  • Laravel 5.4向IoC容器中添加自定义类的方法示例
  • php输入月份输出天数
  • php动态变量
  • php curl_setopt
  • 计算模型的层次划分
  • vue之间的组件通信
  • 外贸进出口企业注册资金
  • mysql有输入输出语句
  • 投标报名费开票编码
  • 车补贴是要缴纳增值税吗
  • 收支平衡表怎么做工厂表格
  • 公司如何帮员工补缴社保
  • 其他应付款不用付了会计分录
  • sql server中的编程语言
  • 收据所得税前扣除
  • 垃圾处理费申报怎么填
  • 什么叫固定资产台账
  • 养老保险减免退税政策
  • 坏账收不回来如何做分录
  • 施工企业开专票还是开普票好
  • 发票勾选认证的时间限制是多久
  • 1.金融资产有哪些基本类型?
  • 记账凭证负数怎么填写样板
  • centos7搜索
  • ubuntu undate-rc.d 的一些使用介绍
  • linux系统磁盘管理的主要内容
  • winxp刻录光盘步骤
  • win10自定义功能键
  • win8右侧栏设置
  • Mac系统中word怎么单独设置一页横向
  • win8系统开启摄像头权限
  • windows 10预览版
  • android物理按键对应的key
  • 多个版本python
  • qt绘制3d
  • javascript中的类型转换
  • shell脚本技巧
  • 酷狗模拟场景怎么用
  • W3C Group的JavaScript1.8 新特性介绍
  • android camera setParameters failed 类问题分析总结
  • android 设置竖屏
  • 航天金税盘客服电话苏州
  • 02112366电子税务局
  • 如何下载个人所得税A表
  • 江西省电子税务局公众查询
  • 土地增值税计税
  • 青岛市税务局长魏
  • 企业登录密码是几位数
  • 四川省国家电子税务局网上申报
  • 社保已生成单据如何作废上海
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设