gpt4 book ai didi

ios - UIScreen 的边界在 SpriteKit 中不准确

转载 作者:行者123 更新时间:2023-11-28 06:21:42 25 4
gpt4 key购买 nike

<分区>

我正在制作一个管道上下移动的游戏,我需要知道屏幕的高度,以便知道管道何时应该改变方向。这是管道的起始位置:

topPipe.position.y = UIScreen.main.nativeBounds.size.height + topPipe.size.height/2
bottomPipe.position.y = UIScreen.main.nativeBounds.size.height - bottomPipe.size.height/2 - emptyGap

我知道如何完成所有这些操作,并且管道成功地上下移动,在我的 iPhone 7+ 上效果很好。然而,当我在 iPhone 5 模拟器上运行它时,管道只在屏幕上运行了大约一半,然后又下降了。似乎 UIScreen.main.nativeBounds.size.height 没有返回它正在运行的屏幕的实际高度。所以,我的应用程序不兼容除 7+ 以外的任何 iPhone,因为我在 gameScene.sks 中手动将屏幕尺寸设置为 1080 × 1920。有没有其他方法可以找到屏幕的实际高度?

如果你想看看我实际上是如何移动管道的(屏幕的 anchor 在左下角,所以我可以只添加屏幕高度并知道屏幕顶部在哪里,这很好知道 0 是屏幕的最左侧,因为管道位于左侧):

//moves pipes
if topPipe.position.y - topPipe.size.height/2 >= UIScreen.main.nativeBounds.size.height - 1{

bottomPipe.run(SKAction.move(to: CGPoint(x: bottomPipe.position.x, y: 0 - bottomPipe.size.height/2), duration: movementDuration))

topPipe.run(SKAction.move(to: CGPoint(x: bottomPipe.position.x, y: 0 + topPipe.size.height/2 + emptyGap), duration: movementDuration))

} else if bottomPipe.position.y <= 0 - bottomPipe.size.height/2 + 1{

bottomPipe.run(SKAction.move(to: CGPoint(x: bottomPipe.position.x, y: UIScreen.main.nativeBounds.size.height - bottomPipe.size.height/2 - emptyGap), duration: movementDuration))

topPipe.run(SKAction.move(to: CGPoint(x: bottomPipe.position.x, y: UIScreen.main.nativeBounds.size.height + topPipe.size.height/2), duration: movementDuration))

}

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com