小编ork*_*675的帖子

Swift SpriteKit获得可见的帧大小

我一直在尝试使用Swift创建一个简单的SpriteKit应用程序.目的是在点击时让红色球重新定位在屏幕上.但变量self.frame.width和self.frame.height不返回可见屏幕的边界.相反,他们返回整个屏幕的边界.因为我随机选择球的位置我需要可见的边界.经过数小时的研究后无法找到答案.我怎样才能做到这一点?

var dot = SKSpriteNode()
let dotScreenHeightPercantage = 10.0
let frameMarginSize = 30.0

override func didMoveToView(view: SKView) {

    var dotTexture = SKTexture(imageNamed: "img/RedDot.png")
    dot = SKSpriteNode(texture: dotTexture)
    dot.size.height = CGFloat( Double(self.frame.height) / dotScreenHeightPercantage )
    dot.size.width = dot.size.height
    dot.name = "dot"

    reCreateDot()
}

func reCreateDot() {
    dot.removeFromParent()

    let dotRadius = Double(dot.size.height / 2)
    let minX = Int(frameMarginSize + dotRadius)
    let maxX = Int(Double(self.frame.width) - frameMarginSize - dotRadius)
    let minY = Int(frameMarginSize + dotRadius)
    let maxY = Int(Double(self.frame.height) - frameMarginSize - dotRadius) …
Run Code Online (Sandbox Code Playgroud)

frame bounds skview swift

1
推荐指数
2
解决办法
5676
查看次数

太多局部变量和堆栈基指针偏移溢出

所以%ebp(堆栈基指针)+常量用于引用程序集中的局部变量.如果有太多的局部变量并且所需的常量太大而不适合一行汇编代码(32或64位)怎么办?这样的边缘情况如何处理?

ebp参考

例如,在上面的图像中假设有2 ^ 30个局部变量.要引用最后一个,我们需要一个2 ^ 32的偏移量.如果我们在32位环境中工作,考虑到同一行中的操作码,目的地等,这个偏移量将不适合一行代码.

c x86 assembly

-2
推荐指数
1
解决办法
168
查看次数

标签 统计

assembly ×1

bounds ×1

c ×1

frame ×1

skview ×1

swift ×1

x86 ×1