Egret社区

重力感应的最终奥义--平衡小球

2014-10-21 23:19
40435314
本帖最后由 张宇 于 2015-1-19 17:22 编辑

如果你只是想获取横竖屏切换的消息,请看这个帖子
我们在手机上玩一些赛车游戏,很多是通过重力感应来操作的,html5里也有相应的事件来相应。


把手机平放在桌面,有xyz三个轴,沿着三个轴转动,在js代码里可以获得转动的角度。
附件是源代码,通过重力感应让一个小球在屏幕中移动和转动
Main.ts里有一个onRotation。获得到角度以后传进来,控制小球的移动方向和旋转角度
  1. public onRotation(angleX:number,angleY:number,angleZ:number):void{
  2. this.txtX.text = "X轴:"+angleX.toString();//-90 --- +90
  3. this.txtY.text = "Y轴:"+angleY.toString();//-180 --- +180
  4. this.txtZ.text = "Z轴:"+angleZ.toString();//0-360
  5. //场景的宽高为600x600,中心点是300,300
  6. this.ball.y = 300 -angleX/90*300;
  7. this.ball.x = 300 -angleY/90*300;
  8. this.ball.rotation = angleZ;
复制代码



打开launcher/egret_loader.js。59行获得3个轴的角度,就这么2行,很简单吧。
  1. window.ondeviceorientation = function(e){
  2.         rootContainer.onRotation(Math.floor(e.beta), Math.floor(e.gamma), Math.floor(e.alpha))
  3. }
复制代码





测试地址
PS:刚发现macbook好牛逼,笔记本都有重力感应芯片,可以获得x轴和y轴的旋转角度。
游客,如果您要查看本帖隐藏内容请回复






分享到 :
26 人收藏

314 个回复

倒序浏览
hzdrt  初学乍练 | 2014-10-22 08:08:04
不错不错,长知识
阳仔仔  初学乍练 | 2014-10-22 08:34:21
不错,重力感应正好要用
xsstomy  斑竹 | 2014-10-22 09:00:53
前来顶贴,张宇所发,必属于精品啊
7yue  官方团队 | 2014-10-22 09:03:32
可以让wander把这部分逻辑做到game library扩展里。
jennie  初学乍练 | 2014-10-22 09:08:37
不错不错不错不错不错不错不错
zlrgood  登堂入室 | 2014-10-22 09:12:44
我要看不错不错不错
innocentjulie  圆转纯熟 | 2014-10-22 09:40:00
尅尅尅尅尅
houhou  圆转纯熟 | 2014-10-22 09:43:17
看起来很高大上啊
pplboy  斑竹 | 2014-10-22 09:43:54
果然好牛逼~~~
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|京网文[2014]0791-191号|京ICP证150115号|Egret社区 ( 京ICP备14025619号

Powered by Discuz! X3.2 © 2001-2019 Comsenz Inc.

返回顶部