demi的博客

关于Cocos2d-x中物理世界的物体乱跳的问题的解决

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

解决方法:

第一种:

1.打开AppDelegate.cpp文件

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

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

第二种:

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

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

第三种:

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

物联网常见定位技术的优缺点

万物互联的时代也是数据为王的时代,然而在很多时候,没有对应的位置信息就意味着数据是“杂乱无章”的,可利用的价值就会大大降低。随着物联网行业这两年的蓬勃发展,定位技术在各种物联网应用场景的需求也大大提升,以下就为大家介绍几种室内外的定位技术。

1、射频识别室内定位技术

物联网常见定位技术的优缺点

射频识别室内定位技术利用射频方式,固定天线把无线电信号调成电磁场,附着于物品的标签经过磁场后生成感应电流把数据传送出去,以多对双向通信交换数据以达到识别和三角定位的目的。

射频识别室内定位技术作用距离很近,但它可以在几毫秒内得到厘米级定位精度的信息,且由于电磁场非视距等优点,传输范围很大,而且标识的体积比较小,造价比较低。但其不具有通信能力,抗干扰能力较差,不便于整合到其他系统之中,且用户的安全隐私保障和国际标准化都不够完善。

机器视觉中不同类型光源的不同打光方式的效果探究

有经验的机器视觉工程师都会认可这样一句话:机器视觉项目的成败在于能否得到一张打光优秀的图片。如果采集到的图片本身“质量”很差,那么接来下的图像处理工作就会困难重重。

由于项目的需求以及光源厂商的努力,目前机器视觉光源的类型可以说十分丰富,例如条光、背光、平行背光、同轴光、点光、隧道光、碗光、环形光、球形光、条形聚光等。根据光的波长和颜色,又可以分为X光、蓝光、红光、白光、红外光等。

网上关于光源选型方面的资料多如牛毛,我不想再重复,我想说点其他的。

在光源大家族中,有一种光最为灵活多变,它就是环形光。环形光有低角度环形光、高角度环形光等不同类型,例如0°环形光、30°环形光、45°环形光、60°环形光、90°环形光等。

不同的资料对于这个环光的“角度”定义不同,有的指“光源照射方向与水平面的夹角”,有的指“光源照射方向与镜头光轴(一般是竖直方向)的夹角”。本文采用后一种定义方式来描述。

为什么说环形光的花样多呢?因为它的口径可以不同、它的“角度”可以不同、它的光的颜色可以不同、它的安装高度也可以不同(其他光源安装高度不同差异一般不会有这么大)。

下面我以拍摄镜头模组为例,采用不同“角度”的环形光,沿着镜头光轴方向在不同高度分别采集图像,大家可以观察图像的特点与变化。

老程序员解Bug的通用套路!

千万不要当程序员面说有bug!对于新手程序员而言,在复杂代码中找BUG是一个难点。下面我们总结下老从程序员解Bug的通用套路,希望对大家有帮助。

1. IDE调试

根据项目特点和语言特点选择一个最合适的IDE,由于本人是做C++出身,最喜欢用的莫过于Visual Studio 了,这款微软开发的IDE,自从研发出来,就被称为宇宙第一编译器,能编译调试C/C++、C#、F#、Python、JavaScript、Qt、iOS等多种语言的开发。目前的VS2017还原生支持远程跨平台的软件开发,这无疑给我们常年奋战在linux/Unix黑匣子开发环境,使用G++调试的C/C++程序猿们带来了福音。

老程序员解Bug的通用套路!

2. 重构大法

如果你发现无论如何也找不到BUG,而且代码只是复杂,本身不是很长,直接重写代码吧!重构大法是解决爆炸性bug的绝招。

Android OpenGL ES 开发(十): 通过GLES20与着色器交互

1. 获取着色器程序内成员变量的id(句柄、指针)

GLES20.glGetAttribLocation方法:获取着色器程序中,指定为attribute类型变量的id。
GLES20.glGetUniformLocation方法:获取着色器程序中,指定为uniform类型变量的id。

如:

// 获取指向着色器中aPosition的index
maPositionHandle = GLES20.glGetAttribLocation(mProgram, "aPosition");
// 获取指向着色器中uMVPMatrix的index
muMVPMatrixHandle = GLES20.glGetUniformLocation(mProgram, "uMVPMatrix");

2. 向着色器传递数据

使用上一节获取的指向着色器相应数据成员的各个id,就能将我们自己定义的顶点数据、颜色数据等等各种数据传递到着色器当中了。

高清语音技术(WBS)及其在手机和蓝牙耳机中的实现

高清语音也被称为宽带语音,是一种能为蜂窝网络、移动电话和无线耳机传输高清、自然语音质量的音频技术。与传统的窄带电话相比,高清语音很大程度上提高了语音质量,减少了听觉负担。

通信产业链上的所有网络和设备都需支持高清语音才能体现出该技术的优点。到2011年6月为止,18个国家运营的20种蜂窝网络,以及33家领先的手机品牌都已支持高清语音。通过部署自适应多速率宽带(AMR-WB)语音编码,GSM, WCDMA(UMTS)和LTE蜂窝网络中已经引入了高清语音。此外, 通过使用改良的子带编码(mSBC)语音编解码技术,无线蓝牙耳机也开始支持高清语音,将免提通话与高语音质量结合在了一起。

高清语音的优点同样可以在现有网络中体现出来。随着窄带网络和设备向高清语音过渡,一种名为带宽扩展(BWE)的语音处理技术可以用来在接收终端设备上模拟类似于高清语音的通话质量,为不支持高清语音的设备提供了一个折中的解决方案。

从窄带到高清语音

自主移动机器人同时定位与地图创建(SLAM)方法概述

1. 引言:

机器人的研究越来越多的得到关注和投入,随着计算机技术和人工智能的发展,智能自主移动机器人成为机器人领域的一个重要研究方向和研究热点。移动机器人的定位和地图创建是自主移动机器人领域的热点研究问题。对于已知环境中的机器人自主定位和已知机器人位置的地图创建已经有了一些实用的解决方法。然而在很多环境中机器人不能利用全局定位系统进行定位,而且事先获取机器人工作环境的地图很困难,甚至是不可能的。这时机器人需要在自身位置不确定的条件下,在完全未知环境中创建地图,同时利用地图进行自主定位和导航。这就是移动机器人的同时定位与地图创建(SLAM) 问题,最先是由SmithSelf 和Cheeseman在1988年提出来的,被认为是实现真正全自主移动机器人的关键。

自动驾驶的核心技术是什么?

用4级或5级来定义自动驾驶很难有一个明确的标准,自动驾驶也不应该搞得很复杂。自动驾驶实际包含三个问题:一是我在哪?二是我要去哪?三是如何去?能完整解决这三个问题就是真正的自动驾驶。所以特斯拉升级后的8000美元的Autopilot 2.0只有部分线控功能,不能算真正的自动驾驶。福特、百度和谷歌这些公司做的才是真正的自动驾驶,远在特斯拉之上,两者云泥之差,天壤之别。

第一个问题是定位,自动驾驶需要的是厘米级定位。

第二个问题是路径规划,自动驾驶的路径规划第一层是点到点的非时间相关性拓扑路径规划;第二层是实时的毫秒级避障规划;第三层是将规划分解为纵向(加速度)和横向(角速度)规划。

第三个问题是车辆执行机构执行纵向和横向规划,也就是线控系统。

目前自动驾驶的技术基本上都源自机器人,自动驾驶可以看做是轮式机器人加一个舒适的沙发。机器人系统中定位和路径规划是一个问题,没有定位,就无法规划路径。厘米级实时定位是目前自动驾驶最大的挑战之一。

【Unity优化】Unity优化技巧进阶

做游戏好多年了,关于游戏优化一直是另开发者头疼的一个问题。因为优化牵扯的内容很多,要求掌握的知识点比较全面。在接下来的系列文章中,我想分享一下自己的一些经验。一些有误或者不完善之处请小伙伴们给我意见,加入一起探讨和学习。

程序消耗

所谓的优化,目的应该是尽可能减弱某种消耗,而在Unity上来说,大概可以分为以下几种:
  •   程序的运行速度
  •   程序的资源消耗
  •   程序的功耗消耗

程序的运行速度,一般是指运行帧率,也包括加载速度。是我们首要考虑的重点,也是将会花最多的精力去探讨的话题,运行帧率是游戏类项目的一个非常重要的性能指标,帧率的下降将直接导致游戏体验的下降。

程序的资源消耗,一般是指包体大小,占据用户客户端的存储空间大小,也包括网络消耗,占据多少带宽。这些虽然不那么影响用户当下的体验,不过指标太高也会降用户接受度。

程序的功耗消耗,一般是指应用程序的耗电量,一款程序做的很好,但是功耗太高,使用后短时间内发热太厉害,也会导致玩家无法使用。这种优化跟显卡直接关联,显卡厂商也有很多优化测试和评估程序帮助我们实现降低功能。

关于区块链,你应该了解这七大职业

作为一个不断发展的产业,区块链对其专业人才的需求量很大。UpWork的报告显示,仅在过去的连续三个季度里,与区块链技术相关的工作岗位就增长了2000%。大公司和初创公司都希望能够雇佣到更多掌握着区块链技术又有相关经验的人才。

在区块链技术领域找到一份工作,不仅可以让你在技术发展的前沿拥有一席之地,还代表着可以获得不菲的薪水。尤其是开发人员,可以在尚未被经济学领域接受的前沿技术中获得更多经验。专家库里受过专业培训的人数相对较少,所以如果你能及时自学,有可能增加被聘用的机会。

以下七大区块链职业是你应该了解的:

1. 入门级区块链工作