怎么给手机游戏加手机重力感应是什么控制

404 Not Found
The requested URL /sys/prd/prd/acer-E1-jnzmjd-475275.html was not found on this server.
Apache/2.2.15 (CentOS) Server at今日论坛第 1 个签到,每日签到可得财富值+2,连续5天签到后再连续签到则每日可得财富值
+4,记得每天都来签到哦~
上一主题:
下一主题:
查看: 19470 | 回复: 74
想用手机重力感应控制电脑玩游戏? 让你轻松搞定!
财富值 276
交易信用 0
积分/帖子:311
连续签到天数:0
全部签到天数:0
注册时间:
手机型号:
状态: 离线
想用手机重力感应控制电脑玩游戏? 让你轻松搞定!
注册以来一直潜水,这几天写了个小程序,就发出来分享给大家吧。保证可用。
利用手机的重力感应装置,通过蓝牙发送姿态数据给电脑(需要电脑上有蓝牙适配器),电脑上的客户端将接收到的数据映射为按键,通过这种方法来操作电脑(主要是玩一些游戏)。
注意客户端模拟按键的方法为发送Windows消息来模拟四个方向键,对于大部分Windows程序是有效的。但是诸如极品飞车这种赛车游戏为了提高对键盘的响应速度,是通过Direct Input直接读取键盘数据,绕过了Windows消息机制,因此,这个程序不能用来玩大型的赛车游戏,其它的较次的赛车游戏、Flash游戏、小游戏等都可以使用。
整个系统全部使用Python开发(Python 2.5.4,PyS60 2.0.0),且仅为个人实验项目,所以可能不太完善,但基本功能已经实现。项目源代码全部开源发布。
需要安装 PyS60 2.0.0,即PY平台2.0版本。需要注意的是,在 塞班 论坛流传的 SuperPY 2.5 其实是国人修改的 PyS60 1.5.4 版本(这个版本我没有找到重力感应的库,所以用的PyS60 2.0.0),所以安装了 SuperPY 2.5 的需要安装 PyS60 2.0.0, 不过可喜的是同时安装 SuperPY 2.5 和 PyS60 2.0.0 并不冲突(经作者测试)。所以刷了固化了 SuperPY 2.5 的固件的、或者装了 SuperPY 2.5的,直接再装一个 PyS60 2.0.0 即可。
先安装&&pips. sis (刷了DIY固件的可能提示已经安装,那么可以不装 pips. sis ),然后安装 Python_2.0.0. sis(反正我是装C盘了,没测试装E盘有没有用),最后安装 Server_v1_0_0. sis 即可。
Nokia 5230 下测试通过。
需要有蓝牙适配器(15块一个吧),就用Window自带的驱动就好(其它驱动未测试)。本程序在 Win7 64位 和 Win7 32位 下测试通过。
使用方法:
1.安装好手机端软件。
2.在电脑上解压出客户端那个文件夹。
3.启动手机蓝牙、电脑开启(插好)蓝牙,将手机与电脑配好对。
4.启动手机上的 Server 程序。注意启动时手机会提示你接入点什么的,这可能是 PyS60 2.0.0 要联网吧,不要管它,点否,记住啦!
5.启动电脑上客户端那个文件夹里面的 Client.exe。
6.电脑上的客户端会搜索周围的蓝牙设备,搜索完后,会显示出电脑周围的蓝牙的编号和名字,先根据你手机的蓝牙名找到你手机的编号,然后输入编号;输入编号后客户端会要你输入手机蓝牙端口号,这个时候就看你手机上的程序显示的port是多少,就输入多少(一般是10)。
7.连接成功后客户端会显示 &Connect Success!!!&(若客户端直接关闭可能是你输错了或者程序发生了错误),这个时候就可以用手机来对电脑进行一些操作了。
8.操作方法:双手握着手机,屏幕对着自己,屏幕朝外翻是 上,屏幕朝内翻是 下,向左倾是 左,向右倾是 右。
9.打开一个游戏,这个时候手机就可以代替方向键进行操作了。
10.退出:关闭手机上的程序,电脑上的客户端会自动退出。
另外,拍了个演示视频(镜头里那人不是我哈...),在这里:www点tudou点com/programs/view/6VPEEJwn9jg/&&(没有和谐吧)
各位觉得有意思的就顶一下,鼓励一下哈~~
附件在下面:
&&下载次数: 53
&&下载次数: 44
&&下载次数: 26
评分次数:1 次 &人气值: +2 &&&&
财富值 276
交易信用 0
积分/帖子:311
连续签到天数:0
全部签到天数:0
注册时间:
手机型号:
状态: 离线
[s:21]&&强大的塞班啊~&&瞬间就沉了~~ 顶上去~
财富值 276
交易信用 0
积分/帖子:311
连续签到天数:0
全部签到天数:0
注册时间:
手机型号:
状态: 离线
&&没人要啊~&&再顶一次就不玩了~
财富值 2378
交易信用 0
人气值 101
积分/帖子:2371
连续签到天数:0
全部签到天数:0
注册时间:
手机型号:
状态: 离线
连图都没有
小潭幽幽,伐竹取道。――塞班论坛dospy小筏
财富值 203
交易信用 0
r 一念放下、万般自在°
积分/帖子:1396
连续签到天数:0
全部签到天数:0
注册时间:
手机型号:
5230→xt883(cm9)
来自:未知の国度
状态: 离线
技术贴啊,支持
交易信用 0
积分/帖子:444
连续签到天数:0
全部签到天数:0
注册时间:
手机型号:
来自:江西
状态: 离线
楼主辛苦!
最难过的一句话-
Love songs heard even if it's miss, forget about it.
情话听过就算了吧-
情人错过就忘了吧-
财富值 276
交易信用 0
积分/帖子:311
连续签到天数:0
全部签到天数:0
注册时间:
手机型号:
状态: 离线
上图~~ 图片是这样传的么~~
(29.65 KB)
交易信用 0
积分/帖子:33
连续签到天数:0
全部签到天数:0
注册时间:
手机型号:
来自:云南昭通
状态: 离线
技术贴一定要支持!
交易信用 0
积分/帖子:95
连续签到天数:0
全部签到天数:0
注册时间:
手机型号:
状态: 离线
喷怒的小鸟1
交易信用 0
积分/帖子:15
连续签到天数:0
全部签到天数:0
注册时间:
手机型号:
状态: 离线
UID 6939669
交易信用 0
积分/帖子:59
连续签到天数:0
全部签到天数:0
注册时间:
手机型号:
状态: 离线
交易信用 0
积分/帖子:22
连续签到天数:0
全部签到天数:0
注册时间:
手机型号:
状态: 离线
这样也行的啊
财富值 712
交易信用 0
积分/帖子:841
连续签到天数:0
全部签到天数:0
注册时间:
手机型号:
状态: 离线
[s:21]看见技术帖就头疼,不过的顶
交易信用 0
积分/帖子:196
连续签到天数:2
全部签到天数:8
注册时间:
手机型号:
状态: 离线
顶啊!!!!!
财富值 178
交易信用 0
积分/帖子:283
连续签到天数:0
全部签到天数:0
注册时间:
手机型号:
状态: 离线
个人随我主张
微信扫一扫关注dospy问题补充&&
本页链接:
这种游戏很多,比较有名的就是狂野飙车系列和极品飞车系列还有真实赛车系列。
•回答
•回答
•回答
•回答
•回答
重力感应的赛车游戏很多,你给个截图我帮你看
chendingju23&
猜你感兴趣
服务声明: 信息来源于互联网,不保证内容的可靠性、真实性及准确性,仅供参考,版权归原作者所有!Copyright &
Powered by[转载]基于Unity3d的安卓重力及触屏控制的飞行游戏范例-程序调试
&这次我们要实现利用手机的重力系统来控制场景中的飞机。
&我们可以打开软件自带的Scripting reference,在help选项栏下。
&在search中输入Input。
这些是列出的结果,我们看看Input.acceleration
对其功能进行具体研究
.acceleration 加速度
static var acceleration :
Last measured linear acceleration of a device in
three-dimensional space (Read Only).
最近一次测量的设备在三维空间中的线性加速度(只读)
using UnityE
using System.C
public class example :
public float speed = 10.0F;
void Update() {
dir.x = -Input.acceleration.y;
dir.z = Input.acceleration.x;
if (dir.sqrMagnitude & 1)
dir.Normalize();
transform.Translate(dir * speed);
// Move object using accelerometer&
//使用加速计移动物体&
var speed = 10.0;&
&function Update ()&
&var dir :
// we assume that device is held parallel to the ground&
&// and Home button is in the right hand&
&//我们假设设备此时平行于地面
&//并且主页键正在右手边&
&// remap device acceleration axis to game coordinates:&
// 1) XY plane of the device is mapped onto XZ plane&
&// 2) rotated 90 degrees around Y axis&
&//重新映射设备加速计的坐标轴给游戏坐标&
&//1)设备的XY平面映射到游戏中的XZ平面&
&//2)沿着Y轴旋转90度&
&dir.x = -Input.acceleration.y;&
&dir.z = Input.acceleration.x;
// clamp acceleration vector to unit sphere&
&//限制加速度向量在一个单位范围内&
&if (dir.sqrMagnitude & 1)&
&dir.Normalize();
// Make it move 10 meters per second instead of 10 meters per frame...&
//将每帧移动10米改为每秒移动10米&
&dir *= ;&
// Move object&
&//移动物体&
&transform.Translate (dir * speed);
这个函数是通过取得设备平面各个坐标轴向的加速度来控制目标的移动的,这下我们可以通过对函数进行一点修改来实现飞机的旋转动作,因为示范函数上给出了很多可以直接套用的内容,所以这样修改起来是十分简单的。
我们在Project窗口中的Script文件夹中创建一个JavaScript,将其命名为moveconrol
对脚本内容进行编写:
var roll = 80; &// 目标旋转的速度为80
var player : Transform
; //控制对象
function Update()
// 利用手机的重力感应系统来控制目标旋转
var dir : Vector3 = Vector3.
//重新映射设备加速计的坐标轴给游戏坐标&
&& &dir.x = Input.acceleration.x;
&& &dir.z = Input.acceleration.y;
//限制加速度向量在一个单位范围内
&& & & if (dir.sqrMagnitude & 1)
&& & & dir.Normalize();
//将每帧移动10米改为每秒移动10米&& & &&
&& & & dir *= Time.deltaT
//旋转物体
&& & & player.Rotate(dir*roll);
编译好后将代码直接拖动赋给场景中的对象,
这时就可以通过手机的重力系统来对飞机进行旋转控制了。
但是我们还需要让飞机在场景中移动起来,我们看看prefabs中的dua touchpads,这是系统自带的一个触屏GUI按钮,我们可以直接套用这个按钮进行使用,但是在使用之前我们需要对它本身的程序进行一点了解。
它们所使用的程序就是joystick,我们打开script文件夹中的joystick.js进行了解,也许熟悉程序的人很快就可以知道这些程序的作用,这里我就直接说了。
其中我们需要用到得函数就是&IsFingerDown函数,这个函数的作用是当GUI位置接收到触碰时返回一个布尔值,这样GUI按钮就能起作用了。
我们对这个dual touchpads本身进行一点修改。
这里我们给它修改一下GUI贴图,
我随便做了几个UI图
/file/dnen0rsu
可以拿去使用。
我们先做控制飞机进行水平旋转的GUI,将dual toucupads复制一个并命名为turningpad,
将子对象分别命名为LeftTouchPad和RightTouchPad并拖入场景,选中这两个touchpad在Pixel inset中调节好GUI的位置,具体位置可以按照手机屏幕大小来调节,然后给GUI加上贴图
我们再将Project中的Dual touchpads命名为speedpad并拖入场景用同样的方法调节好位置加上贴图。
我做出来后是这个样子。
然后我们给飞机添加一个box collider的物理属性并调节好大小
然后给物体再附加一个rigidbody的物理属性,
具体参数大家按自己意愿去设置
下面我们开始编程。
在movecontrol上行添加几个变量
var pow = 0.45; &// 飞机的推进力
var yawnleft : J &// 控制水平旋转的joystick
var yawnright : J
var acceleration : J
// 控制速度的joystick
var deceleration : J
var speed:&// 飞机的移动速度
在Update函数中继续编写
// 重力对飞机速度的影响
var anglex = player.localEulerAngles.x;
var damp = Mathf.PI*anglex/180;
speed =pow+0.3*Mathf.Sin(damp)*Time.deltaT
// 飞机以speed值向前(按Z轴)移动
player.Translate (0,0,speed);
// 当平转按钮接收到触碰时对对象进行水平旋转
if (yawnleft.IsFingerDown())
player.Rotate(0,-0.1,0);
if ((yawnright.IsFingerDown()))
player.Rotate(0,0.1,0);
// 当速度按钮按下时对推进力进行控制
if ((acceleration.IsFingerDown())&&(pow&=2.5))
pow+=0.3*Time.deltaT
else if ((deceleration.IsFingerDown())&&(pow&0.26))
pow-=0.3*Time.deltaT
else if ((deceleration.IsFingerDown())&&(speed&0)&&(pow&=0.26))
pow-=0.01*Time.deltaT
else if (speed&0.45)
pow-=0.3*Time.deltaT
else if (speed&0.45)
pow+=0.3*Time.deltaT
// 当速度过低时,飞机进入失速状态
if (speed&0.26&&speed&0)
player.rigidbody.useGravity =
// 速度回升后飞机脱离失速状态
player.rigidbody.useGravity =
// Y轴(垂直方向)移动速度归零
player.rigidbody.velocity.y = 0;
然后保存,
在场景中我们选中对象,在Inspector窗口中对movecontrol各个参数进行设置
将场景打包好放入手机中尝试运行一下,这时候我们就可以利用触屏和重力感应来控制飞机了。
下次我们将讲一些关于细节方面的物理效果。
PS:这次时间比较仓促所以很多地方讲的不是很到位,请大家多多包涵~~~XD
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。《啊!火箭》重力感应控制火箭游戏(2)
  这款游戏融合了mega jump的跳跃感和Jetpack?Joyride的升级感, 并融合了一些新游戏的特性。相信你一定会在游戏过程中体会到新奇的, 刺激的, 以及极具挑战性的感受。还在犹豫什么?赶紧调整状态, 全神贯注的投入到《啊-火箭》带给你的乐趣吧。
  【更多手机游戏资讯、评测、攻略,请关注91手机游戏:】
  【玩家论坛:】
  【手游交流QQ群:】
共2页: 跳转到页
手机新闻推荐
手机相关资讯}

我要回帖

更多关于 手机重力感应是什么 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信