作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
这是我使用 Sprite Kit、Swift 在 Xcode 中编写的代码。我正在尝试制作一款像 ComboQuest 这样的游戏。游戏由一个左右移动的移动杆组成,试图击中物体。当我尝试重新创建左右移动时,这里是我的代码:
func rightSprite(){
let actionR = SKAction.moveByX(0.001, y: 0, duration: 0.01)
Sprite.runAction(SKAction.repeatActionForever(actionR))
}
func leftSprite(){
let actionR = SKAction.moveByX(-0.001, y: 0, duration: 0.01)
Sprite.runAction(SKAction.repeatActionForever(actionR))
}
这两个函数随后在 TouchesBegan override func 中激活,但是有一个小缺陷。当您触摸屏幕来改变方向时,并没有完全的 react 。
你们会如何编写这个代码?
最佳答案
首先,确保您有 SKSpriteNode 的有效实例。查看更多代码以了解在何处创建要移动的条形 Sprite 会很有帮助。例如,下面我创建了一个红色矩形 Sprite 。
let bar = SKSpriteNode(color: UIColor.redColor(), size: CGSize(width: 50, height: 10))
就您的操作而言,您需要在 Sprite 实例上调用它们。我使用了上面示例中相同的条形 Sprite 。此外,由于您将某个操作设置为永久重复,因此您需要删除该操作才能使其停止。看来您希望该栏左右移动。您可以像我一样删除所有操作,也可以命名您的操作,然后仅删除某个操作。为了简单起见,我只是删除了所有操作。
func rightSprite(){
let actionR = SKAction.moveByX(0.001, y: 0, duration: 0.01)
bar.removeAllActions()
bar.runAction(SKAction.repeatActionForever(actionR))
}
func leftSprite(){
let actionL = SKAction.moveByX(-0.001, y: 0, duration: 0.01)
bar.removeAllActions()
bar.runAction(SKAction.repeatActionForever(actionL))
}
关于ios - 如何让物体动起来?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33655599/
我是一名优秀的程序员,十分优秀!