首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用for循环显示4个纹理

使用for循环显示4个纹理
EN

Stack Overflow用户
提问于 2015-10-01 16:08:45
回答 1查看 33关注 0票数 0

我正在使用Swift 2.0Sprite-KitXcode7一起创建一个游戏。我想实现四个紫色的球,它们应该像生命一样。因此,每当球员被击中,他就会输掉一个紫色的球。他们应该并排出现。我想知道是否可以用for loop来显示4个球,而不是硬编码4个球。

代码语言:javascript
复制
let purpleBall = SKSpriteNode(texture: purpleTexture)
purpleBall.position = CGPointMake(self.frame.size.width * 0.65, self.frame.size.height * 0.92)
self.addChild(purpleBall)

我还没有成功地让4个球出现在现场。这是我的尝试之一。

代码语言:javascript
复制
for(var i = 0.50; i <= 0.90; i = i + 0.10) {
        let purpleBall = SKSpriteNode(texture: purpleTexture)
        purpleBall.position = CGPointMake(self.frame.size.width * i, self.frame.size.height * 0.92)
        self.addChild(purpleBall)
}

这里我得到了一个错误:二进制运算符不能应用于'CGFloat‘和'Double’类型的操作数,是否必须将i转换为CGFloat?这段代码实际上是将4个不同的球并排放置,还是只将单个球移动到每个新位置。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-10-01 16:25:52

您的代码在for循环中有一个off错误。它应该是一个较少的符号,而不是少于或相等的。您的当前代码将创建五个紫色球。

你不应该真的让我等于任何东西,只是一个整数,它让人困惑。您可以像这样重写代码,它也会做同样的事情,而不必担心当前会出现浮点/双错误。请注意,我还将使用一个名为maxBalls和distanceBetweenBalls的常量,这样您就可以轻松地更改球数和距离,而无需进行任何复杂的重写:

代码语言:javascript
复制
let maxBalls = 4
for(var i = 0; i < maxBalls; i++) {
    let purpleBall = SKSpriteNode(texture: purpleTexture)
    let ballXPosition = .50 + (i * .1)
    purpleBall.position = CGPointMake(self.frame.size.width * ballXPosition, self.frame.size.height * 0.92)
    self.addChild(purpleBall)

这应该可以避免你之前面临的问题,希望这会有所帮助。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32892153

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档