最近的游戏产业发展也非常迅速,在手持终端3D的游戏也越来越多,那么如果我们将游戏引擎融入到监控系统中,会实现什么样的效果呢,本文重点介绍使用APE物理引擎结合TWaver 2D产品实现管线的容积率计算。 一起先来看看效果吧。...
分类:
其他好文 时间:
2015-01-19 10:54:07
阅读次数:
227
物理引擎Havok教程(一)搭建开发环境 网上关于Havok的教程实在不多,并且Havok学习起来还是有一定难度的,所以这里写了一个系列教程,希望可以帮到读者。这是第一期。一、Havok物理引擎简单介绍 Havok引擎,全称为Havok游戏动力开发工具包(Havok Game Dynamics S....
分类:
其他好文 时间:
2015-01-17 13:51:56
阅读次数:
180
在了解Force Impulse Torque 之前,先来看看setLinearVelocity,setAngularVelocity
一个是线速度,一个是角速度
理解起来是很简单的设置body的线速度和角速度
// 线速度
const btVector3 & getLinearVelocity () const
void setLinearVelocity (const btVecto...
分类:
其他好文 时间:
2015-01-14 00:57:27
阅读次数:
521
相关概念
什么是物理引擎?
科学模型:科学研究中对事物的合理简化。
物理引擎是一个计算机程序模拟牛顿力学模型,使用质量、速度、摩擦力和空气阻力等变量。
可以用来预测这种不同情况下的效果。它主要用在科学模拟和电子游戏中。
一般,物理引擎只负责物理计算,而不进行画面渲染。
关于box2d
Box2D是一款免费的开源二维物理引擎,由Erin Catto使用C++编写。它已被用于蜡笔物理学、愤怒的小鸟、地狱边境等游戏的开发。
Cocos2d-x本身已经集成box2d。
以上解释来自维基百科。
Box...
分类:
其他好文 时间:
2015-01-12 09:21:41
阅读次数:
255
欢迎回来,上篇我们讲到了物理引擎中重力环境模拟以及主角考拉与地面墙壁的碰撞,相信大家已经对2D世界的物理模拟有了一定的了解,现在我们接着讲如何让考拉动起来吧!让考拉动起来!这里控制考拉移动变得非常简单,它只有向前和跳两个能力(源码中我加了考拉向后走功能,建议大..
分类:
其他好文 时间:
2015-01-12 07:05:13
阅读次数:
282
一、前言
上一节我们讲完了攻击,其实也只是攻击者一方一厢情愿地播放自己的攻击动画罢了,被攻击的那一方根本不知道发生了什么,攻击者和被攻击者还没有联系起来。
所以,我们就引入了子弹这个东东。
二、正文
一开始我在开发的时候想到用物理引擎,后来想了想还是算了,一是难控制,二是可能会遇到一些问题(例如两个人之间可能会发生碰撞。。)
所以还是将错就错,直接用update函数解决问题吧。...
分类:
其他好文 时间:
2015-01-11 09:45:29
阅读次数:
215
Bullet提供了几个类btBvhTriangleMeshShape,btHeightfieldTerrainShape去创建一些网格图形,首先了解btHeightfieldTerrainShape,通过高度图数据创建一个3D地形。
A static mesh that is optimised for and described by the surface of a height map....
分类:
其他好文 时间:
2015-01-09 20:59:17
阅读次数:
297
相关链接:http://bulletphysics.org/mediawiki-1.5.8/index.php/Collision_Shapes
Bullet基本图形简介
Bullet提供的基本图形包括球体、长方体、圆柱体、胶囊体、圆锥体、多球体
当然还有一个Plane,一个无限的平面
1.球体是个很简单的形状:
btSphereShape (btScalar radius) 提供...
分类:
其他好文 时间:
2015-01-07 16:49:37
阅读次数:
493
为了测试bullet物体的大小,匆匆写完的PhysicsDraw3D的效率低的要命,这也是为什么cocos2dx弃用了DrawPrimitives,而去使用DrawNode
DrawPrimitives每次绘制都去调用glDrawElements,假如每帧绘制10000条线段,那么就要调用10000次glDrawElements,可见效率之低。
而DrawNode采取的是批处理的方式,当dra...
分类:
其他好文 时间:
2015-01-06 20:03:24
阅读次数:
419
由于刚开始学的时候不知道Bullet的单位1.0代表多大,所以制作出的模型的大小也无法判断。
不用担心,Bullet提供了一个类btIDebugDraw,这个泪已经实现了很多绘制功能,我们要做的就是实现几个虚函数。
我们继承btIDebugDraw,实现虚函数
class PhysicsDraw3D : public btIDebugDraw
{
public:
void drawLine...
分类:
其他好文 时间:
2015-01-06 18:08:08
阅读次数:
290