这是电脑短时间内帧率低,无法满足游戏配置的帧率引起的。

解决方法:

第一种:

1.打开AppDelegate.cpp文件

2.把director->setAnimationInterval(1.0 / 60);改为 director->setAnimationInterval(1.0 / 50);或者更低一点。

这样游戏性能会有些许的下降,就是游戏会变的卡一点,但是物体不会乱跳,在真机上运行,我相信不会出现乱跳的情况。所以等开发完后再把帧率调回来。

第二种:

把setPosition里面的参数都用变量的形式表示,不要直接用常量,用变量比较稳定,亲试可行。

用常量表示其实是非常不好的,因为如果改变屏幕分辨率,就会造成混乱,最好是用屏幕尺寸的几分之几来表示。

第三种:

用简单的精灵节点来代替节点加子节点的形式,亲试可行。

Sprite::init();
setTexture("s_1.png");
setScale(0.2);
setPhysicsBody(PhysicsBody::createBox(this->getContentSize()));

第四种:

在有接触的实例物理对象的初始化方法init()中加上这几句

getPhysicsBody()->getShape(0)->setFriction(0);   //使此刚体的摩擦力为0
getPhysicsBody()->getShape(0)->setRestitution(0);  //使此刚体的弹性为0

之前在有接触的两个刚体之间,我只在其中一个的初始化方法init()中加上这两句,结果还是会突然跳一下,后来我在两个有接触的刚体之间都加上这两句,就没有突然跳一下,很稳。

第五种(非常有效):

在主角的init方法中把刚体属性设置成

getPhysicsBody()->setDynamic(true);  //是动态刚体,可以产生碰撞事件
getPhysicsBody()->setGravityEnable(false);  //不受重力影响

然后再定义一些动作,这些动作等价于以前是靠重力实现的动作,只是现在我们用最普通的动作来代替它们,像JumpTo,MoveTo,Blink等等代替_hero->getPhysicsBody()->setVelocity(Vec2(0, 400));

//停止之前的所有动作
this->stopAllActions();
//sprite->stopAllActions();

//把帧动画变成跳跃的纹理
this->setTexture(jump);

startPosition = size.height / 4;
JumpTo *jump = JumpTo::create(1, Vec2(200, startPosition), startPosition, 1);
//回调函数把状态重新设置成行走,执行程序时跳过这个函数,这个函数处于等待被调用的状态,直到有人用它的时候才调用
CallFunc *call = CallFunc::create([this](){
  setState(0);
});
//设置动作队列,先跳跃,再回去调用call,变成行走的动作
this->runAction(Sequence::create(jump, call, NULL));

这种方法让主角不会受物理世界重力的影响,运行起来非常稳定,一些主角跑出边界的问题也不存在了。

关于Cocos2d-x中物理世界的物体乱跳的问题的解决的更多相关文章

  1. 16--Box2D使用(二、显示物理世界)

    在上一篇文章中我们创建了的一个物理世界,当物理世界中的刚体一个也没有显示出来.为显示物理世界中的物体,我们需要引入GLES-Render(调试Box2D使用).这两个文件可以再 %Cocos_Home ...

  2. cocos2d-x快乐的做让人快乐的游戏3:cocos-2d 3.x中的物理世界

    Cocos2d-x 3.0+ 中全新的封装的物理引擎给了开发人员最大的便捷,你不用再繁琐与各种物理引擎的细节,全然的封装让开发人员能够更快更好的将物理引擎的机制加入�到自己的游戏中,简化的设计是从2. ...

  3. box2d中的物理世界

    box2d中的物理世界,即b2World类就是一个包含了各种物体(body,物理体,或者叫刚体),固定附着物(fixture,形状与物理体的绑定物)以及各种约束体(比如关节),并使其在当中完成各种交互 ...

  4. coco2d-x 3.0游戏实例学习笔记 《跑酷》 第二步---游戏界面&全新的3.0物理世界

    说明:这里是借鉴:晓风残月前辈的博客,他是将泰然网的跑酷教程.用cocos2d-x 2.X 版本号重写的,眼下我正在学习cocos2d-X3.0 于是就用cocos2d-X 3.0重写.并做相关笔记 ...

  5. 15--Box2D使用(一、创建物理世界)

    创建工程Box2DTest,去掉背景和精灵对象等.首先在HelloWorldScene.h头文件定义一个屏幕像素与物理世界长度转换宏,并引入box2D头文件 #define PIXEL_TO_METE ...

  6. Cocos2d-x3.0游戏实例之《别救我》第二篇——创建物理世界

    这篇我要给大家介绍两个知识点: 1. 创建游戏物理世界 2. 没了(小若:我噗) 害怕了?不用操心.这太简单了~! 笨木头花心贡献.啥?花心?不呢.是用心~ 转载请注明,原文地址:http://www ...

  7. cocos2d-x游戏开发 跑酷(两) 物理世界

    原创.转载请注明出处:http://blog.csdn.net/dawn_moon/article/details/21240343 泰然的跑酷用的chipmunk物理引擎.我没有细致学过这个东西. ...

  8. 关于Unity中物理引擎的使用

    物理引擎控制刚体,刚体上面贴上图片,所以看起来就是游戏运行起来的状态 物理世界计算刚体的运行状态,通过贴图显现出运算结果. 一.物理引擎 1:Unity 2D物理引擎基于Box2D封装而成;2: 物理 ...

  9. cocos2d-x游戏开发 跑酷(四) 关联与物理世界

    原创.转载注明出处http://blog.csdn.net/dawn_moon/article/details/21451077 前面一节尽管实现了一个跑动的人物,可是他只不过一个精灵在运行一个跑动的 ...

随机推荐

  1. C#趣味程序---车牌号推断

    甲说前两位同样,乙说后两位同样,丙说四位的车牌号刚好是一个数的平方.这个车牌号是多少? using System; namespace ConsoleApplication1 { class Prog ...

  2. nginx 内置变量大全(转)

    HTTP核心模块支持一些内置变量,变量名与apache里的对应.比如 $http_user_agent,$http_cookie等表示HTTP请求信息的变量.更多变量:$args, 请求中的参数; $ ...

  3. django1.8读书笔记模版高级进阶

    一.概述 想要定制或者扩展模版引擎,模版系统工作原理,自动转移特征 名词解析:模板 渲染 就是是通过从context获取值来替换模板中变量并执行所有的模板标签. 二.Context处理器 如果在模版中 ...

  4. unity 查看prefab层次

    点那个箭头,可以展开:

  5. zookeeper集群的部署

    因为这里zookeeper的集群部署都会2n+1台 Dubbo建议使用Zookeeper作为服务的注册中心. Zookeeper集群中只要有过半的节点是正常的情况下,那么整个集群对外就是可用的.正是基 ...

  6. mkdir命令的-p和-m

    mkdir命令是常用的命令,用来建立空目录,它还有2个常用参数: -m, --mode=模式 设定权限 (类似 chmod),而不是 rwxrwxrwx 减 umask -p, --parents 需 ...

  7. paip.提升性能--多核编程中的java .net php c++最佳实践 v2.0 cah

    paip.提升性能--多核编程中的java .net php c++最佳实践  v2.0 cah 作者Attilax  艾龙,  EMAIL:1466519819@qq.com  来源:attilax ...

  8. [na]数据包由于isp不稳定丢包-seq&ack

    知识参考: http://www.xianren.org/net/wireshark-q.html 背景 总行wac管理分行ap.手机终端打不开portal页面. 2,分别抓包(portal页面从wa ...

  9. 【Android】6.4 DatePickerDialog和TimePickerDialog

    分类:C#.Android.VS2015: 创建日期:2016-02-08 一.简介 在Android应用中,日期选择对话框和时间选择对话框是分别提供的. 日期选择对话框(DatePickerDial ...

  10. linux io architecture

    http://www.cs.columbia.edu/~krj/os/lectures/L24-IO.pdf http://events.linuxfoundation.org/sites/event ...