我正在尝试从刺猬索尼克2(Sonic the Hedgehog 2)中重新创建奖励阶段,他正在Android Studio上穿越一个半烟斗收集环。现在,我想使用根据抛物线通过手机的加速度计(Z旋转)确定角色的移动;角色的位置不得超过管道的边缘。问题是无论我对x和y坐标做什么,位置的变化都是最小的。我使用的是1080 x 1920 Nexus 5的模拟器。与旋转或设置角色动画有关的其他建议也将不胜感激。
这里有个视频供参考:https://youtu.be/JgbFHHHE4Vk
还有我的onSensorChanged()方法(x是位图的“左”值,y是“顶部”,z是z旋转值:
@Override
public void onSensorChanged(SensorEvent event) {
//tilt phone and change position
float[] values = event.values;
float z = values[0];
x = (1080/360) * (z + 180);
y = (-109 / 21609) * (x - 442) * (x - 442) + 975;
Log.d("TAGz", "(" + x + ", " + y + ")");
}
编辑:
我通过Logcat检查了x和y坐标,由于某种原因我无法检测到x在z为180度时为540,而z为-180度时为540