一、新建第一人称蓝图项目。在场景中随意选择一个cube(simulate physics勾选),然后在level blueprint中添加 OnActorHit事件,打印事件,蓝图如下:对应的Actor如下设置(项目默认,没做修改):注意,此时Simulation Generates Hit Events没有勾选;运行程序后结果如期,子弹击中该Actor(Name:撞击时测试对象)触发OnActo
Box2D简介Box2D是一个用于游戏的2D刚体仿真库。它可以使游戏中物体的运动更加逼真。 Box2d有C++,flash和Java等版本。    Box2D会自动管理各个物体的碰撞,弹跳等物理状态,我们只需要创建各种刚体。创建刚体可以通过b2BodyDef.userData来创建。b2Shape.SetAsBox(width,height)指的是物体的半宽和半高,所
转载 5月前
45阅读
h.display...
原创 2023-01-05 16:30:41
128阅读
1 前言      最近学习libgdx的时候暂时先没看box2d那部分,昨天想做个物理效果看了一下那部分的封装,发现没点概念太难看懂了,还是乖乖的把box2d先系统的学习一遍。这个资料网上很多,最好的自然是官方的用户手册,还有热心网友把翻译成中文的了。还是老习惯,学完以后留点东西以备忘。 2 基础知识     以下内容对理解物理引擎非常重要
原创 2012-03-13 14:08:31
8932阅读
package{import flash.display.MovieClip;import Box2D.Dynamics.*;import Box2D.Collision.*;import Box2D.Collision.Shapes.*;import Box2D.Common.Math.*;import flash.events.Event;import flash.display.Sprite
转载 2012-03-14 12:36:00
102阅读
2评论
找到解决方案TestCpp工程。打开其属性=》C/C++ =》预处理器==》处理器定义。 参加“CC_ENABLE_BOX2D_INTEGRATION=1”, 更改“CC_ENABLE_CHIPMUNK_INTEGRATION=0”, 打开libExtensions项目相同找到预处理器定义, 加入“CC_ENABLE_BOX2D_INTEGRATION=1” , 删除“CC_ENABLE_CHIP
转载 2015-10-05 20:49:00
150阅读
2评论
虽然是英文网页,但是教程简单明了,看过之后cocos2d中的box2d用法将一目了然。所以值得收藏学习。转自:http://www.codeandweb.com/blog/2011/03/26/cocos2d-box2dTutorial: cocos2d + box2dPhysicsEditor with cocos2d and box2dThis is a short tut
原创 2022-11-30 21:26:21
131阅读
0.简介前一篇对碰撞检测的准备工作做了阅读,这回我们看第一步,分离轴定理检测矩形是否相交。1.分离轴定理这里面简单对分离轴定理做一个说明,这个里面有详细说明分离轴定理详细说明大概就是比如两个凸多边形,这两个多边形分别向每条边的垂直方向做投影,如果有一个方向上的投影不相交,则两个多边形不相交,反之则相交。具体就看上面的链接吧。2.代码阅读int Collide(Contact* contacts,
第十章 世界类(world class)简介b2World类包含物体(body)和关节(joint),它负责模拟工作的各个方面并且支持异步的查询(例如AABB查询和射线投射等等)。Box2D中的大部分交互都和b2World对象有关。 构造和析构世界对象构造一个世界对象相当简单,你只需要提供一个重力向量和一个布尔值用来指明是否允许物体进入休眠状态。通常你通过new和delete
APE不行,做点简单的撞球,台球之类游戏还行。我最开始用他实验性做了个简单的基于物理引擎的泡泡龙类游戏,发现稍微多一点的几何体堆叠在一起就会产生渗透现象,没办法只好更改最初的设计。要专注做物理游戏,还是要精通box2d才行,而且box2d几乎任何主流语言都有它的版本。所以建议不要学APE,除非你只是想做点简单的撞球,jump,卡车模拟类游戏。box2d 也会穿透 不过比APE的确好多了目前网络上使用较多的2D物理引擎Box2D和APE,其他引擎要么没有更新了,要么不成熟。
原创 2021-07-20 16:47:28
275阅读
APE不行,做点简单的撞球,台球之类游戏还行。我最开始用他实验性做了个简单的基于物理引擎的泡泡龙类游戏,发现稍微多一点的几何体堆叠在一起就会产生渗透现象,没办法只好更改最初的设计。要专注做物理游戏,还是要精通box2d才行,而且box2d几乎任何主流语言都有它的版本。
转载 2012-03-14 12:32:00
46阅读
0.简介这次来看step函数。1.step开始step函数里看起来如下的样子,当然我们只关注一块。void World::Step(float dt) { float inv_dt = dt > 0.0f ? 1.0f / dt : 0.0f; // 碰撞检测 BroadPhase(); ... }BroadPhase函数是碰撞碰撞检测函数。具体讲解在代码注释void Wo
Box2D引擎简介Box2D是与Cocos2d-x一起发布的一套开源物理引擎,也是Cocos2d-x游戏需要使用物理引擎时的首选。二者同样提供C++开发接口,所使用的坐标系也一致,因此Box2D与Cocos2d-x几乎可以做到无缝对接。Box2D是一套基于刚体模拟的物理引擎,它的核心概念为世界、物体、形状、约束和关节。Box2D的各个组件及其描述如下:世界(b2World):一个物理世界。物理世界
本博文是笔者的学习笔记,学习资料来自Box2D_v2.2.1帮助文档。  Box2D是一个为游戏设计的2d刚体仿真库。程序员可以在他们的游戏里使用它,它可以使物体的运动更加可信,让世界看起来更具交互性。从游戏的视角来看,物理引擎就是一个程序性动画(procedural animation)的系统,而不是由动画师去移动你的物体。Box2D 是用可移植的&nbs
Box2D简单介绍Box2D 是一个用于游戏的 2D 刚体仿真库, 是用可移植的C++写成的。程序员可以在他们的游戏里使用它,它可以使物体的运动更加真实,并让游戏世界看起来更具交互性。 Box2D 就是用物理学的方法,推导出那游戏世界物体的位置,角度等数据。而 Box2D 也仅仅推导出数据,至于得到数据之后怎么处理就是程序员自己的事情了。Box2D单位Box2D 使用浮点数,所以必须使用公差来保
以下我们将使用Box2D物理引擎技术进行重构。使得关节可以掌握怎样在Box2D使用关节约束。HelloWorldScene.cpp中与使用关节的相关代码例如以下:void HelloWorld::addNewSpriteAtPosition(Vec2 p){ log("Add sprite ...
转载 2014-12-31 15:31:00
54阅读
  var TAG_SPRITE_MANAGER = 1; var PTM_RATIO = 32; Box2DTestLayer = cc.Layer.extend({ world:null, //GLESDebugDraw *m_debugDraw; ctor:function () { this._super(); cc.even
转载 2014-04-09 08:04:00
126阅读
2评论
每个Box2D程序都将从一个世界对象的创建开始。他是管理对象以及模拟的中心。Codeprivate function initWorld():void { //定义世界包围盒 var worldAABB:b2AABB=new b2AABB(); worldAABB.lowerBound.Set(-100,-10
本系列博客是由扭曲45原创,欢迎转载,转载时注明出处,Box2d中每种物体它都是要有形状的,关于形状的是如何定义和实现的,我们今天就来说说。要将一个形状描述出来,我们必须知道它的定义,不禁要问形状是什么呢?用来干什么的呢?形状是几何体,用来给物体(body)定型的。同时形状可以在物理模拟中独立使用,你就可以对形状进行各种操作。父形状的实现只有一个b2Shape.h文件,我们就来看下它是怎么实现的。
转载 4月前
87阅读
简介 上一篇完成了碰撞点的初步获取,这回阅读的是碰撞点的第二步获取。碰撞点截取 因为有一定可能使得取得的B上的碰撞点在A的宽度范围之外,这样一来,范围之外的点属于没有意义的点,所以需要根据A的宽度将点截断在A的宽度范围内。代码/*参数列表:vOut[2]输出结果,vIn[2]输入的碰撞点候选点,normal侧方向上的向量(假设以矩形A坐标系为主) offset侧方向上的坐标值。 这假设前面是以A坐
  • 1
  • 2
  • 3
  • 4
  • 5