位置: 编程技术 - 正文

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)

  • 商品批发企业进项税额会计分录
  • 实收资本实务处理办法
  • 利润表中的资产减值损失包括哪些
  • 控股收益
  • etc扣费与发票不符
  • 预付开发票加油后还能开吗
  • 科研材料怎么买
  • 销售人员购买的产品
  • 出口货物发生退运是征税还是免税
  • 销售退款怎么做分录
  • 税收分类编码不对发票可以用吗
  • 分公司分开银行账户付款的好处
  • 换公司后个税app上没有显示缴费记录
  • 可供出售权益工具投资公允价值的增加
  • 公司现金支票取现用途怎么填写
  • 一般纳税人怎么转小规模
  • 个体户季度报税表怎么填
  • 产品销售员
  • 应交税费明细科目设置
  • 应交税费账户进项税额为借方是什么意思?
  • 三证合一后没有去税务局登记会怎么样
  • 专票密码区出来了一点有关系吗
  • 车间未完工的产品属于什么
  • 不动产处置流程
  • 公司为职工购买社保只购买三险可以吗
  • 增值税专用发票的税率是多少啊
  • 上个月暂估这个月成本怎么调整
  • windows10如何关闭安全中心防护
  • 基准收益率是
  • 收货款时少收几十元,分录怎么做
  • 企业变更股东要交税吗
  • win11任务栏全部显示
  • 要看网怎么找
  • 发票已认证还能作废吗2020
  • PHP:pg_options()的用法_PostgreSQL函数
  • 进项税额转出会造成增值税应纳税额
  • rteng7.exe - rteng7是什么进程 有什么用
  • 公司员工社保由总公司代缴证明
  • 公允模式投资性房地产出售
  • php常用字符串函数讲解
  • RocketMQ-02
  • 微信小程序解锁安全吗
  • 微软和梅赛德斯奔驰宣布合作
  • php连接mysql8.0
  • 固定资产无形资产计提折旧是当月还是次月
  • 业务招待费可以结转以后年度扣除吗
  • 什么是零申报制度
  • mybatis怎么用
  • window批处理文件
  • 非流动资产基金属于什么科目
  • 织梦官方网站
  • 其他应付款科目贷方登记发生的各种应付
  • 上月做了未开票收入,这月开了票怎么报税
  • 员工拿发票报销怎么做账
  • 少交税款滞纳金
  • 关于小微企业免征印花税的规定
  • 今年成立的公司需要申报残疾人保障金吗
  • 五险一金个人和公司缴费比例
  • sql server创建架构
  • sql语句学习
  • 无光驱是不是放不了光盘
  • win8系统怎么清理缓存
  • win7如何打开浏览器
  • Win8出现奇怪爆音的完美解决方法
  • win8.2系统
  • 如何判断肾虚阴虚阳虚
  • 为了保证系统安全,必须为用户和角色设置密码
  • fragmentize
  • 创建步骤
  • Node.js中的什么模块是用于处理文件和目录的
  • Javascript Throttle & Debounce应用介绍
  • javascript例题
  • javascript:download()
  • python dj
  • 全国税务系统12366纳税服务热线工作规范
  • 境外取得收入申报期限
  • 政府无偿划拨土地涉及的税费
  • 地方税务局发票查询
  • 南昌契税政策
  • 企业可以享受哪些政策优惠
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设