热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

【cocos2dx3.2自带物理引擎lua】第一天

在公司现在开发使用的是cocos2d-x3.2版本,用cocoscodeide开发工具使用的是lua,所以闲下来想研究下自己没有接触过的物理引擎
在公司现在开发使用的是cocos2d-x3.2版本,用cocos code ide开发工具使用的是lua,所以闲下来想研究下自己没有接触过的物理引擎,相关的测试都是在上面的条件进行的。
cocos2d-x 3.x将物理引擎进行了封装,我们只需要调用其API就可以了,在使用物理引擎的时候我们需要告诉scene我们正在物理引擎的条件下进行开发所以需要在原有的


local GameScene = class( "GameScene",function ()return cc.Scene:create()
end)

进行修改为

local GameScene = class( "GameScene",function ()return cc.Scene:createWithPhysics()
end)

这样就有了基础的条件允许我们进行物理引擎的开发了。
我们现在可以给我们物理的世界一个边框,限制其边缘范围。

local edgeBody = cc.PhysicsBody:createEdgeBox( scene.visibleSize, cc.PhysicsMaterial( 1,1 ,0), 3)

使用PhysicsBody:createEdgeBox就是创建了矩形边框,第一个参数就是这个边框的size大小,第二个是相关这个刚体的属性(密度、碰撞系数、摩擦力),第三个参数是边缘像素
然后我们创建一个node

local edgeNode = cc.Node:create()
scene:addChild( edgeNode)
edgeNode:setPosition( scene.visibleSize.width * 0.5 , scene.visibleSize.height * 0.5 )
edgeNode:setPhysicsBody( edgeBody)

我们将我们已经创建好的body给设置到node上后就拥有了我们的世界边缘了。我们就可以让我们再创建的东西不超出范围了。但是运行不知道我们的边缘范围,我们需要设置显示

scene :getPhysicsWorld():setDebugDrawMask(cc.PhysicsWorld.DEBUGDRAW_ALL)

这样相当于我们测试模式下可以看到我们设置相关刚体的范围的,不仅仅有DEBUGDRAW_ALL还有其他参数,我暂时也不知道是与哪些相关的,但是DEBUGDRAW_NONE很清楚就是设置都不现实。此时运行起来我们可以看到世界的边缘范围。end
上面是整合在一起的源码,明天继续学习。



推荐阅读
  • 本文介绍了闭包的定义和运转机制,重点解释了闭包如何能够接触外部函数的作用域中的变量。通过词法作用域的查找规则,闭包可以访问外部函数的作用域。同时还提到了闭包的作用和影响。 ... [详细]
  • GetWindowLong函数
    今天在看一个代码里头写了GetWindowLong(hwnd,0),我当时就有点费解,靠,上网搜索函数原型说明,死活找不到第 ... [详细]
  • Commit1ced2a7433ea8937a1b260ea65d708f32ca7c95eintroduceda+Clonetraitboundtom ... [详细]
  • Python正则表达式学习记录及常用方法
    本文记录了学习Python正则表达式的过程,介绍了re模块的常用方法re.search,并解释了rawstring的作用。正则表达式是一种方便检查字符串匹配模式的工具,通过本文的学习可以掌握Python中使用正则表达式的基本方法。 ... [详细]
  • 展开全部下面的代码是创建一个立方体Thisexamplescreatesanddisplaysasimplebox.#Thefirstlineloadstheinit_disp ... [详细]
  • vue使用
    关键词: ... [详细]
  • PHP图片截取方法及应用实例
    本文介绍了使用PHP动态切割JPEG图片的方法,并提供了应用实例,包括截取视频图、提取文章内容中的图片地址、裁切图片等问题。详细介绍了相关的PHP函数和参数的使用,以及图片切割的具体步骤。同时,还提供了一些注意事项和优化建议。通过本文的学习,读者可以掌握PHP图片截取的技巧,实现自己的需求。 ... [详细]
  • 本文介绍了设计师伊振华受邀参与沈阳市智慧城市运行管理中心项目的整体设计,并以数字赋能和创新驱动高质量发展的理念,建设了集成、智慧、高效的一体化城市综合管理平台,促进了城市的数字化转型。该中心被称为当代城市的智能心脏,为沈阳市的智慧城市建设做出了重要贡献。 ... [详细]
  • 本文讨论了在Windows 8上安装gvim中插件时出现的错误加载问题。作者将EasyMotion插件放在了正确的位置,但加载时却出现了错误。作者提供了下载链接和之前放置插件的位置,并列出了出现的错误信息。 ... [详细]
  • 本文介绍了C#中生成随机数的三种方法,并分析了其中存在的问题。首先介绍了使用Random类生成随机数的默认方法,但在高并发情况下可能会出现重复的情况。接着通过循环生成了一系列随机数,进一步突显了这个问题。文章指出,随机数生成在任何编程语言中都是必备的功能,但Random类生成的随机数并不可靠。最后,提出了需要寻找其他可靠的随机数生成方法的建议。 ... [详细]
  • Spring特性实现接口多类的动态调用详解
    本文详细介绍了如何使用Spring特性实现接口多类的动态调用。通过对Spring IoC容器的基础类BeanFactory和ApplicationContext的介绍,以及getBeansOfType方法的应用,解决了在实际工作中遇到的接口及多个实现类的问题。同时,文章还提到了SPI使用的不便之处,并介绍了借助ApplicationContext实现需求的方法。阅读本文,你将了解到Spring特性的实现原理和实际应用方式。 ... [详细]
  • 本文讨论了一个关于cuowu类的问题,作者在使用cuowu类时遇到了错误提示和使用AdjustmentListener的问题。文章提供了16个解决方案,并给出了两个可能导致错误的原因。 ... [详细]
  • ZSI.generate.Wsdl2PythonError: unsupported local simpleType restriction ... [详细]
  • http:my.oschina.netleejun2005blog136820刚看到群里又有同学在说HTTP协议下的Get请求参数长度是有大小限制的,最大不能超过XX ... [详细]
  • XML介绍与使用的概述及标签规则
    本文介绍了XML的基本概念和用途,包括XML的可扩展性和标签的自定义特性。同时还详细解释了XML标签的规则,包括标签的尖括号和合法标识符的组成,标签必须成对出现的原则以及特殊标签的使用方法。通过本文的阅读,读者可以对XML的基本知识有一个全面的了解。 ... [详细]
author-avatar
a君bb_307
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有