ios - 如何使用 Swift 2 (SpriteKit) 以编程方式添加要查看的对象?

标签 ios swift sprite-kit swift2 arc4random

import SpriteKit

var counter:Int
var randX = Int(arc4random_uniform(255))
var randY = Int(arc4random_uniform(425))
var coin:SKSpriteNode?



class GameScene: SKScene {
    override func didMoveToView(view: SKView) {
    //...

    for var index = 0; index < 3; ++index {
        print("index is \(index)")
        coin = SKSpriteNode(fileNamed: "gargar")
        coin.frame = CGRectMake(randX, randY, coin.frame.size.width,     
        coin.frame.size.height)
        self.addChild(coin)
    }
}

好吧,我找到了循环。我有 x,y 的随机数,所以希望它会保持在 CGRectMake 范围内?我一直在寻找与此执行相关的问题/答案,但也许它是如此简单以至于没有人遇到过它?请指教。我将不胜感激并转发。

创造性地, 门萨

最佳答案

您想设置 Sprite 的位置,而不是框架。

coin = SKSpriteNode(fileNamed: "gargar")
coin.position = CGPoint(x: randX, y: randY)
self.addChild(coin)

如果您尝试从图像创建节点,您实际上会使用

coin = SKSpriteNode(imageNamed: "gargar")

fileNamed 用于加载 .sks 文件,而不是图像。

请记住,randX 和 randY 的值在整个循环中不会改变。您目前正在同一位置添加 3 个 Sprite 。如果您希望它们都位于不同的位置,请将随机点生成移动到循环内。

关于ios - 如何使用 Swift 2 (SpriteKit) 以编程方式添加要查看的对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35948305/

相关文章:

iphone - 访问 CGImage 的来源?

ios - UITabBarController - 子(选项卡)ViewControllers 的不正确和不一致的边界

ios - 如何均匀分散点而不相互重叠?

ios - 具有相关 Objective-C Pod 的 Swift Pod 的桥接头?

swift - IAd 横幅广告摇动屏幕

ios - 更新由定时器驱动的函数中的变量

ios - 如何更新另一个 UIViewController 上的进度 View - SWIFT?

ios - 如何维护最初通过 CocoaPods 安装但后来手动修改的 iOS 框架?

ios - 将 UIScrollView 与 SpriteKit 一起使用时出现随机问题

swift - 使用 enumerateBodies alongRayStart 反弹光线