0

我正在使用 SurfaceView 在 Android 上制作游戏。

我目前正在接收设备的方位角(从 -180 到 180),它工作正常。当你转身到它的位置时,我希望能够在屏幕上显示一个精灵,现在我随机设置在 -180 到 180 之间。

使用此代码,它可以工作,但是当位置不为 0 并且您旋转超过 180 度或低于 -180 度时,它会跳出屏幕。有没有办法解决这个问题?

   private fun setPositionOnScreen(azimuth: Double) {
        val distanceToLocation = azimuth - location
        x = (distanceToLocation * (screenWidth / 180)).toInt()
    }
4

1 回答 1

0
private fun setPositionOnScreen(azimuth: Double) {
    var distanceToZombie = azimuth - location
    if(distanceToZombie < -180) distanceToZombie += 360
    else if(distanceToZombie > 180) distanceToZombie -= 360
    x = (distanceToZombie * (screenWidth / 180)).toInt()
}
于 2020-11-11T13:53:11.047 回答