物理引擎

HTML5之2D物理引擎 Box2D for javascript Games 系列 第一部分

混江龙づ霸主 提交于 2020-03-30 01:12:05
我要的是能在H5页面上跑的javascript版的Box2D啊!!! 最近想学习Javascript版本的Box2D JS物理引擎,无奈搜了半天也没找到相对比较系统的资料 官方网站也只是简单的介绍,API还引导向了FLASH AS3脚本。 我要的是能在H5页面上跑的javascript版本的教程啊!!! 后来搜出了一本中文版Box2D for Flash Games,脚本是AS3版本的书。是由天地会(昵称:鲁邦三世)翻译的 看,书封面 没有Javascript版本的啊。点解? (υ◉ω◉υ) So... 我感觉上帝选中了我 ⋋(◍’Θ’◍)⋌ 以前的我是AS3脚本程序猿出生, 那么唯有用我丢掉的几年AS3脚本经验把它改写成Javascript版本的了,谁让我现在写的是Javascript呢。 看…我做的封面 完美!!! 用Fireworks把原来的封面做成了javascript,可见我功力了吧,请叫我美工殿下! 我最早是做美工出生我会跟你说? (/ ̄(エ) ̄)/ 好吧,那我就一边学,一边改成javascript版本了。 如果文章有侵权行为,那么,要么联系我删掉? 要么来告我,反正我也没钱 (ミ ̄ー ̄ミ) 我的邮箱willian12345@126.com 本系列源码持续更新中,已寄存在github上 https://github.com/willian12345/Box2D-for

物理引擎探究(1)---基本准备

妖精的绣舞 提交于 2020-01-30 20:19:52
0.简介 首先推荐一本书,《游戏物理引擎开发》,这本书自带源码,写的还可以,有些地方需要仔细研究才能理解,还有BOX2D源码,官网有个demo,看完这些写个简单的物理引擎,了解原理应该够了。 1.环境 需要C++语言,利用opencv当做显示媒介,其实opengl更好,只是用OpenGL还得写一大堆代码,为了方便并且不把太多注意力用在不需要的地方,这里就用opencv做显示了,glm做线性代数计算库。我先从2D引擎写起,逐渐过渡到3D引擎,引擎可以分为质体引擎和刚体引擎,我主要学习的是刚体物理引擎,目前大部分物理引擎也是刚体物理引擎。 2.注意事项 源码我还是会给出链接,作为记录和学习分享。 来源: CSDN 作者: ARTELE 链接: https://blog.csdn.net/ARTELE/article/details/104116124

cocos2dx 3.x物理引擎对于setCollisionBitmask、setCategoryBitmask、setContactTestBitmask的理解

落爺英雄遲暮 提交于 2020-01-29 04:21:44
setCategoryBitmask(int bitmask),定义当前刚体的掩码值为bitmask setCollisionBitmask(int bitmask),允许和掩码值为bitmask发生碰撞 ,参数 bitmask 为允许碰撞的物体的CategoryBitmask位或集合 setContactTestBitmask(int bitmask),在和掩码值为bitmask的刚体碰撞时通知我,,参数 bitmask 为允许通知的物体的Category 位或集合 来源: CSDN 作者: sdsabc2000 链接: https://blog.csdn.net/sdsabc2000/article/details/103864196

Unity物理引擎学习(四)

久未见 提交于 2019-12-28 17:15:01
控制组件 角色控制组件和刚体组件一样都具有物理引擎的功能,他们在同一个游戏对象中只能存在一个。。刚体组件能够非常精准的模拟现实世界当中的模型的物理效果,而角色控制组件则没有刚体这么准确,他可以限制我们所控制的角色的一些物理引擎的效果。 1、添加组件 添加角色控制组件需要先添加Unity标准资源包。添加完包后创建模型,选择add Component->Physics->Character Controller。 组件属性 属性名称 介绍 Slope Limit 坡度限制,坡度大于该值的上不去 Step Offset 台阶偏移量,步高,高度大于该值的跨不上去 Skin Width 皮肤厚度,碰撞后渗入的深度 Min Move Distance 最小移动距离,如果移动距离小于该值,则角色不会移动 Center 碰撞胶囊体的中心坐标 Radius 碰撞胶囊体的半径 Height 2、控制移动 可以使用Move函数来控制模型移动。使用TransformDirection()来获得角色移动的方向 private CharacterController character ; private float moveSpeed = 3.0f ; // Use this for initialization void Start ( ) { character = GetComponent <

使用P2物理引擎制作物理小球

落爺英雄遲暮 提交于 2019-12-06 18:45:13
今天分享的内容是:基于Egret使用P2物理引擎实现物理小球示例效果。 了解更多信息,您可以查看P2物理引擎GitHub地址或者是EgretP2物理系统文档。 * 第三方库的引入 * 创建一个P2物理项目 一、第三方库的引入 1.首先新建一个项目。 2.在GitHub上下载包括P2物理引擎库的完整第三方库,解压后按照路径找到physics模块。 3.将physics模块放到新建项目根目录的同级目录。 4.修改egretProperties.json,modules数组里增加 { "name":"physics", "path":"../physics" } 5.然后找到插件-Egret项目工具-编译引擎编译一下就成功引入P2库,如下图。 二、创建一个P2物理项目 使用P2物理引擎创建物理应用的过程大致分为5个步骤: 1.创建world世界 2.创建shape形状 3.创建body刚体 4.实时调用step()函数,更新物理模拟计算 5.基于形状、刚体,使用Egret渲染,显示物理模拟效果 **下面根据这5个步骤进行代码构建。 1.打开Main.ts,首先创建world世界** //创建Word世界 private world:p2.World; private CreateWorld(){ this.world = new p2.World(); //设置world为睡眠状态

quick-cocos2d-x物理引擎之chipmunk(二)

 ̄綄美尐妖づ 提交于 2019-12-03 17:37:37
上一篇讲了quick-cocos2d-x使用chipmunk的使用流程,介绍了World,Body,Shape的建立,这一篇将讲解如何处理物体之间的碰撞。 一、监听事件 quick-cocos2d-x中的chipmunk碰撞处理是通过监听事件来实现的。 -- 设置物体的碰撞类别,默认所有物体都是类别0 Body:setCollisionType(type) -- handle是一个回调函数,碰撞处理将在这个函数中执行 -- collisionTypeA和collisionTypeB是两个int值,表示要监听的是哪两种物体 -- 这两个值在body中设置(上面所示的方法),两个值相同时为监听同种物体之间的碰撞 World:addCollisionScriptListener(handler, collisionTypeA, collisionTypeB) -- handler回调函数,这个函数一定要返回true,不然碰撞后两个物体将会重合,即像是不碰撞一样 -- eventType为碰撞的类别,有四种值: -- begin 开始碰撞 -- preSolve 持续碰撞(相交),可以设置相交时独自的摩擦,弹力等 -- postSolve 调用完preSolve后,做后期处理,比如计算破坏等等 -- separate 分开,当删除一个shape时也会调用 --

Havok Physics 2012(1)

ぐ巨炮叔叔 提交于 2019-12-03 15:38:02
目录 Chapter 1. Introduction 1. What is a Physics Engine? Chapter 1. Introduction ​ 欢迎来到Havok Physics 2012 SDK,这是一种用于快速、实时刚体仿真的物理中间件技术。Havok可以用于对象需要在三维空间中进行实际交互的应用程序中。它已经被部署在300多个游戏中,跨越许多平台和许多游戏类型,包括动作冒险、角色扮演、第一和第三人称射击、体育和汽车游戏。完整的游戏列表可以在我们的网站上找到。 ​ 本章首先介绍了物理引擎,然后概述了Havok physics 2012 SDK以及如何在您的应用程序中使用它。您将在本手册的其余部分中找到关于这里介绍的概念和组件的更详细的信息。 1. What is a Physics Engine? 1.1 介绍 ​ 本节旨在提供与物理引擎相关的术语、方法和行为的一般理解。了解了物理模拟的行为之后,让Havok在你的游戏中工作将会变得更加容易。 1.2 物理模拟 ​ 物理模拟并不是一个新概念。自从计算机开始从装配线上脱落以来,科学家和程序员就用它们来模拟复杂的情况,如火箭轨迹(弹道运动)、液体流动(流体动力学)和其他复杂的项目。就所需的CPU资源而言,其中许多模拟非常昂贵。他们关心的是高水平的准确性,因此,计算需要以非常高的细节水平执行

quick-cocos2d-x物理引擎之chipmunk(一)

半城伤御伤魂 提交于 2019-12-02 09:45:56
chipmunk是一个用C写成的物理引擎,quick-cocos2d-x已经用C++对其进行封装,导出到lua的类有: CCPhysicsWorld CCPhysicsBody CCPhysicsShape CCPhysicsDebugNode CCPhysicsCollisionEvent CCPhysicsVector 可以看出,quick-cocos2d-x没有对joint(连接)进行封装 ,下面将就如何在quick-cocos2d-x中使用chipmunk作详细的介绍。 一、简介 1、 World,Body,Shape 可用下图说明其关系 可以看出,World由Body组成,而Body又由Shape组成。就像我们所处的世界一样,世界由房屋,树木等等构成,而房屋由门窗,墙壁等组成,树木由叶子,树干,树枝等组成。 2、 CCPhysicsDebugNode 是用于显示各个物体的边框等等信息,主要用于调试。 3、 CCPhysicsCollisionEvent 是物体之间发生碰撞时产生的事件,事件中携带有碰撞时的信息。 4、 CCPhysicsVector 则是向量,物体受力时将会用到。 二、使用流程 1、 建立World 我们要使用chipmunk,首选要建立一个世界( CCPhysicsWorld ) -- 建立没有引力的世界 CCPhysicsWorld:create()

物理引擎

烂漫一生 提交于 2019-11-27 02:36:38
物理引擎Unity内置了NVIDIA的Physx物理引擎,Physx是目前使用最为广泛的物理引擎,被很多游戏大作所采用,开发者可以通过物理引擎高效、逼真地模拟刚体碰撞、车辆驾驶、布料、重力等物理效果,使游戏画面更加真实而生动。1、刚体在介绍物理引擎之前,需要先学习一下刚体(Rigidbody)。Rigidbody(刚体)组件可使游戏对象在物理系统的控制下来运动,刚体可接受外力与扭矩力用来保证游戏对象像在真实世界中那样进行运动。任何游戏对象只有添加了刚体组件才能受到重力的影响,通过脚本为游戏对象添加的作用力以及通过NVIDIA物理引擎与其他的游戏对象发生互动的运算都需要游戏对象添加了刚体组件。下面创建一个游戏对象,给这个游戏对象添加上刚体组件。如下图所示。下面我们学习一下物理组件中刚体的一些属性。Mass:质量,该项用于设置游戏对象的质量,数据类型是float类型,默认情况都是1,一般来说,大部分刚体的Mass属性值应该设置为0.1-10.0之间,这样模拟出来的刚体更加接近于生活。Drag:阻力,这里的阻力是指物体移动时的阻力,物体在任何方向移动都会受到Drag的影响。数据类型float类型,默认情况下为0,Drag值是阻碍物体做位移运动,它的方向总是和物体移动的方向相反,通过设置Drag值可以达到羽毛和石头掉落的效果。Angular Drag:旋转阻力,与Drag相似

Cocos2d-x视频教程

老子叫甜甜 提交于 2019-11-26 19:28:41
1. 我的技术专栏 https://blog.csdn.net/COCO56/column/info/40665 2. 相关推荐 C++ Primer视频教程(初级中级高级): https://blog.csdn.net/COCO56/article/details/95260291 CocosCreator官方教学视频(腾讯超清版)[20180428更新]: https://blog.csdn.net/COCO56/article/details/95042145 3. 下载链接 https://www.cnblogs.com/coco56/p/11223189.html 在 视频教程\Cocos2D-X 那里。 4. cocos2d-xx Lua+JS+C++教学视频 ├─1、cocos2d-Lua教学视频 │ │ 04、详解Cocos Code IDE开发Lua JavaScript Cocos2d-x游戏的使用 │ │ │ ├─01、Lua 语言基础 │ │ 1、Lua语言介绍 │ │ 2、Lua语言基础之基本语法 │ │ 3、Lua语言基础之表 │ │ 4、Lua语言基础之数组 │ │ 5、Lua语言面向对象之复制表的方式面向对象 │ │ 6、Lua语言面向对象之函数闭包的方式面向对象 │ │ 7、使用Lua语言开发Cocos2d-x游戏 │ │ │ ├─02