Cocos2d-x3.0游戏实例之《别救我》第二篇——创建物理世界(2)
设置游戏的重力方向
接下来我们要为物理世界设定一个重力方向,这个方向随大家喜欢,我也是随意设置的,不同的方向对游戏的操作也有一定的影响,说不定还更有意思。
要对物理世界进行操作,就要通过场景来获取物理世界对象,然后再进行操作:
/* 微重力世界 */Vect gravity(0, -0.5f);
scene->getPhysicsWorld()->setGravity(gravity);
/* 开启测试模式 */
scene->getPhysicsWorld()->setDebugDrawMask(PhysicsWorld::DEBUGDRAW_ALL);
Vect就是一个向量,代表x和y方向,其实它就是一个Point对象。
后面好像乱入了一句代码?没错,那是开启调试模式的,这个功能很爽。开启调试模式的话,所有物体对象的形状节点什么的都会被画出来,方便我们测试。当然,有个参数,可以设置你想要绘制的那些部分。
用最简单的方式创建刚体
一般情况下,我们要创建刚体,还要先创建形状,然后各种设置。在3.0里,不需要,只需要一句代码:
/*
创建一个空心盒子刚体,作为我们游戏世界的边界(避免游戏内的物体跑出屏幕)
参数分别是刚体大小、材质(其实就是一些预设的配置数据)、边线厚度
*/
auto body = PhysicsBody::createEdgeBox(Size(visibleSize.width, visibleSize.height), PHYSICSBODY_MATERIAL_DEFAULT, 3);
createEdgeBox函数是创建空心盒子刚体,还有更多函数大家看看PhysicsBody的头文件就知道了。
在createEdgeBox函数里,已经把形状创建好,并添加给刚体了。
让刚体加入到物理世界
/* 创建一个节点,用于承载刚体,这样刚体就能参与到游戏的物理世界 */
auto node = Node::create();
node->setPosition(Point(visibleSize.width / 2, visibleSize.height / 2));
node->setPhysicsBody(body);
scene->addChild(node);
别忘了,现在的物理世界就是我们的场景,场景就是世界,世界就是场景。按照这种思想,刚体要加入到物理世界,那就要添加到场景里,而刚体怎么添加到场景里呢?直接addChild?
不~!场景是用来添加节点对象的,于是,我们把刚体放到节点里,然后把节点添加到场景里。懂了吧?(小若:哦~原来如此啊(完全没听懂))
其实很好理解,刚体只是一些模拟数据而已,它是看不见的,而游戏里面的对象需要用各种图片、动画来表现。
因此,节点对象用于表现,刚体对象用于物理模拟,两者结合,就完美了。
刚体添加到节点之后,可以通过getPhysicsBody函数来获取。
运行效果
OK,准备看看运行效果吧,在此之前,先改改AppDelegate.cpp文件,在applicationDidFinishLaunching函数里做一些配置:
- bool AppDelegate::applicationDidFinishLaunching() {
- // initialize director
- auto director = Director::getInstance();
- auto glview = director->getOpenGLView();
- if(!glview) {
- glview = GLView::create(Don't Save Me!);
- director->setOpenGLView(glview);
- }
- /* 设置Win32屏幕大小为480X800, */
相关新闻>>
- Cocos2d-x 3.2 大富翁游戏项目开发-第二十四部分 彩票开奖
- cocos2d-x-3.3-018-游戏摇杆joystick源码分享
- Cocos2d-x虚拟摇杆控制精灵上下左右运动----之游戏开发《赵云要
- Cocos2d-x 3.2 大富翁游戏项目开发-第七部分 获取角色路径_2
- Cocos2d-x 自定义按钮类控制精灵攻击----之游戏开发《赵云要格斗
- Cocos2d-x 3.2 大富翁游戏项目开发-第七部分 获取角色路径_3
- Cocos2d-x 3.2 大富翁游戏项目开发-第八部分 角色按路径行走
- Cocos2d-x 3.2 大富翁游戏项目开发-第十部分实现人物轮流行走
- 用cocos2d-html5做的消除类游戏《英雄爱消除》(1)——系统主菜单
- Cocos2d-x3.0游戏实例之《别救我》第八篇——TiledMap实现关卡编
- 发表评论
-
- 最新评论 更多>>