gpt4 book ai didi

ios - 如何让物体动起来?

转载 作者:行者123 更新时间:2023-11-30 13:55:39 24 4
gpt4 key购买 nike

这是我使用 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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com