微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

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

我正在使用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()
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。