physicsworld-添加了一个物理世界后(有重力),添加了一个带刚体的精灵,但精灵时不时会自己弹起来,为什么?

问题描述

添加了一个物理世界后(有重力),添加了一个带刚体的精灵,但精灵时不时会自己弹起来,为什么?

添加了物理世界并设置重力,并用一个空心盒子承载
auto scene = Scene::createWithPhysics();

Vect gravity(0, -1000.0);
scene->getPhysicsWorld()->setGravity(gravity);
//开启测试模式
scene->getPhysicsWorld()->setDebugDrawMask(PhysicsWorld::DEBUGDRAW_ALL);
auto visibleSize = Director::getInstance()->getVisibleSize();
//创建一个空心盒子刚体作为世界边界
auto body = PhysicsBody::createEdgeBox(Size(visibleSize.width,visibleSize.height-100),PHYSICSBODY_MATERIAL_DEFAULT,3);
//body->setDynamic(false);
//  body->setContactTestBitmask(1);
//body->getShape(0)->setRestitution(0);
//创建一个节点,用来承载刚体,这样刚体就能参与到游戏的物理世界
auto node = Node::create();
node->setPosition(Vec2(visibleSize.width / 2, visibleSize.height / 2));
node->setPhysicsBody(body);
scene->addChild(node);
auto layer = HelloWorld::create();
scene->addChild(layer,10);

然后给精灵设置了刚体,并把弹性设置为0
auto playerPhysicsBody = PhysicsBody::createBox(this->getContentSize());

playerPhysicsBody->getShape(0)->setFriction(0);
playerPhysicsBody->getShape(0)->setRestitution(0);
playerPhysicsBody->setCategoryBitmask(1);
playerPhysicsBody->setCollisionBitmask(1);
playerPhysicsBody->setContactTestBitmask(1);
this->setPhysicsBody(playerPhysicsBody);

精灵落下后,并不会弹起,可以过一会,我并不做任何操作,他自己会弹一下弹一下,有时高有时低,还会弹不见。

请问下该如何解决,我想让精灵没有弹性。

解决方案

http://www.zhihu.com/question/38069607

时间: 2024-10-28 11:32:52

physicsworld-添加了一个物理世界后(有重力),添加了一个带刚体的精灵,但精灵时不时会自己弹起来,为什么?的相关文章

让世界变得更智能:虚拟世界和物理世界的纽带

刚泡好的清茶摆在面前,你眼睛看到的是杯子,鼻子闻到的是茶香,嘴巴尝到的是微苦味,用手摸一下还较烫-- 人体器官的感知综合在一起时,人便得出了这一杯清茶的判断.假如把清茶的感知信息传上互联网,人们便能通过网络随时了解清茶的情况. 若成万上亿计物品的感知信息,都能如这杯清茶一样上传到互联网供人使用,这就是"传感网",又称"物联网". 虚拟世界和物理世界的纽带 那么,物联过程是怎么实现的? 据微软亚洲研究院常务副院长赵峰介绍,首先,每一个物理世界中每一样东西,无论钥匙还是

华米黄汪:给每个人一枚物理世界的ID

    下午3点,在五彩城楼上的一间会议室里.前媒体人.现小米产品经理夏勇峰左手戴着一枚普通的腕表,右手一枚黑色的小米手环.在采访间隙,夏勇峰说他们不爱回答"在物联网上有什么布局"一类的问题,一屋的记者都笑了.夏的左边坐着华米科技的CEO黄汪,跟夏一样,黄的腕上也戴着一枚小米手环.不过是橙黄色的,更为鲜亮. 技术人黄汪 在华米之前,技术出身的黄汪,他的上一个公众身份是智器的CEO.宅客君知道的智器带有这样的标签:合肥.国产平板.阅读和Z-Watch. 智器的平板主打了高配低价,在国内发

ArrayList.add()添加一个元素后,会把前面一个元素覆盖

    今天写程序时,每次取值均正确,但是不管怎么输出,都是输出最后一次 add 的值,百思不得其解,后来才发现,java的list的 add方法引用的是地址,如果是全局的话,每次引用的值都一样,取的值也就一样了.每次add都用new一个新实体就可以解决问题了,接近两小时的青春浪费了,就因为一行代码位置错误,对 list 不熟悉. 大概如下: FlightInfoVo fInfoVo = new FlightInfoVo(); for() { fInfoVo.set ; ............

《Microduino实战》——3.3 点灯——迈入物理世界

3.3 点灯--迈入物理世界 在物理世界中,感应和控制才是"王道".接下来,从简单的控制开始,即控制一个LED,目的是让读者弄明白如何通过控制芯片的I/O引脚去驱动外部的物理世界. 发光二极管是一种能够发光的半导体电子元件,如图3-21所示.在它两端存在合理的电压差它就能发亮.电阻可以用来限制电流,保护电子元器件.我们常见的是色环电阻,每种颜色代表着一个数字,这些色环的组合可以用来表示该电阻的阻值.读者可自行参阅相关资料[4],掌握通过色环来识别阻值的知识.当然,也可以万用表直接测量阻

主宰宇宙宿命的法则:揭秘物理世界的四大定律

揭秘物理世界的四大定律 从17 世纪开始,物理学家们就在努力探索物理定律是如何构造并控制宇宙的.这与欧洲早期的探险家们进行的地理大发现很像(见图2-1). 1506 年,马丁· 瓦尔德泽米勒(MartinWaldseemuller)绘 1570 年,亚伯拉罕·奥特柳斯(Abraham Ortelius)绘 1744 年,伊曼纽尔· 鲍恩(Emanuel Bowen)绘 图2-1 1506-1744 年的世界地图 1506 年,欧亚大陆的版图已然清晰,但南美洲仍在"朦胧"之中.1570

Swift游戏实战-跑酷熊猫 11 欢迎进入物理世界

原文:Swift游戏实战-跑酷熊猫 11 欢迎进入物理世界   物理模拟是一个奇妙的事情,以此著名的游戏有愤怒的小鸟.我们在这节将会一起来了解如何设置重力,设置物理包围体,碰撞的检测. 要点: 设置物理检测的代理: 让主场景遵循SKPhysicsContactDelegate协议.通过didBeginContact方法来响应物体之间是否碰撞.自然,我们要把物理系统的代理设为主场景. self.physicsWorld.contactDelegate = self 设置重力: self.physi

微服务的持续集成,四步“构建”一个代码世界

本文讲的是微服务的持续集成,四步"构建"一个代码世界,大师Martin Fowler对持续集成是这样定义的:持续集成是一种软件开发实践,即团队开发成员经常集成他们的工作,通常每个成员每天至少集成一次,也就意味着每天可能会发生多次集成.每次集成都通过自动化的构建(包括编译,发布,自动化测试)来验证,从而尽快地发现集成错误. 今天我们就来聊一聊微服务的持续集成. 目录 一.持续集成之构建 二.持续集成之部署 三.持续集成之测试 四.持续集成之发布 五.总结 一.持续集成之构建 当微服务产生

rownumberer-Extjs4 tabpanel 一个页面关闭后再打开报错

问题描述 Extjs4 tabpanel 一个页面关闭后再打开报错 去年毕业,在公司一直做C/S的软件,最近工作不是很忙,就自己学习了下Extjs4 问题如标题所示.报错信息: TypeError: Argument 1 of Node.insertBefore is not an object. 我是用的desktop + Extjs提供的mvc 做的. 下面贴出部分代码 controller init:function(){ var self=this; coreApp=self; this

android-谁有phoneGap的实例代码,点击返回按钮后,只是返回上一个页面,而不是退出程序????

问题描述 谁有phoneGap的实例代码,点击返回按钮后,只是返回上一个页面,而不是退出程序???? 谁有phoneGap的实例代码,点击返回按钮后,只是返回上一个页面,而不是退出程序????,急救,急救,急救???帮忙发一份谢谢,(1987528122)这是qq号,多谢了,希望各位帮帮忙!!!!!!!!!! 解决方案 添加backbutton事件,做你的相关操作cordova/phonegap实现再按一次退出效果