关于Cocos2d-x物理引擎用到的类和使用

其实就是这三类PhysicsWorld类,PhysicsBody类,PhysicsShape类。

1.PhysicsWorld类

PhysicsWorld对象代表Cocos2d-x中的物理世界,这个世界能够用来模拟碰撞和其他物理性质。不要直接创建PhysicsWorld对象,建议从一个场景对象中获取PhysicsWorld对象,scene->getPhysicsWorld()。

2.PhysicsBody类

PhysicsBody对象代表物理世界中的刚体,一个刚体可以被附加一个或多个形状。如果通过createXXX()函数创建刚体对象,将会根据密度自动计算质量和力矩。

3.PhysicsShape类

PhysicsShape对象代表一个刚体的形状和一些其他的属性,可以设置刚体的一些密度,质量,弹性等等。

给一个精灵对象设置刚体的步骤:

1.创建一个精灵对象ball

2.创建一个刚体body

3.用PhysicsShape指针对象调整这个刚体的属性

PhysicsShape *ps=body->getShape(0);

ps->setMass(0.2f);

...

4.设置这个精灵对象的刚体属性

ball->setPhysicsBody(body);

5.把这个精灵对象添加到层

this->addchild(ball);

第十三章的书上代码的物理世界测试那一部分中,我感觉很可能作者是想在手机上用重力感应来控制物体或者说实现重力,所以就写了设备加速度计方法和加速度计监听器。

时间: 2024-12-23 23:11:55

关于Cocos2d-x物理引擎用到的类和使用的相关文章

Cocos2d-x学习笔记(十五)-------->物理引擎

物理引擎 Cocos2d-x引擎内置了两种物理引擎,它们分别是Box2D和Chipmunk,都是非常优秀的2D物理引擎,而且x引擎将它们都内置在SDK中.Box2D使用较为广泛,在这里选择Box2D来进行学习. 物理引擎模拟的内容: 重力:在游戏中模拟重力加速度,当游戏中人物跳跃起来后会受到重力影响而向下移动,在没有地面的场景,人物和物体会由于重力而做自由落体运动. 牵引力(动力):在游戏中比如汽车的引擎,人物本身能够提供向前进行的动力,这种牵引力是持续不断地作用在物体上的,物体因此可以向作用力

cocos2dx-3.x物理引擎Box2D介绍

物理引擎 Cocos2d-x引擎内置了两种物理引擎,它们分别是Box2D和Chipmunk,都是非常优秀的2D物理引擎,而且x引擎将它们都内置在SDK中.Box2D使用较为广泛,在这里选择Box2D来进行学习.  物理引擎模拟的内容: 重力:在游戏中模拟重力加速度,当游戏中人物跳跃起来后会受到重力影响而向下移动,在没有地面的场景,人物和物体会由于重力而做自由落体运动.牵引力(动力):在游戏中比如汽车的引擎,人物本身能够提供向前进行的动力,这种牵引力是持续不断地作用在物体上的,物体因此可以向作用力

cocos2d_x_02_使用内置物理引擎

最终效果图: 一.新建工程 进入cocos2d-x的tools下的bin目录: /Users/beyond/Desktop/cocos2d-x/cocos2d-x-3.3beta0/tools/cocos2d-console/bin目录 打开终端,切换到上述bin目录 使用cocos命令,创建工程,格式如下: cocos new 工程名 -p 包名 -l 语言 -d 目标文件夹, 例如 : cocos new 01_cocos2d-x-p com.beyond-l cpp -d /Users/b

实例介绍Cocos2d-x物理引擎:HelloPhysicsWorld

我们通过一个实例介绍一下,在Cocos2d-x 3.x中使用物理引擎的开发过程,熟悉这些API的使用.这个实例的运行后的场景,当场景启动后,玩家可以触摸点击屏幕,每次触摸时候,就会在触摸点生成一个新的精灵,精灵的运行是自由落体运动. HelloPhysicsWorld实例 使用物理引擎的一般步骤,如下图所示. 这个过程与上帝创建世界的过程类似,上帝首先创建了世界,然后为世界指定了边界,否则万物就会掉到世界之外的混沌里去了,最后上帝创建了万物.当然这只是一个最基本的步骤,有的时候还需要碰撞检测和使

实例介绍Cocos2d-x中Box2D物理引擎:HelloBox2D

我们通过一个实例介绍一下,在Cocos2d-x 3.x中使用Box2D物理引擎的开发过程,熟悉这些API的使用.这个实例运行后的场景如图所示,当场景启动后,玩家可以触摸点击屏幕,每次触摸时候,就会在触摸点生成一个新的精灵,精灵的运行自由落体运动. HelloBox2D实例 使用Box2D引擎进行开发过程,如图12-15所示.下面我们就按照这个步骤介绍一下代码部分.首先看一下看HelloWorldScene.h文件,它的代码如下: [html] view plaincopy #ifndef __H

实例介绍Cocos2d-x物理引擎:碰撞检测

碰撞检测是使用物理引擎的一个重要目的,使用物理引擎可以进行精确的碰撞检测,而且执行的效率也很高.在Cocos2d-x 3.x中使用事件派发机制管理碰撞事件,EventListenerPhysicsContact是碰撞事件监听器.碰撞检测相关的API我们在前面一节介绍过了,下面通过一个实例介绍碰撞检测的实现.这个实例的运行后的场景如图所示,当场景启动后,玩家可以触摸点击屏幕,每次触摸时候,就会在触摸点生成一个新的精灵,精灵的运行是自由落体运动.当这些精灵之间发生接触时候,它们的颜色被设置为黄色,分

关于cocos2d-X 3.x版本使用引擎自带的物理引擎Physics

今天本来打算使用BOX2D物理引擎的, 想到前段时间听说cocos2d-X在3.0版本中封装了一个自己的物理引擎Physics, 听名字就很霸气额, 用起来确实是比BOX2D简单很多( 毕竟是基于BOX2D封装的嘛), 好了, 现在我们来看看如何使用Physics这个物理引擎, 第一步: 创建项目............略 第二部: 修改场景的创建方式 将Scene::create();换成Scene::createWithPhysics(); Scene* HelloWorld::create

cocos2d-js中Chipmunk物理引擎相关(1)

最近看些cocos2d-js的东西,用到其中的Chipmunk的一些东西,因为相关的资料也不是很详细,所以看到一些东西有用就记录下来. 1. chipmunk是cocos2d的一个一个物理引擎,用来模拟重力,碰撞等等的现实场景. 一个chipmunk body代表虚拟空间中的一个物体,他可能会包含一个或者多个chipmunk shape从而构成它的几何形状. 比如将一个动态的chipmunk物体加入到场景中: 初始化: this.body = new cp.Body(1, cp.momentFo

Cocos2d-x 物理引擎及碰撞

基础知识: 1 #ifndef __HELLOWORLD_SCENE_H__ 2 #define __HELLOWORLD_SCENE_H__ 3 4 #include "cocos2d.h" 5 6 class HelloWorld : public cocos2d::Layer 7 { 8 private: 9 Size visibleSize; 10 public: 11 // there's no 'id' in cpp, so we recommend returning t