我想制作一个景观应用程序,使其成为通用型,这样精灵节点就可以按比例缩放到运行应用程序的任何视图大小。我想要一个完全以编程方式的解决方案,因为我不喜欢Interface Builder。
我的游戏非常简单,不需要任何形式的滚动或缩放,因此整个游戏将始终存在并占据整个视图。
是否可能我正在寻找的是始终适合视图的场景大小?如果是这样的话,您能否详细解释一下,因为我已经尝试更改了我的视图控制器的这一部分。
if let scene = GameScene(fileNamed:"GameScene")
作为构造函数方法,它带有一个尺寸参数,但Xcode不喜欢这样做。
我尝试过的事情
- 使用self.view.bounds.width/height的分数。这通常会使所有iPhone看起来很好,但在iPad上会拉伸和扭曲节点以及周围视图的边界框。
- 在所有四种类型中更改scaleMode。我想保持良好的实践,并感觉.AspectFill(默认)是应该让我的应用程序正常工作的一种。但是,我愿意听取建议。注意; 我不希望任何设备出现黑边缘,只显示/按比例缩放整个视图。
- 应用编程约束。现在我对此还比较陌生,不完全理解约束,但是我没有看到任何教程,甚至来自RayWenderlich的教程都没有涉及节点上的约束,因此我没有深入研究这个问题。
使用像这样的方法在视图之间转换点。这实际上对于节点位置的点定位效果非常好,如果可能,我希望这种方法能够起作用,但是我仍然面临节点大小的问题。而且当我使用此方法构建iPad时,视图似乎以纵向开始,节点看起来很好,但是然后我必须手动切换到横向,sprites和视图边界再次混乱。这是方法:
func convert(point: CGPoint)->CGPoint { return self.view!.convertPoint(CGPoint(x: point.x, y:self.view!.frame.height-point.y), toScene:self) }
无数关于RW和互联网其他地方的视频教程。
提前感谢!我很感激您的帮助。我知道这个话题很奇怪,因为很多人都会问问题,但每个人的情况似乎都不同,所以一个解决方案并不适用于所有人。