首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何调整不同位置的手机加速度计数据。

如何调整不同位置的手机加速度计数据。
EN

Stack Overflow用户
提问于 2016-06-01 21:21:18
回答 1查看 95关注 0票数 0

我正在使用Android制作一个LibGDX游戏,其中一个外星UFO必须避免进入小行星,而UFO使用加速度计数据移动。

代码语言:javascript
复制
    //Gets and smoothens accelerometer data. Values for x and y are switched because the game is played in landscape mode. 
    currentAccelerometerX = Gdx.input.getAccelerometerY();
    currentAccelerometerX = currentAccelerometerX * alpha + lastAccelerometerX * (1 - alpha);
    currentAccelerometerY = Gdx.input.getAccelerometerX();
    currentAccelerometerY = currentAccelerometerY * alpha + lastAccelerometerY * (1 - alpha);

    //Moves the alien
    alien.alienX += (currentAccelerometerX * 5);
    alien.alienY -= (currentAccelerometerY * 5);

    lastAccelerometerY = currentAccelerometerY;
    lastAccelerometerX = currentAccelerometerX;

当手机被拿着时,这个代码可以工作,这样手机的后部和地板是平行的,但是过一段时间后,这样的位置会让人感到不舒服。我想知道如何才能考虑到设备当前的旋转,并相应地调整UFO的运动。

问题似乎只与外星人的Y位置有关,这意味着手机的x加速度计数据(由于游戏是在景观模式下进行)的值被切换。当手机保持在一个角度到地板,然后不明飞行物只是停留在屏幕的底部边缘附近。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-06-01 21:35:30

JollyGoodSir,当一个新游戏开始时,拍一张加速度计当前状态的快照,并将其设置为基准点。现在,当您检查加速度计的状态是否发生变化,以了解倾斜是如何改变的,将其作为一个增量与这个基数进行比较。现在,您的游戏将简单地校准到任何位置,您持有的设备在游戏开始时。快乐日子:-)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37578989

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档