作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
这是我的第一个问题,对于糟糕的英语表示歉意。
我最近使用 Xcode 6.4 制作了一个游戏应用程序,它在 IOS 设备上运行良好。但是,当我上传 Xcode 7 Beta 4 来开发我的 IOS 9 应用程序时出现了问题。
我在 Xcode 6 中使用这段代码,它限制了我的英雄在 X 轴的 -1.0 和 1.0 之间翻转,我的英雄无法翻转到 -2.0 :
func flip() {
isUpsideDown = !isUpsideDown
var scale: CGFloat!
if isUpsideDown {
scale = -1.0
} else {
scale = 1.0
}
let translate = SKAction.moveByX(0, y: scale*(size.height + kMLGroundHeight), duration: 0.1)
let flip = SKAction.scaleYTo(scale, duration: 0.1)
runAction(translate)
runAction(flip)
}
但是现在在 Xcode 7 中这个 cod 似乎不起作用。一开始它看起来不错,但随后英雄开始翻转到 -2.0、-3.0,这一直持续到英雄超出框架。
这也是我在 Xcode 6 上完美运行的游戏场景代码:
override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?) {
if isGameOver {
restart()
} else if !isStarted {
start()
} else {
hero.flip()
}
}
我是这方面的新手,如果您能回答我的问题,我将不胜感激。
最佳答案
如何在 flip 函数中放置一个断点并单步执行它正在更改的位置并查看跟踪...
或者一种集中的断点策略是在值设置为超出范围时将 didSet
添加到您的 scale
属性。然后查看跟踪以了解出现问题的原因。
修改 scale
使其看起来像这样。
var scale:CGFloat!{
didSet{
if scale < -1.0 || scale > 1.0{
print("scale is out of bounds : \(scale)")
print("stop here")//<< put breakpoint on this line
}
}
}
如果您在使用断点方面需要帮助,请查看 this .
关于swift - 在 Xcode 6 中工作的代码不适用于 Xcode 7,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31643243/
我是一名优秀的程序员,十分优秀!