Himi 原创, 欢迎转载,转载请在明显处注明! 谢谢。
原文地址:http://blog.csdn.net/xiaominghimi/archive/2011/01/16/6143520.aspx
前两篇都是向大家介绍了很有意思的两种手势操作,嵌入我们游戏中,不得不说让游戏的自由度、可玩性和趣味性都增色不少!那么今天继续给大家介绍一亮点!传感器!
一:什么是传感器:
所谓传感器能够探测如光、热、温度、重力、方向 等等的功能!
二:Android中提供传感器有哪些:
1. 加速度传感器(重力传感器)
2.陀螺仪传感器
3.光传感器
5. 恒定磁场传感器
6. 方向传感器
7. 恒定的压力传感器
8. 接近传感器
9. 温度传感器
今天我们给大家介绍的是游戏开发中最最常见的,用到的频率最高的一种传感器,加速度传感器(重力传感器)!
因为模拟器无法测试,所以我用手机调试的~,先上两张截图;
备注1:
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的正负值代表什么一定要想清楚!否则玩家会玩着玩着吐的 (太晕了!)- -、
备注2 :
这里本应该arc_x+=x;但是因为当前我屏幕是纵向!造成x>0的手势表示玩家将手机左翻了,但是我们屏幕的圆形应该根据人的反转相对应的移动,那么这里玩家将手机左翻,我们就应该让原型的X坐标减少!所以这里写成了arc_x-=x;!
总结一下: 对于传感器的虽然本章只是讲了一个重力传感器,但是一个足够了,因为如果你想使用其他的传感器,那么你只要以下步骤就OK:
1. 利用SensorManager.getDefaultSensor();传入一个你想要的传感器的参数得到其实例!
2.注册!
3.在监听器里处理事件!
OK!就是这么简单、
源码下载地址:http://download.csdn.net/source/2985714
分享到:
相关推荐
在Android平台上进行游戏开发,SurfaceView是一个至关重要的组件,它为高效、低延迟的图形绘制提供了可能,尤其适合用于创建动态、高性能的游戏画面。本文将深入探讨如何利用SurfaceView进行游戏开发,以及与之相关...
在Android平台上进行2D游戏开发是一项充满挑战和乐趣的任务,特别是在设计涉及物理模拟的游戏时,如本案例中的“重力感应足球”。这个小案例提供了一个实际应用,它利用了Android设备内置的加速度传感器,让玩家通过...
重力球》是一款基于物理传感器技术的安卓游戏,它充分利用了移动设备内置的重力感应器来实现游戏的交互。通过分析这款游戏的源代码,我们可以深入了解安卓游戏开发中的物理模拟、传感器数据处理以及游戏逻辑构建等多...
在Android平台上开发游戏时,SurfaceView是一个至关重要的组件,它为高效、低延迟的图形渲染提供了可能。SurfaceView是Android系统提供的一种特殊视图,它有自己的独立绘制表面,与主线程分离,使得游戏或者视频这类...
在Android游戏开发中,SurfaceView是一个非常重要的组件,它提供了高效、低延迟的图形渲染机制,特别适合用于游戏和实时视频等对性能要求较高的场景。本篇将详细讲解如何使用SurfaceView来实例控制角色移动。 首先...
在Android平台上开发游戏时,SurfaceView是一个非常重要的组件。它提供了低延迟的显示功能,并且支持双缓冲机制,这对于实时渲染图像非常关键。相比于传统的View组件,SurfaceView在性能上有着显著的优势。 #### 二...
在Android开发中,利用重力感应来实现特定功能是一种常见的技术。通过集成传感器API,开发者可以获取设备的重力变化数据,从而实现如来电时翻转手机静音这样的实用功能。下面将详细介绍如何在Android中利用重力感应...
import android.app.Service; import android.content.Context; import android.graphics.Canvas; import android.graphics.Color; import android.graphics.Paint; import android.graphics.RectF; import android....
在Android游戏开发的世界里,初学者常常需要一个良好的起点来理解和掌握这个领域的基本概念和技术。"Android 游戏开发入门随书光盘的代码"提供了一个理想的资源库,帮助新手们快速进入游戏开发的殿堂。这个压缩包...
这个压缩包文件包含了一个完整的Android重力球游戏的源代码,该项目是在ADT(Android Developer Tools)环境下开发的。ADT是Google为Android开发者提供的一个集成开发环境,它包括了Eclipse IDE和针对Android开发的...
在Android游戏开发中,触屏控制人物移动是一个常见的功能,特别是在角色扮演游戏(RPG)或者动作游戏中。这个功能使得玩家能够通过手机或平板电脑的触摸屏来操纵游戏主角的行动,增强游戏的交互性和沉浸感。下面将...
在Android游戏开发中,物体来回移动是一个常见的动态效果,它涉及到动画原理、坐标系统、帧率控制以及物理运动规律等多个知识点。在这个主题中,我们将深入探讨如何实现物体在屏幕上来回移动的效果,并结合具体的...
Android123做的一个关于Android游戏开发的教程 1.Android游戏开发之旅一 长按Button原理 2.Android游戏开发之旅二 View和SurfaceView 3.Android游戏开发之旅三 View类详解 4.Android游戏开发之旅四 Canvas和...
在Android游戏开发中,将一个`Button`控件悬浮于`SurfaceView`之上是一项常见的需求。这通常是为了解决在游戏界面中添加交互元素,如暂停、设置或返回按钮,以便用户可以随时进行操作。本篇文章将深入探讨如何实现这...
该资源是一个完整的android项目,主要是利用surfaceview和android的重力传感器实现自由落体的模拟,包括碰撞和瞬间改变重力加速度的方向等。该案例是我模拟物理引擎的一个例子,主要是参照“动量守恒定律”和“动能...
书中可能会详细讲解如何使用Java或Kotlin编程语言来实现游戏逻辑,并利用Android的SurfaceView或者更现代的OpenGL ES进行图形绘制。OpenGL ES是一个强大的图形库,适用于移动设备,它允许开发者创建复杂的3D游戏场景...
在Android平台上开发游戏时,`SurfaceView`是一个非常重要的组件,它是专为高性能绘图设计的,常用于创建动画或游戏。本篇文章将深入探讨如何使用`SurfaceView`来编写一款简单的小游戏。 首先,我们需要了解`...
本篇将详细讲解如何在SurfaceView中实现多点触控,以及如何实现在触摸事件中的移动和放大缩小功能。 1. SurfaceView基础 SurfaceView不同于普通的View,它拥有自己的Surface对象,可以独立于UI线程进行渲染,避免...
在Android平台上,开发一款基于SurfaceView的小游戏是一个有趣且具有挑战性的任务。SurfaceView是Android系统提供的一种特殊视图,它允许开发者创建高性能、低延迟的图形界面,非常适合用于游戏和视频播放等需要连续...