【VR】用鼠标vr手机陀螺仪漂移控制FPS游戏画面

Android(32)
本站文章均为原创,转载务必在明显处注明:(作者新浪微博:)&
转载自&原文链接:&&
前两篇都是向大家介绍了很有意思的两种手势操作,嵌入我们游戏中,不得不说让游戏的自由度、可玩性和趣味性都增色不少!那么今天继续给大家介绍一亮点!传感器!
一:什么是传感器:
&& &&所谓传感器能够探测如光、热、温度、重力、方向 等等的功能!
二:Android中提供传感器有哪些:
1. &加速度传感器(重力传感器)
2.&&陀螺仪传感器
3.&&光传感器
4. &恒定磁场传感器
5. &方向传感器
6. &恒定的压力传感器
7. &接近传感器
8. &温度传感器
今天我们给大家介绍的是游戏开发中最最常见的,用到的频率最高的一种传感器,加速度传感器(重力传感器)!
因为模拟器无法测试,所以我用手机调试的~,先上两张截图;
*@author Himi
*@Sensor 加速度传感器 ,也称为重力传感器
*@SDK 1.5(api 3)就支持传感器了
*@解释:此传感器不仅对玩家反转手机的动作可以检测到,而且会根据反转手机的程度,得到传感器的值也会不同!
public class MySurfaceView extends SurfaceView implements Callback, Runnable {
private Thread th = new Thread(this);
private SurfaceH
private SensorM
private SensorEventListener mySensorL
private int arc_x, arc_y;// 圆形的x,y位置
private float x = 0, y = 0, z = 0;
public MySurfaceView(Context context) {
super(context);
this.setKeepScreenOn(true);
sfh = this.getHolder();
sfh.addCallback(this);
paint = new Paint();
paint.setAntiAlias(true);
setFocusable(true);
setFocusableInTouchMode(true);
//通过服务得到传感器管理对象
sm = (SensorManager) MainActivity.ma.getSystemService(Service.SENSOR_SERVICE);
sensor = sm.getDefaultSensor(Sensor.TYPE_ACCELEROMETER);//得到一个重力传感器实例
//TYPE_ACCELEROMETER
加速度传感器(重力传感器)类型。
//TYPE_ALL
描述所有类型的传感器。
//TYPE_GYROSCOPE
陀螺仪传感器类型
//TYPE_LIGHT
光传感器类型
//TYPE_MAGNETIC_FIELD
恒定磁场传感器类型。
//TYPE_ORIENTATION
方向传感器类型。
//TYPE_PRESSURE
描述一个恒定的压力传感器类型
//TYPE_PROXIMITY
常量描述型接近传感器
//TYPE_TEMPERATURE
温度传感器类型描述
mySensorListener = new SensorEventListener() {
//传感器获取值发生改变时在响应此函数
public void onSensorChanged(SensorEvent event) {//备注1
//传感器获取值发生改变,在此处理
x = event.values[0]; //手机横向翻滚
//x&0 说明当前手机左翻 x&0右翻
y = event.values[1]; //手机纵向翻滚
//y&0 说明当前手机下翻 y&0上翻
z = event.values[2]; //屏幕的朝向
//z&0 手机屏幕朝上 z&0 手机屏幕朝下
arc_x -=//备注2
arc_y +=
//传感器的精度发生改变时响应此函数
public void onAccuracyChanged(Sensor sensor, int accuracy) {
// TODO Auto-generated method stub
sm.registerListener(mySensorListener, sensor, SensorManager.SENSOR_DELAY_GAME);
//第一个参数是传感器监听器,第二个是需要监听的传感实例
//最后一个参数是监听的传感器速率类型: 一共一下四种形式
//SENSOR_DELAY_NORMAL
//SENSOR_DELAY_UI
//SENSOR_DELAY_GAME
(我们必须选这个呀 哇哈哈~)
//SENSOR_DELAY_FASTEST
public void surfaceCreated(SurfaceHolder holder) {
arc_x = this.getWidth() / 2 - 25;
arc_y = this.getHeight() / 2 - 25;
th.start();
public void draw() {
canvas = sfh.lockCanvas();
if (canvas != null) {
canvas.drawColor(Color.BLACK);
paint.setColor(Color.RED);
canvas.drawArc(new RectF(arc_x, arc_y, arc_x + 50,
arc_y + 50), 0, 360, true, paint);
paint.setColor(Color.YELLOW);
canvas.drawText(&当前重力传感器的值:&, arc_x - 50, arc_y-30, paint);
canvas.drawText(&x=& + x + &,y=& + y + &,z=& + z,
arc_x - 50, arc_y, paint);
String temp_str = &Himi提示: &;
String temp_str2 = &&;
String temp_str3 = &&;
if (x & 1 && x & -1 && y & 1 && y & -1) {
temp_str += &当前手机处于水平放置的状态&;
if (z & 0) {
temp_str2 += &并且屏幕朝上&;
temp_str2 += &并且屏幕朝下,提示别躺着玩手机,对眼睛不好哟~&;
if (x & 1) {
temp_str2 += &当前手机处于向左翻的状态&;
} else if (x & -1) {
temp_str2 += &当前手机处于向右翻的状态&;
if (y & 1) {
temp_str2 += &当前手机处于向下翻的状态&;
} else if (y & -1) {
temp_str2 += &当前手机处于向上翻的状态&;
if (z & 0) {
temp_str3 += &并且屏幕朝上&;
temp_str3 += &并且屏幕朝下,提示别躺着玩手机,对眼睛不好哟~&;
paint.setTextSize(20);
canvas.drawText(temp_str, 0, 50, paint);
canvas.drawText(temp_str2, 0, 80, paint);
canvas.drawText(temp_str3, 0, 110, paint);
} catch (Exception e) {
Log.v(&Himi&, &draw is Error!&);
} finally {
sfh.unlockCanvasAndPost(canvas);
public void run() {
// TODO Auto-generated method stub
while (true) {
Thread.sleep(100);
} catch (Exception ex) {
public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) {
public void surfaceDestroyed(SurfaceHolder holder) {
SensorEventListener的onSensorChanged事件将返回SensorEvent对象,包含Sensor的最新数据,通过event.values获得一个float[]数组!对于不同的传感器类型,其数组包含的元素个数是不同的,重力传感器总是返回一个长度为3的数组,分别代表X、Y和Z方向的数值。Z轴表示了手机是屏幕朝上还是屏幕朝下;
这里还要注意你当前手机处于 纵向, 还是横向,因为这个会影响我们的X,Y表示的意思!
如果当前手机是纵向屏幕:
x&0 说明当前手机左翻 x&0右翻
y&0 说明当前手机下翻 y&0上翻
如果当前手机是横向屏幕:
x&0 说明当前手机下翻 x&0上翻
y&0 说明当前手机右翻 y&0左翻
我要提醒各位童鞋:
1.要考虑玩家当前拿手机的姿势,例如竖屏,横屏
2.根据横竖屏幕的不同,虽然屏幕坐标系会自动改变,但是传感器的值不会自动改变坐标系!所以为什么会横屏竖屏改变的时候我们从传感器中取出的值表示的动作不一样的原因!!!因此大家游戏开发的时候对于人物移动、图片移动等等操作的时候,手势X,Y的正负值代表什么一定要想清楚!否则玩家会玩着玩着吐的 (太晕了!)- -、
这里本应该arc_x+=x;但是因为当前我屏幕是纵向!造成x&0的手势表示玩家将手机左翻了,但是我们屏幕的圆形应该根据人的反转相对应的移动,那么这里玩家将手机左翻,我们就应该让原型的X坐标减少!所以这里写成了arc_x-=x;!
总结一下: 对于传感器的虽然本章只是讲了一个重力传感器,但是一个足够了,因为如果你想使用其他的传感器,那么你只要以下步骤就OK:
1. 利用&SensorManager.getDefaultSensor();传入一个你想要的传感器的参数得到其实例!
3.在监听器里处理事件!
OK!就是这么简单、&& & & &&
源码下载: &&&“重力传感器+源码.rar” & & & & &下载地址:&
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:3221次
排名:千里之外
转载:44篇扫一扫,访问微社区
后使用快捷导航没有帐号?
签到成功!您今天第{todayrank}个签到,签到排名竞争激烈,记得每天都来签到哦!已连续签到:{constant}天,累计签到:{days}天
当前位置: &
查看: 1242|回复: 4
《VR入门系列教程》之9---谷歌纸盒
7排名<font color="#FF昨日变化8主题帖子积分
蛮牛币2531
在线时间216 小时
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
才可以下载或查看,没有帐号?
本帖最后由 MichaelLiew 于
09:22 编辑
谷歌纸盒---基于智能手机的廉价VR眼镜& & 如果用汽车来做类比,Oculus Rift和GearVR就是特斯拉和兰博基尼,它们物美但是价不廉。要是主机性能不好,那么几百美元的Oculus眼镜就是一个鸡肋。GearVR的体验效果非常出色,但是同样价格很贵,只有那些狂热粉和前期开发者才会购买。希望以后这种高端VR设备价格降低,这样才能推向大众市场。
& & 同时,除了高端设备,还有谷歌的纸盒VR眼镜,它非常简陋、廉价,它能简单的将你的智能手机变成VR设备。2014年谷歌推出了这款纸盒眼镜,可以轻松地将你手机变成VR设备而不需要其他任何硬件。谷歌纸盒仅仅需要一个纸盒和两个凸透镜片,总价也就2美元的样子,里面放上你的手机就可以了。
& & 谷歌纸盒最早是在2014年五月的I/O大会上面亮相的,下面图2-5是它的照片。
11.jpg (22.62 KB, 下载次数: 1)
14:20 上传
& & 要体验谷歌纸盒,只需要下载安装谷歌纸盒支持的应用程序,然后将手机放在纸盒里运行程序就可以了。这时,你可以沉浸式地体验VR场景,你可以通过转动你的头部四周环视,效果不是很好但是还不错,毕竟只花了2个子儿。
& & 谷歌并没有把这个纸盒作为产品销售,它只是一个规格,你也可以根据这个规格自己DIY一个VR眼镜,下面是谷歌纸盒的规格说明书地址:/get/cardboard/manufacturers.html。
& & 如果你没空没闲心自己做一个纸盒,你也可以任何一家厂家购买已经集成好的产品,厂家包括:DODOcase、I Am Cardboard、Knox Labs、Unofficial Cardboard。这些厂家不仅出售纸盒,而且还提供相应的手机APP,你可以在Google Play和iTunes store上面下载它们。
& & 据谷歌统计,2015第一季度谷歌纸盒使用人数达到了100万,而Oculus Rift和GearVR的销量就显形见拙了许多。谷歌纸盒是一股强大的力量,目前,基于谷歌纸盒的应用达到了几百个,包括:游戏、全景视频、仿真教育等。谷歌纸盒现在如日中天,尽管它的体验效果不如Oculus Rift,但是对于许多人来说,他们第一体验VR都是用的谷歌纸盒。
谷歌纸盒的立体渲染和头动追踪技术& & 谷歌纸盒的立体渲染做得比Oculus的简单多了,它支持90度的FOV。它的SDK可以将场景渲染成左右眼两个视口,下面图2-6是Dive制作的城市过山车游戏截图。
22.jpg (50.13 KB, 下载次数: 1)
14:20 上传
图2-6& & 谷歌纸盒的头动追踪就更简单了,它直接使用的是手机内置的陀螺仪。
谷歌纸盒的输入& & 对于输入方式,谷歌纸盒在这方面还有许多要提升的,因为使用时手机被封在盒子里了,不能触摸屏幕实现点击和滑动。为了解决这个,谷歌纸盒使用了一个磁铁,这个磁铁用户可以在外面控制它,它会模拟屏幕点击效果,当然,这个功能不是每个手机都支持的。
& & 有些厂商使用了一种更加通用的方式模拟屏幕点击效果,例如旧金山的DODOcase公司,它主要生产平板电脑和手机,现在研发出用一个木质的杠杆来触动一块橡胶来模拟手指触摸,利用这个机制,开发者可以用标准触摸方式来控制程序。其他一些厂商用蓝牙这类的外设来提供输入。
开发谷歌纸盒应用& & 谷歌为其纸盒提供了两套SDK,一套用作原生安卓开发,一套用作开发,它们都可以在下面网址下载:https:/cardboard/overview/。
& & 第六章中我们将详细介绍使用原生SDK开发谷歌纸盒的应用程序。
& & 另外,不一定非得安卓开发者才可以开发谷歌纸盒应用,因为安卓系统支持WebGL,你可以开发webVR程序,这方面的内容我们将在第五章中介绍。vr游戏开发教程;3d开发者大会2015;unity3d陀螺仪;2015 unity3d开发者大会;unity3d 陀螺仪使用
每日推荐:
128/50排名<font color="#FF昨日变化18主题帖子积分
注册看看, 积分 28, 距离下一级还需 22 积分
注册看看, 积分 28, 距离下一级还需 22 积分
在线时间6 小时
hao.......
每日推荐:
61262/1500排名<font color="#FF昨日变化主题帖子积分
蛮牛粉丝, 积分 1262, 距离下一级还需 238 积分
蛮牛粉丝, 积分 1262, 距离下一级还需 238 积分
蛮牛币3410
在线时间511 小时
跟着看呢,楼主辛苦
每日推荐:
7排名<font color="#FF昨日变化8主题帖子积分
蛮牛币2531
在线时间216 小时
跟着看呢,楼主辛苦
多谢捧场!
每日推荐:
4474/500排名<font color="#FF昨日变化1主题帖子积分
四处流浪, 积分 474, 距离下一级还需 26 积分
四处流浪, 积分 474, 距离下一级还需 26 积分
在线时间190 小时
楼主继续啊&&一直等着~~~
每日推荐:
经过游戏蛮牛认证的蛮牛小翻译
在“新人报到 ”版块发过自己的照片Unity3D 陀螺仪控制摄像头脚本 - 泰课资源分享 - 泰课在线 - 国内专业的Unity在线学习平台|Unity3d培训|Unity教程|Unity教程 Unreal 虚幻 AR|移动开发|美术CG|UI平面设计|前端开发 - Powered By EduSoho
Unity3D 陀螺仪控制摄像头脚本
关于Unity3D 陀螺仪控制摄像头脚本我找了好久,最近终于找到了,现在分享给大家,有需要的可以看看。
你还没有登录,请先或!
Unity3D技术交流1群
工作时间:9:00 - 17:00
北京客服:010 -
广州客服:020 -可利用市面上绝大多数移动VR设备(如、暴风魔镜、小宅魔镜等)显示游戏画面并利用手机内置陀螺仪进行控制游戏
  游戏平台:ios、安卓  上架时间:日
  1、GeoBotsVR(射击机器人VR)
注:点图片,即可查看下一张  随着近几年来越来越多的VR设备的出现,游戏内容的缺乏成为丞待解决的一个问题。而移动VR软件平台一直以高兼容性著称,这对于游戏开发者而言,VR游戏很可能是近几年虚拟设备提供商最看重的一部分,“内容为王”已经是大家心照不宣的信条,尽管VR游戏的发展道路还很漫长,但不可否认的是,在今年已经有一些VR游戏开始崭露头角。今天就让穆海来盘点一下那些在移动VR平台的十款高品质游戏
  游戏的目标是在有限的时间内尽可能多的击落GeoBot,而快速连续的击落会获得更高的积分从而获得Cogs来购买武器和皮肤等内容。  游戏开发商:Geomedia,Inc.
  游戏类型:战斗射击
  《GeoBotsVR》(射击机器人VR)是一款战斗射击类游戏,该游戏基于ios和安卓平台,可利用市面上绝大多数移动VR设备(如、暴风魔镜、小宅魔镜等)显示游戏画面并利用手机内置陀螺仪进行控制游戏。
  作为射击游戏或许这款游戏并没有多大吸引力,但是当一款具有未来感的射击游戏以VR模式呈现在我们面前的时候,会很有代入感,游戏的趣味性也会大大提升。
编辑:KF许
------分隔线----------------------------
新闻排行榜
法律顾问:程序支持: 网站客服:小神教你如何用VR眼镜控制大疆悟的云台摄像头
以下照片质量请忽略,主要告诉大家如何实现
&&&&&&&目前有一些无人机厂商已经开始尝试用VR眼镜控制或者观看云台摄像头中的画面。但是采用这种方式的安全性、拍摄画面的稳定性,我还是对此有比较大的质疑。不过这可能确实是未来的发展趋势。&&&&&&&在专业级的领域里尤其是穿越版无人机的竞技飞行比赛中,这种应用还是很普遍并且很成熟的。穿越版无人机+肥鲨眼镜在这种竞技比赛中绝对是标配。
肥鲨眼镜,3000块左右,用于穿越版无人机较多
&&&&&&&&给大家介绍一种很简单的方法,通过用手机的陀螺仪来控制大疆悟及精灵系列无人机云台摄像头,并可以安装在VR眼镜中实现这种显示效果。&&&&&&&&刚听上去好像很高大上,其实通过一个叫做CloudLightFPV收费软件就可以实现啦!飞机和遥控器连接好,再开启CloudLightFPV软件即可。
需要安装在苹果手机上的FPV软件
目前此软件只支持IOS系统,安卓版本据说还在开发中。苹果商店中软件价格98元(真心不便宜呀)
软件中显示效果有多种选择
随便一个VR眼镜就可以,只要是放手机的那种即可
总结:从我个人的试用来看,如果有网友想尝试,还是建议使用双控版。控制摄像头的手机与副遥控器连接,这样相对还是较安全的。如果直接使用单遥控连接还是需要有穿越版无人机的遥控飞行经验,要不然就只能等着炸机了!
所属兴趣:
此帖荣誉记录
设为精华帖
理由:精华鼓励

我要回帖

更多关于 vr眼镜必须要陀螺仪吗 的文章

 

随机推荐