如何在屏幕上显示相对于方位的子画面

问题描述

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

我目前正在接收设备的方位角(从-180到180度),该方位可以正常工作。我希望当您转到该位置时可以在屏幕上显示一个精灵,现在我将其随机设置在-180和180之间。

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

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

解决方法

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()
}