Cocos2d-x Physics 2 - Hello Physics World

在层的头文件定义一个变量和一个方法

?

class HelloWorld : public cocos2d::Layer

?

{

?

public:

? ? ...?

? ??//physics world

? ? cocos2d::PhysicsWorld *m_physicsWorld;

? ? void setPhysicsWorld(cocos2d::PhysicsWorld *physicsWorld){m_physicsWorld = physicsWorld;};

?

};

?

?

创建一个具有物理特性的场景

Scene* HelloWorld::createScene()

{

? ? // 创建一个具有物理特性的场景

? ? auto scene = Scene::createWithPhysics();

? ? //开启物理引擎的调试模式

? ? scene->getPhysicsWorld()->setDebugDrawMask(PhysicsWorld::DEBUGDRAW_ALL);

?? ?

? ? // ‘layer‘ is an autorelease object

? ? auto layer = HelloWorld::create();

?? ?

? ? Size visibleSize = Director::getInstance()->getVisibleSize();

?? ?

? ? //创建一个矩形边界

? ? auto nodeBody = PhysicsBody::createEdgeBox(visibleSize, PHYSICSBODY_MATERIAL_DEFAULT, 3);

?? ?

? ? auto node = Node::create();

? ? node->setPhysicsBody(nodeBody);//设置刚体

? ? node->setPosition(visibleSize.width/2, visibleSize.height/2);

? ? scene->addChild(node);

?

? ??//将物理世界传递给层

? ? layer->setPhysicsWorld(scene->getPhysicsWorld());?

? ? // add layer as a child to scene

? ? scene->addChild(layer);

?

? ? // return the scene

? ? return scene;

}

?

?

?

物理世界默认的重力是 vect(0, -98);

可以通过setGravity方法更改重力

scene->getPhysicsWorld()->setGravity(Vec2(0, -500));

?

createEdgeBox方法有三个参数, 依次是:

1. 矩形区域的大小

2. 设置材质

3. 边线宽度

?

PHYSICSBODY_MATERIAL_DEFAULT 是一个预定义的PhysicsMaterial类, 预设值分别是

Density 密度 = 0.0f

Restitution 恢复力(弹力) = 0.5f

Friction 摩擦力 = 0.5f

?

?

运行结果可以看到屏幕四周有一个红色的边框

?

?

?

?

?

?

?

?

?

?

?

?

?

?

时间: 2024-08-01 16:24:59

Cocos2d-x Physics 2 - Hello Physics World的相关文章

CodeForces 444C. DZY Loves Physics(枚举+水题)

转载请注明出处:http://blog.csdn.net/u012860063/article/details/37509207 题目链接:http://codeforces.com/contest/445/problem/C DZY Loves Physics DZY loves Physics, and he enjoys calculating density. Almost everything has density, even a graph. We define the densi

《割绳子》《蜡笔物理学》《Contre Jour》《顽皮鳄鱼爱洗澡》等游戏用Box2D引擎实现物理部分的方法(转)

从最热门游戏排行榜和flash游戏网站上,你能看到什么?许多2D游戏都有非常出色的物理学和美术设计.现在我们要学习那些游戏使用了什么物理学以及如何用Box2D制作它们. 除了知道是“什么”,更重要的是知道“如何做”,首先,我想问读者一个问题:如果你想复制物理游戏的机制或行为,你需要什么技术和方法? 一年以前,我问了自己同样的问题,<6 Dimensions>就是问题的答案.这款游戏是一个创意的盒子,每一面都包含一组使用Box2D物理学再加上视觉美学技术制作的不同的游戏机制.在此,我将与大家分享

开源游戏引擎哪家强?八款知名引擎资料够你忙

摘要:游戏引擎是指一些已编写好的可编辑电脑游戏系统或者一些交互式实时图像应用程序的核心组件.本文介绍了几款常见的开源游戏引擎,并附上相关资料. 游戏引擎是指一些已编写好的可编辑电脑游戏系统或者一些交互式实时图像应用程序的核心组件.这些系统为游戏设计者提供各种编写游戏所需的各种工具,其目的在于让游戏设计者能容易和快速地做出游戏程式而不用由零开始.以下介绍了几款常见的开源游戏引擎: OGRE OGRE是一个三维(3D)图形渲染引擎.它是面向对象的,并且高效,抽象化了不同的API和平台,这样可以以场景

【转】游戏程序员养成计划

博客出处:www.cnblogs.com/clayman/archive/2009/05/17/1459001.html 作者:clayman 与玩游戏相比,写游戏要复杂上千万倍,除了需要掌握通用的编程技巧以外,还要有相当的图形学,物理,数学基础,特别是在国内,由于相关资料的缺乏,更是让初学者无从下手.下面总结了一些入门方法和比较容易入手的资料. 首先你要精通一门高级语言,pc上游戏的首选语言就是C++.其次,要有良好的英文阅读能力.对游戏开发者来说英文阅读能力是最重要也是最基本的工具之一,因为

微软Hololens学院教程-Hologram Gaze(凝视)

Hololens的使用如果类比到计算机的使用,在输入操作方面,Hololens了解用户的操作意图的第一个步骤是凝视,用户的凝视射线呈现在场景中的点为凝视点,就好像是电脑中的鼠标光标点,凝视是第一步,是人与hololens操作的开始. 涉及凝视相关的知识点如下: 1 当用户看着一个全息图时,光标点会有反馈表现-表明用户看到了全息图,当用户凝视视线离开全息图时,光标点也要有反馈-表明用户没有在看全息图. 2 当用户注视到全息图时,给于用户更多反馈,例如声音,全息图当变化等. 3 使用定位技术使得用户

SpriteBuilder 学习笔记三

Chapter 4   Physics & Collisions Player Physics 任何node想要移动或者互动的像物理对象时,必须成为CCPhysicsNode的子类. Enabling Physics for the Player Sprite 在Level1.ccb中,无法打开player的Item Physics tab,这是任何Sub File Nodes都面临的问题:不支持physics.但是可以在Player.ccb中打开physics属性,如下图: 发布并运行后,可以

【Unity 3D】学习笔记三十六:物理引擎——刚体

物理引擎就是游戏中模拟真是的物理效果.如两个物体发生碰撞,物体自由落体等.在unity中使用的是NVIDIA的physX,它渲染的游戏画面很逼真. 刚体 刚体是一个很很中要的组件. 默认情况下,新创的物体是不具备物理效果的,而刚体组件能够给物体加入一些常见的物理属性.比方说:质量.摩擦力.碰撞等. 假设对象加入了刚体组件.那么它将感应物理引擎中的一切物理效果. 简单的使用下 首先穿件一个游戏对象,接着在hierarchy视图中选择创建的游戏对象.然后在unity导航菜单条中选择component

物理部分的一些设置

一.Physics Bodies: 老生常谈,AActor只是一个容器,所以是不可能有物理模拟部分的(AStaticMeshActor实例在世界大纲中可以设置,这个梗要看代码).在API文档中搜索SetSimulatePhysics,也证明了猜测,在virtual void UPrimitiveComponent::SetSimulatePhysics(bool bSimulate) 首次出现:并分别被USkeletalMeshComponent和UDestructibleComponent组件

推荐书籍

仅供个人学习使用,勿用于任何商业用途.作者:Clayman 与玩游戏相比,写游戏要复杂上千万倍,除了需要掌握通用的编程技巧以外,还要有相当的图形学,物理,数学基础,特别是在国内,由于相关资料的缺乏,更是让初学者无从下手.下面总结了一些入门方法和比较容易入手的资料. 首先你要精通一门高级语言,pc上游戏的首选语言就是C++.其次,要有良好的英文阅读能力.对游戏开发者来说英文阅读能力是最重要也是最基本的工具之一,因为你遇到的大部分资源都将是英文的,不要总等着别人为你翻译.慢慢尝试着阅读英文资料,你会