ios - 在 SpriteKit 游戏中处理不同的屏幕尺寸
问题描述
我正在使用 SpriteKit 开发某种 Breakout 游戏,但我不确定如何处理 iPhone 的不同屏幕尺寸。
我的显示器是 375 点宽。在游戏中,我希望连续拥有 5 个精灵。所以一个精灵是 375 / 5 = 75 点宽。我创建了一个 75 像素宽的 PNG 图像。(还有 2x 和 3x 版本)。到目前为止,它运作良好。精灵以最佳方式分布在屏幕上。但也有屏幕宽度为 414 或 320 点的设备。我该如何处理?
我应该为这些设备创建完全不同的精灵(和位图)吗?然后我还需要不同的参数来将它们分布在屏幕上。
还是有一种我不知道的完全不同的方法来处理它?
解决方案
也许不是使用像 375 点这样的绝对值。您可以改为使用当前设备的屏幕尺寸。
let screenSize = UIScreen.main.bounds
let screenWidth = screenSize.width
let screenHeight = screenSize.height
然后你可以将 screenWidth 除以 5 并得到你的间距。这不会影响宽度为 75 像素的 PNG。我很确定图像会保持其纵横比,所以我不会太在意。我过去做过类似的事情,无论 PNG 的大小如何,它看起来总是很好。
而且您拥有 1x、2x、3x 的事实应该可以保持 PNG 的质量。
推荐阅读
- nginx - Nginx 反向代理不适用于托管在 AWS Lightsail 实例上的 Shiny Server
- python - 如何在seaborn的边缘单变量图上用黑色虚线和数字进行注释
- apache-kafka - 如何为 exasol 数据库配置 Kafka 连接接收器连接器
- java - 修改pom文件后保留注释
- haskell - 案例内的附加模式匹配
- sql - 从计算总和的表中选择具有最大值的行
- node.js - 将按位枚举转换为列表
- php - 如何在自己的键上将不同的值合并为数组
- mysql - 您可以从单元格中删除部分值吗?
- c# - 连接字符串服务器到本地需要哪些更改(SQL Server)