0
我试图创建一个'模态'SKSpriteNode,填充大部分屏幕减去每边的边界。我有一个SKSpriteNode的子类,因为我需要传递一些其他信息用于显示目的,所以我有一个自定义的init方法。SKSpriteNode相对于屏幕的大小
之后,我初始化我的模态,然后我设置的大小如下:
let modal = Modal(items: [Item])
let newSize = CGSize(width: (frame.width) - 40, height: (frame.height) - 40)
modal.size = newSize
modal.zPosition = 999
addChild(modal)
麻烦的是没有在我的模态的顶部或底部没有边界,它垂直填满整个屏幕。我自定义的模式调用'init'方法调用super.init传递的大小为50,50,所以即使它是那么小,那么屏幕如果这是它使用的,但它不是。我的游戏处于横向模式,我尝试切换上面的宽度和高度,但是它填满整个屏幕(所以左右两侧都没有边框)。我知道我没有在上面的代码中设置位置,但即使如此,如果它不统一,我也希望在某个晚上的某个地方看到“边框”。
这一切都在我的主场景文件中完成,因此这里的框架与主游戏场景的框架相关。
任何想法?
只需打印所有值,即可看到问题所在。例如。打印场景的大小,视图的大小,模式的大小等...或者添加可以复制问题的代码... – Whirlwind
我提供了代码来复制问题。我没有触及我的场景的大小,这是本例中的视图,因为它是一个SKScene文件。然而,它使问题变成了我的sks文件。这最初设置为自由形式。通过以横向方向更新此特定设备已解决问题 – TommyBs